資料公開こんにちは、ソリューションアーキテクトの舟崎です。Seminar「AWSのコスト削減オプション」の資料が公開されました。多くの方のご参加をお待ちしております。2016」の資料およびQA公開みなさんこんにちは、ソリューションアーキテクト小川です。2016」の資料が公開されております。当日頂戴したQAと併せて紹介させて頂きます。P2ファミリーのローンチを受けて、G2ファミリーは旧世代になったりするのでしょうか。P2ファミリーとG2ファミリーはそれぞれ用途が異なる為、共存します。G2はグラフィックス用、P2は高並列計算用です。毎週開催BlackBeltオンラインセミナー、来週は下記の2つが開催予定です。IoTその他、今後の開催スケジュールは、下記にURLに掲載されております。オンラインセミナーをよろしくお願い致します。お客様のAWS環境にインスタンス(仮想サーバ)を起動させる為に必要な情報を提供します。セキュリティやビネス要求に合わせたカスタマイズを行い、カスタムAMIとして保存することができます。AMIを公開することができる様になりました。これにより、必要なハードニングと設定を行ったAMIを作り、カスタムAMIに基づきグローバルに一貫したインスタンスを起動することができます。データを保護するための利用者自身によるセキュリティやコンプライアンス要求に従いながら、分散したワークロードによって、パフォーマンスと可用性を高めることができます。このブログ記事では、パブリックAMIから暗号化されたカスタムAMIをつくり、暗号化されたEBSスナップショットによるカスタムAMIをアカウントやリージョンにまたがって共有するプロセスをウォークスルーします。EC2インスタンスを起動することができます。マーケットプレイスからの他のAMIには適用できません。次の図は、このブログ記事で議論するソリューションを表現しています。ソースリージョンのパブリックAMIからEBS-backendのカスタムAMIを作成します。暗号化されたEBSスナップショットをカスタムAMIに追加し、ターゲットアカウントにKMS暗号化鍵へのアクセス権を与えます。暗号化されたスナップショットをターゲットアカウントに共有します。スナップショットをターゲットリージョンへコピーし、ターゲットリージョンにあるターゲットアカウントのKMS暗号化鍵で再暗号化します。ターゲットアカウントでターゲットリージョンにある暗号化されたEBSスナップショットを利用してAMIを作成します。前提条件このウォークスルーでは、2つのAWSアカウントが必要です。999999999999をそれぞれソースアカウント、ターゲットアカウントとします。この記事を読み進める際には、それらのアカウントIDを自身の環境に合う様に読み替えてください。作成し、同じ様にターゲットアカウントのターゲットリージョンにて、CMKを作成してください。ターゲットアカウント向けのCMKを作成する際には、カスタムAMIを利用してEC2インスタンスを起動させるリージョンを選択してください。KMSの鍵は、作成されたAWSリージョンの外に転送されるは無いことに注意が必要です。CMKを作成しました。eu-west-1にcmkTargetを作成しています。CMKで暗号化されたスナップショットは別のアカウントに共有することはできません。サービスデフォルトCMKで暗号化されたリソースは同じアカウントでのみ共有できます。(キーエリアスはaws/ebs)による暗号化されたスナップショットから始める場合は、スナップショットをコピーし、KMSで作成したカスタムCMKにて再暗号化してください。外部のアカウントIDがアクセスできるようにカスタムCMKの鍵ポリシーを変更することが出来ます。ModifySnapshotAttribute操作権限が必要となります。次のJSONドキュメントはIAMユーザ、ロールが必要となる権限の例です。このIAMポリシー内の権限が有効になるように、cmkSourceの鍵ポリシードキュメントはソースアカウントに権限委譲しなくてはなりません。この権限委譲は、KMS鍵を作成した際に発生します。cmkSourceに対する鍵ポリシーを変更している場合には、変更を戻し、そのアカウントへの委譲を再び有効にしてください。Guideを確認してください。]}ターゲットアカウントでのIAMユーザやロールはAMIを作成する権限が必要です。DescribeKey、CreateGrant、およびDecryptの権限が必要となります。操作を実行できなくてはなりません。次の手順では、cmkSourceをスナップショットの復号化に利用する権限付与を示します。ターゲットアカウントIDをcmkSource鍵ポリシーに追加する必要があります。下の画像の様に、IAMコンソールから、左ペインの暗号鍵をクリックし、ソースアカウントのCMKであるcmkSourceをクリックしてください。Accountをクリックしてください。フォームにターゲットアカウントIDの999999999999を入力してください。Service.」を参照して下さい。次のJSONドキュメントはIAMユーザ、ロールが必要となる権限の例です。このIAMポリシーのKMS権限が有効になるよう、cmkSource、cmkTargetに対する鍵ポリシードキュメントは、アカウントに権限委譲しなくてはなりません。この権限委譲は、デフォルトでKMS鍵を作成する際に発生します。cmkSourceまたは、cmkTargetに対する鍵ポリシーを変更している場合には、変更を戻し、そのアカウントへの委譲を再び有効にしてください。Guideを確認してください。AMIからEC2インスタンスを作成します。(HVM)を利用しています。Instanceを確認してください。ングしたり、カスタムデータをコピーしたりできます。インスタンスのカスタマイズ後、EC2コンソールからAMIを作成します。左ペインからInstancesをクリックし、カスタマイズしたEC2インスタンスを選択します。Imageを選択します。AMI.を確認してください。これにより、暗号化されていないスナップショットによるAMIから、暗号化されたスナップショットによるAMIを作成します。マスター鍵にcmkSourceを選択しています。Snapshotsを確認して下さい。次のスクリーンショットの様に、暗号化スナップショットを持つカスタムAMIが作成されます。暗号化スナップショットによるAMIをアカウント間で直接共有することは出来ません。代わりに、AMIに紐づく化暗号化スナップショットを個別に他アカウントにコピーし、ターゲットアカウントで再作成しなくてはなりません。これは、暗号化されたスナップショットは潜在的に異なるKMSマスター鍵により暗号化され、各スナップショットのcopy/decrypt/reencrypt操作は独立して行われる為です。IDを使い(次のスクリーンショッの様に)、Step2で作成したカスタムAMIに関連付いたEBSスナップショットを検索します。Permissionsを選択します。boxにターゲットアカウントのIDを入力します。Snapshotsを選択します。スクリーンショットで示されている様に、ターゲットアカウントからコピーされたスナップショットをスナップショットIDを用いて特定します。Actionsをクリックし、ドロップダウンリストからCopyを選択します。ターゲットアカウントのマスター鍵にcmkTargetを選択します。CMKであるcmkTargetで暗号化します。これにより、cmkSrouceの所有者が何らかの理由で鍵をrevokeした際に、ターゲットアカウントが作成したEBSボリュームへアクセス出来なくなる事を防ぎます。:コンソールのリージョンをターゲットリージョンに変更します。このソリューションでは、Step4でEU(Ireland)リージョンにEBSスナップショットをコピーしています。Meをクリックします。IDを用いて特定します。Imageを選択します。Step1でカスタムAMIを作成するときに利用したパブリックAMIと同じ仮想化タイプを選びます。左ペインのAMIsをクリックし、作成した暗号化されたEBSスナップショットによるカスタムAMIを特定します。これで、ソースアカウントのus-east-1からコピーしたカスタムAMIを使って、ターゲットアカウントのeu-west-1にEC2インスタンスを起動できる様になりました。カスタムAMIは、ソースアカウントで行ったカスマイズ済みの構成を利用し、全てのデータはエンドツーエンドで暗号化されています。まとめこのブログ記事では、暗号化スナップショットを持つAMIをアカウント及びリージョンをまたがってコピーする方法を示しましました。これによって、分散されたワークロードによる俊敏性と可用性を向上させながら、利用者自身のセキュリティやコンプライアンス要求に従った、承認されたAMIに基づいてグローバルで一貫性のあるインスタンスの起動を行える様にします。さらなる学習に為には、次のドキュメントも確認して下さい。Snapshotsこの記事に対してコメントについては、Comments欄から投稿下さい。質問、実装時における問題がある場合は、EC2フォーラムに投稿をお願いします。Computeブログに記事が投稿されましたので翻訳しました。CloudFormationテンプレートが提供されているので、どなたでも今すぐ環境を構築することができますのでぜひお試し下さい。2016でもセッションを行いますので、ぜひご参加下さい。ECS上のワークロードの多くは、コンテナと明らかに親和性の高い3つのカテゴリに分類されます:PaaSバッチ処理ロングランニングサービスこれらは最も一般的なワークロードではありますが、ECSは他にも多種多様なアプリケーションにも使われています。その中でも新しく興味深いワークロードの1つがGPU高速化のワークロードです。詳細に言えば、多数のノードにまたがる多くのGPUを効率的に活用したいワークロードということになります。この記事では、どの様にしてECSでGPUワークロードを有効化すればいいのかを見ていきます。PersonalizationチームがECS上の多数のGPUを使って巨大な機械学習の学習ワークロードを効率的に実行しています。ECS概要ECSはAWS上でコンテナを動かすためのスケーラビリティとパフォーマンスの高いサービスです。ECSの状態管理エンジンはお客様自身がオーケストレーションのソフトウェアを動かすという重労働を代わりにやってくれ、また他の多くのAWSサービスとの連携も提供します。Scalingのアクションが起こった時には自動的に新しいTaskをチェックして登録することもできます。ECS上で動かしていて、その中のいくつかのケースは以下で読むことができます:EdmundsRemindCourseraECSとGPUワークロードAmazon.comにログインすると、あなたが興味あるであろう商品が推薦されているのを見ることができると思います。PersonalizationチームがAmazonのお客様一人一人向けに商品の推薦を生成しています。そのために、Amazon.comが持っている数億個の商品(また同じくらいのお客様)に関する情報を含む巨大なデータセットを要約する必要があります。この仕事を現実的な時間内に終わらせるためには、超多数のマシンにまたがって処理を分散する以外に方法はありません。Personalizationではニューラルネットワークの学習にGPUを利用できる機械学習のソフトウェアを使っていますが、超多数のGPUコアにまたがってこの処理を管理するのは難しい課題です。EC2のGPUインスタンスを使ったClusterの管理にECSを利用しています。GPUが載ったインスタンスを使っています。P2インスタンスのClusterは、CPU、メモリ、そしてGPUを統合した1つのリソースプールとして機能しており、その上に機械学習の処理がスケジュールされます。ECR)に保存されています。S3のどこに存在するのか、といった実行時の設定を指定しています。ECSにTaskの実行を依頼すると、ECSのSchedulerはCluster内で利用可能なリソースを持っているインスタンスを指定することで、そのコンテナ達が実行するのに十分な場所を見つけます。コンテナを配置することができます。CloudFromationテンプレートを作成しておいたので面倒な作業をせずに済みます。Personalizationチームが実際の推薦情報の生成に利用しているオープンソースの機械学習ライブラリであるDSSTNEを中心に構築されています。CloudFormationテンプレートはGitHubレポジトリで見ることができます。Clusterを作成します。やりたければ、もっと大きいClusterで実行するためにグループの必要なキャパシティを調整することができます。インスタンスはDSSTNEがGPUハードウェアを操作するのに必要な、NVIDIAドライバ等のソフトウェアが全て設定済となっています。MPIといった開発に必要なツールやライブラリもインストールされているので、起動時にDSSTNEライブラリをコンパイルすることができます。その後DSSTNEライブラリをパッケージしたDockerコンテナをビルドしてECRにアップロードします。Definitionを作成します。CloudFormationテンプレートからの生成が完了したら、Outputsタブを見ると作成されたリソース群を見ることができます。まとめこの記事では、ECSをGPUワークロードでどの様に使えばよいかを解説し、ECSとDSSTNEを簡単に試すことのできるCloudFormationテンプレートを共有しました。Sparkと連携しているかや、機械学習の興味深いコンセプトについて知ることができます。Facebookこのブログの最新情報はTwitter、Facebookでもお知らせしています。お気軽にフォローください。