Amazon Web Services ブログ

Category: Python

AWS Systems Manager の新しいオートメーション機能

本日、AWS Systems Manager 内で追加された自動化機能を発表します。Systems Manager をまだ使用していない方のために説明すると、本サービスは統合されたユーザーインターフェイスを提供するため、複数の AWS サービスから運用データを表示し、AWS リソース全体の運用タスクを自動化できます。 この新しいリリースで、さらに強力になりました。AWS Systems Manager に追加機能を追加しました。これにより、チーム内または組織内の他のユーザーと自動化を構築、実行、共有できるため、インフラストラクチャの管理を繰り返すのがより簡単になり、エラーが発生しにくくなります。 ナビゲーションメニューの AWS Systems Manager コンソール内には、オートメーションという項目があり、このメニュー項目をクリックするとオートメーションを実行ボタンが表示されます。 これをクリックすると、実行するドキュメントを尋ねられます。AWS では、選択可能なドキュメントのライブラリを提供しますが、今日は独自のドキュメントを作成するため、ドキュメントを作成ボタンをクリックします。 これにより、新しい画面が表示され、Python または PowerShell スクリプトを実行するドキュメント (オートメーションプレイブックとも呼ぶ) を作成できます。 コンソールには、ドキュメントを編集するための 2 つのオプションがあります。YAML エディタまたはガイド付きの段階的なユーザーインターフェイスを提供する「ビルダー」ツールで、各ワークフローステップのドキュメントを含めることができます。 それでは、簡単なオートメーションを構築して実行してみましょう。ビルダーツールを使用してドキュメントを作成する場合、最初に必要なのはドキュメント名です。 次に、説明を入力する必要があります。以下に示すように、Markdown を使用して説明の書式を設定できます。説明は、ドキュメントの機能を説明する絶好の機会です。ほとんどのユーザーは、これらのドキュメントをチームの他のユーザーと共有し、日常の問題を解決するためのドキュメントライブラリを構築したいと思っています。 オプションで、ドキュメントのパラメータを指定するように求められます。これらのパラメータは、後で作成するすべてのスクリプトで使用できます。この例では、3 つのパラメータ imageId、tagValue、instanceType を作成しました。このドキュメントを実行するときに、設定したデフォルトを上書きするこれらのパラメータの値を提供する機会があります。 誰かが私のドキュメントを実行すると、実行されるスクリプトは AWS サービスと対話します。ドキュメントは、Assume ロールを提供するオプションとともに、ほとんどのアクションに対するユーザー権限を使用して実行されます。ただし、スクリプトを実行する操作を含むドキュメントの場合、スクリプトが AWS API を呼び出すときにロールが必要です。 ビルダーツールで、Assume ロールをグローバルに設定できます。ただし、ドキュメントに assumeRole というパラメータを追加したいので、それを実行している人であれば誰でも別のパラメータを提供できます。 次に、Assume ロールプロパティのテキストボックスで {{assumeRole}} 構文を使用して、このパラメータをグローバルに assumeRole に結び付けます (パラメータ名 […]

Read More

Amazon DynamoDB スキャンパフォーマンスに対する Python バージョンの影響の分析

Amazon DynamoDB は、柔軟なスキーマを使用できる NoSQL データベースです。これは、項目それぞれにどのような属性が存在するかという点で、同じテーブル内の項目が互いに異なることを意味します。 前の AWS ブログ記事では、項目あたりの属性数の影響について検証しましたが、私たちは先日、お客様の Python アプリケーションにおけるスキャンが遅いという問題を解決するお手伝いをしていた時、Python バージョンのアップグレードがパフォーマンス向上に役立つかどうかを確認するために、異なるバージョンの Python インタプリタを調べました。 この記事では、Python インタプリタのバージョンがスキャンパフォーマンスにどのように影響し得るかをお見せしたいと思います。 手法 パーティションキーとソートキー (どちらも文字列) で構成されるプライマリキーというシンプルな構造の DynamoDB テーブルを 1 つ作成しました。また、それぞれに 7 文字のキー名 (「field01」、「field10」、など) を含む、個別の 6 文字の文字列属性 24 個 (6 x 24 = 合計 144 文字) で構成されるもうひとつの DynamoDB テーブルも作成しました。 DynamoDB には、単一のリクエストで取得するデータの量に 1 MB の上限があるので、ランダムなデータ 10,000 項目でテーブルをシードしてから、1 MB の上限内に収まるだけの項目を取得する単一のスキャンを実行します。その後、クライアント側でこれらの項目を取得し、アンマーシャルするためにかかる時間を測定します。 ウォークスルー 以下は、Python バージョンの比較に関する典型的な質問です。 Python のあるバージョンを使用する場合と、別のバージョンを使用する場合とでは、どのようにパフォーマンスが変化するのか? […]

Read More

AWS DMS タスク ID を使用して DMS タスクログをダウンロードするための Python コード

AWS Database Migration Service (AWS DMS) を使用すると、データベースを迅速かつ安全に AWS に移行できます。この記事では、AWS DMS タスク ID を使用して AWS DMS タスクログをローカルコンピュータにダウンロードするために必要なサンプル Python コードについて説明します。 概要 DMS タスクログには、移行プロセス中に記録されたタスク情報が含まれています。記事「AWS DMS 移行のデバッグ: 問題が発生した場合の対処方法 (パート1)」で示唆されているように、AWS DMS を使用してデータを移行する際、これらのログを使用して問題を解決することができます。 この記事では、DMS は Amazon CloudWatch Logs のログストリームにタスクログを送信するので、DMS 移行タスクに関する情報を取得できます。けれども、トラブルシューティングをスピードアップするためにローカルにログをダウンロードしたい場合はどうすればよいでしょうか? Download DM Task ログの GitHub レポジトリで、DMS タスク ID を使用して AWS DMS タスクログをダウンロードするための完璧な Python コードを見つけてください。この記事の残りの部分では、Python コードを分解してそのソリューションの使用方法を次の順序で説明します。 必要なライブラリをインポートします。 DMS タスク ID の引数とログの時間範囲を読み取ります。 エポックからの経過時間をミリ秒に変換します。 […]

Read More

新発表 – AWS Toolkits for PyCharm、IntelliJ(プレビュー)、Visual Studio Code(プレビュー)

ソフトウェア開発者には好みの開発ツールというものがあります。パワフルなエディタを使う人もいれば、特定の言語やプラットフォームに最適化された統合開発環境(IDE)を使う人もいます。AWS Lambda のコンソールのエディタを使って、2014年に私は初めての AWS Lambda 関数を作りました。現在では、サーバーレス・アプリケーションをビルドしデプロイするためのツールの選択肢は豊富になりました。例えば、昨年 AWS Cloud9 がリリースされて AWS Lambda のコンソールのエディタ環境は大きく強化されました。.NET アプリケーションでは、 AWS Toolkit for Visual Studio と AWS Tools for Visual Studio Team Services を使う事ができます。 AWS Toolkits for PyCharm、IntelliJ(プレビュー)、そして Visual Studio Code(プレビュー) 今日、 AWS Toolkit for PyCharm の一般提供をお知らせします。また、 AWS Toolkits for IntelliJ と Visual Studio Code の開発者プレビューをお知らせします。これら(AWS Toolkits for IntelliJ と Visual Studio […]

Read More