3.1.6.0)ではSDKアプリケーションやPowerShellスクリプトにクレデンシャルやリージョンデータを提供するための機能強化がされて、自分のSDKアプリケーションでSAMLフェデレーションによるクレデンシャルを利用することができるようになりました。EC2インスタンスメタデータのクエリと自分のコードからの利用のサポートをリファクタリングしています。この変更についてみていきましょう。PowerShellコマンドレットでSAMLフェデレーションのクレデンシャルの利用をサポートしました。SDKを拡張してそれを使用して書かれたアプリケーションからもこの記事で解説しているSAMLロールプロファイルを利用できるようになりました。アプリケーションでこの機能を使用するためには、はじめにロールプロファイルをセットアップする必要があります。ほかのクレデンシャルプロファイルと同様に、アプリケーションのapp.config/web.configファイルのプロファイルでAWSProfileNameのappsettingキーを参照するだけですみます。AWSクレデンシャルを取得するSAMLサポートにはSDKのセキュリティトークンサービスのアセンブリ(AWSSDK.SecurityToken.dll)がふくまれ、実行時にロードされます。アプリケーションの実行時にアセンブリが利用可能であることを確認してください。SDKで使用されているのと同じ環境変数)からのクレデンシャルの読み取りをサポートするようにSDKがアップデートされています。AWS_SECRET_KEY変数はまだサポートされています。クレデンシャルがサービスクライアントのコンストラクターとして提供されなければ、SDKは使用するセットを見つけるために探索をします。このリリースでは、現在の探索テストは以下のようになっています:明示的にアクセスキー/シークレットアクセスキーまたはプロファイル名がアプリケーションのapp.config/web.configファイルに明示的に見つかれば、それを使用します。"default"という名前のクレデンシャルプロファイルがあれば、それを使用します。(このプロファイルにはAWSクレデンシャルまたはSAMLロールプロファイルがはいります)環境変数にクレデンシャルがみつかれば、それを使用します。最後に、インスタンスプロファイルクレデンシャルをEC2インスタンスメタデータでチェックします。appsettingキーを使用してアプリケーションのapp.config/web.configファイルでリージョンのシステム名を指定します。SDKがアップデートされて、環境変数またはコードがEC2インスタンス上で動作していればインスタンスメタデータからのリージョンの検出が可能になりました。AWS_REGION変数をサービスクライアントで使用したいリージョンのシステム名にセットするだけですみます。特定のクライアントでこれを上書きする必要があれば、サービスクライアントのコンストラクタに必要なリージョンを渡すだけです。SDKで使用できます。EC2インスタンス上で動作させる場合は、SDKベースのアプリケーションは明示的な設定が見つからない場合EC2インスタンスメタデータからインスタンスが動作しているリージョンを自動検知します。これはapp.config/web.configファイルにリージョンをハードコードする必要なくコードをデプロイできるということを意味します。そのかわりにアプリケーションがAWSサービスのクライアントをインスタンス化するときにSDKによって自動検出させることができます。クレデンシャルと同じように、リージョン情報がサービスクライアントのコンストラクタに提供されないと、SDKはリージョンを自動的に検出できるか探索します。appsettingキーがアプリケーションのapp.config/web.configファイルに存在すれば、それを使用します。AWS_REGION環境変数がセットされていれば、それを使用します。EC2インスタンスメタデータを読んでインスタンスが動作しているリージョンの取得を試みます。AWS_SECRET_ACCESS_KEY環境変数を使用してコマンドレットにクレデンシャルを指定することができるようになりました。Set-AWSProxyコマンドレットを使用して構成されたプロキシデータの使用をサポートしています。以前は、プロキシはマシン全体のレベルでセットする必要がありました。-ProfileNameパラメータを使用してプロファイルが指定されている場合は、そのクレデンシャルを使用します。-ProfileNameによって指定されたプロファイルには通常のAWSクレデンシャルまたはSAMLロールプロファイルをふくむことができます。現在のシェルがデフォルトクレデンシャル($StoredAWSCredentialsvariableに保持されます)によって構成されていれば、それを使用します。"default"という名前のクレデンシャルプロファイルが存在すれば、それを使用します。AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY環境変数がセットされれば、そこにふくまれるクレデンシャルを使用します。EC2インスタンスメタデータが利用可能であれば、インスタンスプロファイルのクレデンシャルを探します。-Regionパラメータ(Set-DefaultAWSRegionを使用したまたはシェル全体のデフォルト)を使用したリージョン指定のサポートに加えて、AWSPowerShellモジュールのコマンドレットがAWS_REGION環境変数またはEC2インスタンスメタデータからリージョンを検出できるようになりました。Initialize-AWSDefaultコマンドレットを実行します。EC2インスタンス上でこのコマンドレットをはじめて実行するときにインスタンスメタデータからリージョンを検出できるようになり、メニューからリージョンを選択するプロンプトが出ることがなくなりました。インスタンスが動作しているリージョンとは別のリージョンでAWSサービスを使用してPowerShellスクリプトを実行したい場合は、-Regionパラメータを適切な値でコマンドレットに指定することでデフォルトの検出を上書きすることができます。-Regionパラメータを追加してインスタンスがホストされているリージョンと異なるリージョンを直接コールすることもできます。クレデンシャルと同じように、コマンドレットが呼び出されたときに適切なリージョンを検索します:-Regionパラメータがコマンドレットで指定されていれば、それを使用します。現在のシェルにデフォルトリージョン($StoredAWSRegion変数)がふくまれていれば、それを使用します。AWS_REGION環境変数がセットされていれば、それを使用します。Initalize-AWSDefaultの使用によりセットされる)がふくまれていれば、それを使用します。EC2インスタンスメタデータが利用可能であれば、リージョンの決定のためそれを参照します。(Amazon.EC2.Util.EC2Metadata)のリファクタリングを行っています。Amazon.Util.EC2InstanceMetadataです。オリジナルのクラスよりEC2インスタンスメタデータを多く読み取るために追加のヘルパーメソッドがふくまれています。インスタンスに関連付けられた動的なデータを読み取ることができるようになっています。詳細な情報は、を参照してください。リージョン情報はインスタンスのアイデンティティドキュメントとして知られるものに保持されます。このドキュメントはJSONフォーマットです。Regionというヘルパープロパティがふくまれ、自分のアプリケーションから食え利するのをとてもかんたんにします。インスタンスモニタリング、シグネチャ、PKCS7データを便利なプロパティからかんたんに読み取ることもできます。スクリプターのこともわすれてはいません!以前、PowerShellからインスタンスメタデータを読むためには、Invoke-WebRequestコマンドレットをメタデータエンドポイントに対して実行して、自分自身でデータをパースする必要がありました。AWSPowerShellモジュールはGet-EC2InstanceMetadataという専用のコマンドレットをふくむようになりました。keypairnameこれらの新機能があなたの役に立つことを期待しています。検討するべきその他のシナリオがあればコメントでお知らせください!(翻訳はSA渡邉(@gentaw0)が担当しました。ServiceでElasticsearchのバージョンを1.5から2.3に移行する方法ソリューションアーキテクトの篠原英治(@shinodogg)です。Elasticsearchのバージョン2.3が選択可能になりました。Serviceでバージョン1.5のドメインをお持ちのお客様が2.3へ移行する際の方法をご紹介します。Elasticsearchのバージョン2.3は、バージョン1.5と比較して、パフォーマンス、メモリ管理機構、セキュリティがより強化されています。下記のような機能も追加されています。ESは1.5と2.3の両方をサポートします。これからElasticsearchを使いはじめるということであれば、2.3をご利用いただくことを強くおすすめします。1.5のドメインをお持ちの場合は、移行に関する選択肢がございます。AmazonESが自動的に2.3へのアップグレードをすることはございません。そのままバージョン1.5を使い続けることはもちろん可能です。移行を行うには下記の方法を参照ください。プラグインを使って、ダイレクトに2.3にアップデートするか、もしくは、移行前にデータの変更を行う必要があるかを判別します。