114
AWS Toolkit for Visual Studio ユーザーガイド AWS Toolkit for Visual Studio: ユーザーガイド Copyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

  • Upload
    dokiet

  • View
    242

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studioユーザーガイド

AWS Toolkit for Visual Studio: ユーザーガイドCopyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Page 2: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイド

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイド

Table of ContentsAWS Toolkit for Visual Studio を使用する .............................................................................................. 1

Toolkit for Visual Studio ............................................................................................................... 1AWS Explorer .................................................................................................................... 1認証情報とリージョンの管理 ................................................................................................ 1Amazon EC2 ..................................................................................................................... 1AWS Lambda ..................................................................................................................... 1AWS CodeCommit .............................................................................................................. 2Amazon DynamoDB ............................................................................................................ 2Amazon S3 ........................................................................................................................ 2Amazon RDS ..................................................................................................................... 2AWS Elastic Beanstalk ........................................................................................................ 2AWS CloudFormation .......................................................................................................... 2AWS Identity and Access Management (IAM) ......................................................................... 2

AWS Toolkit for Visual Studio をセットアップする ................................................................................. 3AWS Toolkit for Visual Studio をセットアップする ......................................................................... 3

前提条件 ............................................................................................................................ 3Toolkit for Visual Studio のインストール ................................................................................ 3Toolkit for Visual Studio のアンインストール .......................................................................... 4古いバージョンの Toolkit for Visual Studio ............................................................................. 4

AWS 認証情報の提供 ................................................................................................................. 4SDK 認証情報ストアへのプロファイルの追加 ......................................................................... 5AWS 認証情報プロファイルファイルへのプロファイルの追加 ................................................... 6

Toolkit for Visual Studio の使用 ................................................................................................... 7プロファイルと Toolkit for Visual Studio ウィンドウのバインド ................................................. 7

AWS サービスでの作業 ...................................................................................................................... 8Amazon EC2 インスタンスの管理 ................................................................................................ 8

Amazon マシンイメージビューと Amazon EC2 インスタンスビュー .......................................... 8Amazon EC2 インスタンスを起動する ................................................................................... 9Amazon EC2 インスタンスへの接続 .................................................................................... 11Amazon EC2 インスタンスを削除する ................................................................................. 11

Amazon ECS インスタンスの管理 .............................................................................................. 12サービスのプロパティの変更 .............................................................................................. 12タスクの停止 .................................................................................................................... 12サービスの削除 ................................................................................................................. 13クラスターの削除 .............................................................................................................. 13リポジトリの作成 .............................................................................................................. 13リポジトリの削除 .............................................................................................................. 13

AWS Explorer からセキュリティグループを管理する ..................................................................... 14セキュリティグループを作成する ........................................................................................ 14セキュリティグループにアクセス許可を追加する ................................................................... 14

Amazon EC2 インスタンスからの AMI の作成 .............................................................................. 15Amazon マシンイメージに起動許可を設定する ............................................................................. 15Amazon Virtual Private Cloud (VPC) ........................................................................................... 16

AWS Elastic Beanstalk でのデプロイのためのパブリック/プライベート VPC の作成 ................... 16AWS Toolkit を使用したデプロイ ............................................................................................... 17

Elastic Beanstalk へのデプロイ .......................................................................................... 18Amazon EC2 Container Service へのデプロイ ...................................................................... 39スタンドアロンデプロイツール .......................................................................................... 46

AWS CloudFormation Template Editor for Visual Studio の使用 ........................................................ 58Visual Studio で AWS CloudFormation テンプレートプロジェクトを作成する ............................ 58Visual Studio での AWS CloudFormation テンプレートのデプロイ ........................................... 59Visual Studio の AWS CloudFormation Template Project のコストの見積もり ............................. 59Visual Studio での AWS CloudFormation テンプレートのフォーマット ..................................... 60

AWS Explorer で Amazon S3 を使用する .................................................................................... 60

iii

Page 4: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイド

Amazon S3 バケットを作成する ......................................................................................... 60AWS Explorer で Amazon S3 バケットを管理する ................................................................. 61ファイルとフォルダを Amazon S3 にアップロードする .......................................................... 61AWS Toolkit for Visual Studio からの Amazon S3 ファイルの操作 ............................................ 62

AWS Explorer で DynamoDB を使用する .................................................................................... 63DynamoDB テーブルを作成する .......................................................................................... 63DynamoDB テーブルをグリッドとして表示する .................................................................... 64属性と値を編集および追加する ........................................................................................... 64DynamoDB テーブルのスキャンを実行する .......................................................................... 65

AWS CodeCommit と Visual Studio Team Explorer を使用する ...................................................... 65AWS CodeCommit の認証情報の種類 .................................................................................. 65AWS CodeCommit に接続する ............................................................................................ 66リポジトリの作成 .............................................................................................................. 67Git 認証情報を設定する ..................................................................................................... 68リポジトリのクローンを作成する ........................................................................................ 71リポジトリを操作する ....................................................................................................... 71

AWS Explorer で Amazon RDS を使用する .................................................................................. 72Amazon RDS データベースインスタンスの起動 ................................................................... 72RDS インスタンスでの Microsoft SQL Server データベースの作成 .......................................... 75Amazon RDS セキュリティグループ .................................................................................. 75

AWS Explorer で Amazon SimpleDB を使用する .......................................................................... 76AWS Explorer で Amazon SQS を使用する ................................................................................. 77

キュー ............................................................................................................................ 77キューの削除 .................................................................................................................... 78キューのプロパティの管理 ................................................................................................. 78キューへのメッセージ送信 ................................................................................................. 78

Identity and Access Management ................................................................................................ 79IAM ユーザーを作成して設定する ........................................................................................ 79IAM グループを作成する .................................................................................................... 80IAM グループに IAM ユーザーを追加する ............................................................................. 80IAM ユーザーの認証情報を生成する ..................................................................................... 81IAM ロールの作成 ............................................................................................................. 81IAM ポリシーを作成する .................................................................................................... 82

AWS Toolkit for Visual Studio で AWS Lambda テンプレートを使用する .......................................... 82チュートリアル: AWS Toolkit for Visual Studio で AWS Lambda プロジェクトを使用する ........... 83チュートリアル: AWS Lambda でのサーバーレスアプリケーションの構築とテスト .................... 90チュートリアル : Amazon Rekognition Lambda アプリケーションの作成 .................................. 99チュートリアル: AWS Lambda で Amazon Logging Frameworks を使用してアプリケーションログを作成する ............................................................................................................... 106

.NET Core CLI を使用して AWS Lambda プロジェクトをデプロイする .......................................... 107CLI を使用して使用可能な Lambda コマンドを一覧表示する ................................................. 108.NET Core CLI から .NET Core Lambda プロジェクトを発行する ........................................... 108

ドキュメント履歴 ........................................................................................................................... 110

iv

Page 5: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドToolkit for Visual Studio

AWS Toolkit for Visual Studio を使用するToolkit for Visual Studio

Toolkit for Visual Studio は、アマゾン ウェブ サービスを使用した .NET アプリケーションの開発、デバッグ、デプロイを容易にする、Visual Studio IDE 用プラグインです。Toolkit for Visual Studio は VisualStudio バージョン 2013 以降でサポートされています。キットをダウンロードしてインストールする方法の詳細については、「Toolkit for Visual Studio のインストール (p. 3)」を参照してください。

Note

Toolkit for Visual Studio は Visual Studio の 2008、2010、2012 の各バージョンにも提供されています。ただし、これらのバージョンはサポートされていません。詳細については、「Toolkit forVisual Studio のインストール (p. 3)」を参照してください。

Toolkit for Visual Studio には、開発作業を向上させるための、以下の機能が含まれています。

AWS ExplorerIDE の [View] メニューから利用できる AWS Explorer ツールウィンドウを使うと、Visual Studio IDE の中から、多くの AWS サービスを操作することができます。Amazon Simple Storage Service (AmazonS3)、Amazon SimpleDB、Amazon Simple Notification Service (Amazon SNS)、Amazon Simple QueueService (Amazon SQS)、Amazon CloudFront などのデータサービスがサポートされています。さらにAWS Explorer は、Amazon Elastic Compute Cloud (Amazon EC2) の管理、AWS Identity and AccessManagement (IAM) のユーザーとポリシーの管理、AWS Lambda へのサーバーレスアプリケーションと機能のデプロイ、AWS Elastic Beanstalk および AWS CloudFormation へのウェブアプリケーションのデプロイを提供します。

認証情報とリージョンの管理AWS Explorer は複数の AWS アカウント (IAM ユーザーアカウントを含む) とリージョンをサポートします。表示されたビューをあるアカウントから別のアカウントへ容易に変更できます。異なるリージョンのリソースとサービスの表示と管理を行えます。

Amazon EC2AWS Explorer では、利用できる Amazon Machine Image (AMI) を表示し、それらの AMI から AmazonEC2 インスタンスを作成して、Windows リモートデスクトップを使ってそれらのインスタンスに接続することができます。AWS Explorer では、キーペアとセキュリティグループの作成や管理などの機能もサポートされています。

AWS LambdaLambda を使用して、サーバーレスの .NET Core C# 関数や、サーバーレスアプリケーションをホストすることができます。設計図を使用して、新しいサーバーレスプロジェクトを迅速に作成し、サーバーレスアプリケーションの開発を簡単に行うことができます。

1

Page 6: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS CodeCommit

AWS CodeCommitAWS CodeCommit は Visual Studio Team Explorer と統合されています。これにより、AWS CodeCommitに保持されるリポジトリの作成やクローンの作成を簡単に行うことができ、IDE 内でソースコードの変更を操作することができます。

Amazon DynamoDBDynamoDB は、拡張性と可用性に優れた、費用効果の高い、高速な非リレーショナルデータベースサービスです。Toolkit for Visual Studio には、開発で Amazon DynamoDB と連携する機能が用意されています。Toolkit for Visual Studio を使用すると、DynamoDB テーブルの属性を作成および編集したり、テーブルのスキャンオペレーションを実行したりできます。

Amazon S3ドラッグアンドドロップによって、コンテンツを Amazon S3 バケットにすばやく簡単にアップロードしたり、Amazon S3 からコンテンツをダウンロードしたりすることができます。バケット内のオブジェクトに、アクセス許可、メタデータ、タグを簡単に設定することもできます。

Amazon RDSAWS Explorer を使うと、Visual Studio で Amazon RDS のアセットの作成と管理を行うことができます。Microsoft SQL Server を使用する Amazon RDS インスタンスを、Visual Studio の [Server Explorer] に追加することもできます。

AWS Elastic BeanstalkElastic Beanstalk を使って .NET ウェブアプリケーションプロジェクトを AWS にデプロイすることができます。IDE 内から、アプリケーションを、単一インスタンス環境にデプロイしたり、完全に負荷分散され、自動スケーリングされる環境にデプロイしたりすることができます。また Visual Studio の中から、アプリケーションの新しいバージョンを迅速かつ簡単にデプロイすることもできます。アプリケーションがAmazon RDS の SQL Server を使用している場合、デプロイウィザードを使って、Elastic Beanstalk のアプリケーション環境と Amazon RDS のデータベースインスタンス間の接続をセットアップすることもできます。Toolkit for Visual Studio には、スタンドアロンのコマンドラインデプロイツールも含まれています。デプロイツールを使用して、デプロイをビルド処理の自動化に含めることができます。またはデプロイを Visual Studio の外部で他のスクリプトシナリオに含めることもできます。

AWS CloudFormationToolkit for Visual Studio を使用すると、IntelliSense や構文の強調表示のエディタサポートを使って、AWSCloudFormation の JSON 形式のテンプレートを編集することができます。AWS CloudFormation テンプレートを使用すると、インスタンス化してアプリケーションをホストするリソースを記述することができます。そして IDE 内から、テンプレートを AWS CloudFormation へデプロイします。テンプレートに記述されているリソースがプロビジョニングされ、開発者はアプリケーションの機能の開発に注力できます。

AWS Identity and Access Management (IAM)AWS Explorer から、IAM ユーザー、ロール、ポリシーを作成して、ユーザーにポリシーをアタッチすることができます。

2

Page 7: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Toolkit for Visual Studio をセットアップする

AWS Toolkit for Visual Studio をセットアップする

このセクションのトピックは Toolkit for Visual Studio のセットアップと使用に役立ちます。

トピック• AWS Toolkit for Visual Studio をセットアップする (p. 3)• AWS 認証情報の提供 (p. 4)• Toolkit for Visual Studio の使用 (p. 7)

AWS Toolkit for Visual Studio をセットアップするこのトピックでは、Toolkit for Visual Studio をインストールして設定する手順について説明します。

前提条件Toolkit for Visual Studio のインストールと設定を行うには、次のことが必要です。

• AWS アカウントの所持。AWS のサービスを使用するにはこのアカウントが必要です。AWS アカウントを取得するには、AWS のホームページで、[Create an AWS Account] を選択します。

• サポート対象のオペレーティングシステムである Windows 10、Windows 8、または Windows 7 を起動します。

お使いの Windows バージョンの最新のサービスパックをインストールし、アップデートを行うことをお勧めします。

• Visual Studio 2013 以降 (Community エディションを含む)。

最新のサービスパックをインストールし、アップデートを行うことをお勧めします。

Note

Visual Studio バージョン 2008、2010 および 2012 (利用可能な Express エディションを含む) でも Toolkit for Visual Studio を利用できます。ただし、サポートはしていません。Express エディションの場合、インストールに含まれるのは、AWS プロジェクトテンプレートとスタンドアロンデプロイツール (p. 46)のみです。Visual Studio Express エディションは、AWS Explorer などのサードパーティーの拡張機能をサポートしていません。Toolkit for Visual Studio のこれらの古いバージョンへのリンクは、このページの下部にあります。

Toolkit for Visual Studio のインストールToolkit for Visual Studio 2017 は Visual Studio Marketplace で入手できます。Visual Studio の [Extensionsand Updates] ダイアログを使用してツールキットのインストールと更新を行うことも可能です。

Toolkit for Visual Studio 2013 および 2015 は AWS Tools for Windows の一部です。これらのバージョンのAWS Tools for Windows は次の手順でインストールすることができます。

3

Page 8: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドToolkit for Visual Studio のアンインストール

1. AWS Toolkit for Visual Studio のページへ移動します。2. [Download] セクションで、[Toolkit for Visual Studio 2013-2015] を選択してインストーラをダウンロー

ドします。3. インストールを開始するには、ダウンロードしたインストーラを実行して手順に従います。

Note

デフォルトでは、Toolkit for Visual Studio は Program Files ディレクトリにインストールされ、これには管理者権限が必要です。管理者以外として Toolkit for Visual Studio をインストールするには、別のインストールディレクトリを指定します。

Toolkit for Visual Studio のアンインストールToolkit for Visual Studio をアンインストールするには、AWS Tools for Windows をアンインストールする必要があります。

1. コントロールパネルから [Programs and Features] を選択します。

Note

[Programs and Features] を直接開くには、コマンドプロンプトで次のコマンドを実行します。appwiz.cpl

1. AWS Tools for Windows を選択し、[Uninstall] を選択します。2. プロンプトが表示されたら、[Yes] を選択します。

AWS Tools for Windows をアンインストールしても Samples ディレクトリは削除されません。このディレクトリは、サンプルを変更した場合に保持されます。このディレクトリを手動で削除する必要があります。

古いバージョンの Toolkit for Visual StudioVisual Studio 2008 - Visual Studio 2008 用 Toolkit for Visual Studio は https://sdk-for-net.amazonwebservices.com/latest/AWSToolkitForVisualStudio2008.msi からインストールします。

Visual Studio 2010 and 2012 - Visual Studio 2010 および 2012 用 Toolkit for Visual Studio は https://sdk-for-net.amazonwebservices.com/latest/AWSToolkitForVisualStudio2010-2012.msi からインストールします。

AWS 認証情報の提供Toolkit for Visual Studio を使用するには、有効な AWS 認証情報のセットを 1 つ以上指定する必要があります。これらの認証情報によって、Toolkit for Visual Studio を介して AWS リソースにアクセスすることができます。これらのキーは、プログラムによるウェブサービスリクエストに署名し、リクエストが承認されたソースから送られたことを AWS で確認するためにも使用されます。

Important

AWS 認証情報はアクセスキーとシークレットキーから構成されます。アカウントのルート認証情報を使用しないことをお勧めします。その代わり、1 人以上の IAM ユーザーを作成し、それらの

4

Page 9: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドSDK 認証情報ストアへのプロファイルの追加

認証情報を使用します。詳細については、Using IAM Users および「AWS アクセスキーを管理するためのベストプラクティス」を参照してください。

Toolkit for Visual Studio では、任意数のアカウントの複数セットの認証情報がサポートされています。各セットはプロファイルと呼ばれています。Toolkit for Visual Studio にプロファイルを追加すると、認証情報は暗号化され、SDK Credential Store に保存されます。これは、AWS SDK for.NET や AWS Tools forWindows PowerShell でも使用されます。SDK ストアの認証情報は、マシンの Windows ユーザーアカウントに固有のものであり、復号化されたり他の場所で使用されることはありません。

暗号化された SDK Credential Store に加えて、Toolkit for Visual Studio も他の AWS SDK および AWS CLIが使用する平文の共有認証情報ファイルから認証情報を読み取ることができます。Toolkit for Visual Studioを使用するには、少なくとも 1 つの認証情報プロファイルを SDK Credential Store または共有認証情報ファイルのいずれかから使用できる必要があります。

Note

Toolkit for Visual Studio を使用して作成された認証情報プロファイルは、暗号化された SDKCredential Store にのみ保存されます。多要素認証 (MFA) プロファイルは、Toolkit for VisualStudio ではサポートされていません。

SDK 認証情報ストアへのプロファイルの追加プロファイルを SDK Credential Store に追加するには:

1. Visual Studio で AWS Explorer を開きます。[View] メニューで、[AWS Explorer] を選択します。または、Ctrl+K を押してから A を押します。

2. [Profile] リストの右にある [New Account Profile] アイコンをクリックします。

[New Account Profile] ダイアログが開きます。3. 認証情報プロファイルを作成するには、ダイアログボックスに次のデータを入力します。AWS マネジ

メントコンソール でアカウントを作成するか、または IAM ユーザーを作成してユーザーの認証情報を設定すると、作成した認証情報をダウンロードして保存するかどうかの確認メッセージが表示されま

5

Page 10: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS 認証情報プロファイルファ

イルへのプロファイルの追加

す。[Import from cvs file] を選択してアクセスキーとシークレットキーを含むファイルを参照し、自動的にダイアログボックスにインポートすることができます。Profile Name

(必須) プロファイルの表示名です。アクセスキー ID

(必須) アクセスキー。シークレットアクセスキー

(必須) シークレットキー。口座番号

(オプション) 認証情報のアカウント番号。Toolkit for Visual Studio では、Amazon リソースネーム(ARN) の構築にアカウント番号を使用します。

アカウントの種類

(必須) アカウントの種類。このプロファイルを指定したときに、AWS Explorer に表示されるリージョンがこの値で決まります。[Standard AWS Account] の場合。• AWS GovCloud (US) Account を選択した場合、AWS Explorer には AWS GovCloud (US) リー

ジョンのみが表示されます。• [Amazon AWS Account - China (Beijing) Region] を選択した場合、AWS Explorer には 中国 (北

京) リージョン のみが表示されます。4. プロファイルを SDK Credential Store に追加するには、[OK] を選択します。

最初のプロファイルを追加すると、次のこともできるようになります。

• 別のプロファイルを追加するには、この手順を繰り返します。• プロファイルを削除するには、プロファイルを選択して [Delete Profile] アイコンをクリックします。• プロファイルを編集するには、[Edit Profile] アイコンをクリックして、

<problematic>`</problematic>[Edit Profile] ダイアログボックスを開きます。

たとえば、更新された IAM ユーザー認証情報を所持する場合 (お勧めの方法です)、SDK CredentialStore でプロファイルを編集してユーザー認証情報を更新することができます。詳細については、「IAMCredential Rotation」を参照してください。

AWS プロジェクトを作成する際、SDK Credential Store にプロファイルを追加することもできます。Visual Studio でプロジェクトファイルが作成される前に、[AWS Access Credentials] ダイアログボックスが表示されます。既存のプロファイルを SDK Credential Store から選択することも、新たに作成することもできます。

AWS 認証情報プロファイルファイルへのプロファイルの追加ローカルシステムの AWS 認証情報プロファイルファイルで認証情報を設定できます。このファイルはWindows の C:\Users\USERNAME \.aws\credentials にあります。

このファイルには次の形式の行が含まれています。

[default]aws_access_key_id = your_access_key_idaws_secret_access_key = your_secret_access_key

6

Page 11: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドToolkit for Visual Studio の使用

your_access_key_id および your_secret_access_key の値は、独自の AWS 認証情報の値で置き換えてください。

ロールを使用するには、そのロールのプロファイルを作成します。次の例では、デフォルトプロファイルで引き受ける assumed-role という名前のロールプロファイルを示します。

[assume-role-test]role_arn = arn:aws:iam::123456789012:role/assumed-rolesource_profile = default

この場合、デフォルトのプロファイルは、assumed-role という名前のロールを引き受けるための認証情報とアクセス権限を持つ IAM ユーザーです。ロールにアクセスするには、名前付きプロファイルを作成します (この例では assume-role-test)。このプロファイルを認証情報を使用して設定する代わりに、ロールの ARN と、アクセス権限を持つプロファイルの名前を指定します。

EC2 インスタンスの場合、IAM ロールを指定し、そのロールへのアクセスを EC2 インスタンスに提供します。このしくみの詳細については、Amazon EC2 User Guide for Linux Instances の「Amazon EC2 のIAM ロール」を参照してください。

Toolkit for Visual Studio の使用プロファイルと Toolkit for Visual Studio ウィンドウのバインドAWS Explorer ウィンドウは一度に 1 つのプロファイルとリージョンにバインドされます。

• AWS Explorer から開いたウィンドウでは、現在のバインドされているプロファイルとリージョンが使用されます。ウィンドウが開いたら、AWS Explorer で別のプロファイルまたはリージョンに切り替えることができます。

• [Publish] などのウィザードは AWS Explorer のプロファイルとリージョンにデフォルトで設定されます。それらのデフォルトの設定は変更できます。ウィザードによって作成されるリソースや、ウィザードの終了時に開かれるウィンドウには、ウィザードで選択したプロファイルとリージョンが引き継がれます。

• 複数の Visual Studio が開いている場合は、それぞれ異なるプロファイルとリージョンにバインドされていることがあります。AWS Explorer では、最後に使用されたプロファイルとリージョンが保存されます。閉じられた最後の Visual Studio の値が保持されます。

7

Page 12: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 インスタンスの管理

AWS サービスでの作業AWS Explorer を使用すると、複数のアマゾン ウェブ サービスを同時に表示および操作することが可能になります。このセクションでは、Visual Studio で [AWS Explorer] ビューにアクセスして使用する方法について説明します。

ここでは、システムに AWS Toolkit for Visual Studio がインストール済みであることを前提としています。

トピック• Amazon EC2 インスタンスの管理 (p. 8)• Amazon ECS インスタンスの管理 (p. 12)• AWS Explorer からセキュリティグループを管理する (p. 14)• Amazon EC2 インスタンスからの AMI の作成 (p. 15)• Amazon マシンイメージに起動許可を設定する (p. 15)• Amazon Virtual Private Cloud (VPC) (p. 16)• AWS Toolkit を使用したデプロイ (p. 17)• AWS CloudFormation Template Editor for Visual Studio の使用 (p. 58)• AWS Explorer で Amazon S3 を使用する (p. 60)• AWS Explorer で DynamoDB を使用する (p. 63)• AWS CodeCommit と Visual Studio Team Explorer を使用する (p. 65)• AWS Explorer で Amazon RDS を使用する (p. 72)• AWS Explorer で Amazon SimpleDB を使用する (p. 76)• AWS Explorer で Amazon SQS を使用する (p. 77)• Identity and Access Management (p. 79)• AWS Toolkit for Visual Studio で AWS Lambda テンプレートを使用する (p. 82)• .NET Core CLI を使用して AWS Lambda プロジェクトをデプロイする (p. 107)

Amazon EC2 インスタンスの管理AWS Explorer では、Amazon Machine Image (AMI) と Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの詳しいビューが用意されています。これらのビューで、AMI から Amazon EC2 インスタンスを起動、そのインスタンスに接続、インスタンスを停止または終了できます。すべて Visual Studio 開発環境から可能です。インスタンスビューを使用して、使用するインスタンスから AMI を作成できます。詳細については、「Create an AMI from an Amazon EC2 Instance (p. 15)」を参照してください。

Amazon マシンイメージビューと Amazon EC2 インスタンスビューAWS Explorer から、Amazon Machine Image (AMI) と Amazon EC2 インスタンスのビューを表示できます。AWS Explorer で、[Amazon EC2] ノードを展開します。

AMI のビューを表示するには、最初の、[AMIs] サブノードでコンテキスト (右クリック) メニューを開き、[View] をクリックします。

Amazon EC2 インスタンスビューを表示するには、[Instances] ノードで、コンテキスト (右クリック) メニューを開き、[View] を選択します。

8

Page 13: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 インスタンスを起動する

いずれのビューも、該当するノードをダブルクリックして、表示することもできます。

• ビューのスコープは、AWS Explorer で指定したリージョンになります (たとえば、米国西部 (北カリフォルニア) リージョン)。

• クリックしてドラッグすると列をソートすることができます。列で値をソートするには、列見出しをクリックします。

• [Viewing] のフィルタボックスとドロップダウンリストを使用してビューを設定できます。初期ビューには任意のプラットフォームタイプ (Windows または Linux) の AMI が表示されます。これらは AWSExplorer で指定されたアカウントが所有しているものです。

列の表示/非表示

[Show/Hide] ドロップダウンをビューの上部で選択しても、表示する列の種類を設定できます。ビューを閉じて、再度開いた場合でも、表示する列の選択は保持されます。

AMI とインスタンスビューの [Show/Hide Columns] UI

AMI、インスタンス、ボリュームのタグ付け

[Show/Hide] ドロップダウンリストを使用して、自分のボリューム、AMI、Amazon EC2 インスタンスにタグを追加することもできます。タグとは名前と値のペアで、インスタンス、ボリューム、AMI にメタデータをアタッチできます。タグ名の限定範囲は、お客様のアカウントと、AMI とインスタンスごとの両方があります。たとえば、AMI とインスタンスに同じタグ名を使用した場合、競合にはなりません。タグ名では大文字と小文字が区別されません。

タグの詳細については、『Amazon EC2 User Guide for Linux Instances』の「タグの使用」を参照してください。

タグを追加するには

1. [Add] ボックスにタグの名前を入力します。緑のプラス記号 (+) ボタンを選択し、[Apply] を選択します。

AMI または Amazon EC2 インスタンスにタグを追加する

新しいタグはイタリック体で表示されます。そのタグに関連付けられている値がないことを示します。

リストビューでは、新しい列としてタグ名が表示されます。少なくとも 1 つの値がタグに関連付けられているとき、タグは AWS コンソールに表示されます。

2. タグの値を追加するには、該当するタグの列でセルをダブルクリックし、値を入力します。タグの値を削除するには、セルをダブルクリックして、値のテキストを削除します。

[Show/Hide] ドロップダウンリストでタグをクリアすると、ビューから対応する列が消えます。タグは、AMI、インスタンス、またはボリュームに関連付けられた任意のタグ値とともに保持されます。

Note

[Show/Hide] ドロップダウンリストで、関連付けられた値がないタグをクリアする場合は、AWS Toolkit によりタグが完全に削除されます。このリストビューや [Show/Hide] ドロップダウンリストに表示されなくなります。再度そのタグを使用するには、[Show/Hide] ダイアログボックスを使用して再作成します。

Amazon EC2 インスタンスを起動するAWS Explorer では、Amazon EC2 インスタンスを起動するために必要なすべての機能を提供します。このセクションでは、Amazon Machine Image (AMI) を選択し、設定を行い、Amazon EC2 インスタンスとして起動します。

9

Page 14: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 インスタンスを起動する

Windows Server の Amazon EC2 インスタンスを起動するには

1. AMI ビューの上部にある、左側のドロップダウンリストから [Amazon Images] を選択します。右側のドロップダウンリストで、[Windows] を選択します。フィルタボックスに、Elastic Block Storage に対する ebs を入力してください。ビューが更新されるまでに数分かかることがあります。

2. リストで AMI を選択し、コンテキスト (右クリック) メニューを開き、[Launch Instance] を選択します。

AMI リスト3. [Launch New Amazon EC2 Instance] ダイアログボックスで、アプリケーション用に AMI を設定しま

す。インスタンスタイプ

起動する EC2 インスタンスのタイプを選択します。インスタンスのタイプと料金については、EC2の料金に関するページにアクセスしてください。

名前

インスタンスの名前を入力します。256 文字を超える名前は使用できません。キーペア

キーペアは Windows パスワードを取得するために使用されます。これは Remote Desktop Protocol(RDP) を使用して EC2 インスタンスにログインするために使用します。プライベートキーにアクセスするためのキーペアを選択します。またはキーペアを作成するオプションを選択します。Toolkit でキーペアを作成した場合、Toolkit でプライベートキーを保存できます。

AWS ToolKit に保存されているキーペアは暗号化されます。それらは %LOCALAPPDATA%\AWSToolkit\keypairs (一般的には :C:\Users\<user>\AppData\Local\AWSToolkit\keypairs) にあります。暗号化されたキーペアを .pem ファイルにエクスポートできます。a. Visual Studio の [View] を選択し、[AWS Explorer] をクリックします。b. [Amazon EC2] をクリックし、[Key Pairs] をクリックします。c. キーペアが一覧表示され、Toolkit で作成/管理されているものは、[Stored in AWSToolkit] とマー

クされます。d. 作成したキーペアを右クリックし、[Export Private Key] を選択します。プライベートキーが復号

され、指定した場所に保存されます。セキュリティグループ

セキュリティグループを使用して、EC2 インスタンスに許可するネットワークトラフィックのタイプを制御します。セキュリティグループではポート 3389 上の受信トラフィックを有効にして、EC2 インスタンスへの RDP 接続を許可する必要があります。Toolkit を使用してセキュリティグループを作成する方法については、「AWS Explorer からセキュリティグループを管理する (p. 14)」を参照してください。

インスタンスプロファイル

インスタンスプロファイルは IAM ロールの論理コンテナです。インスタンスプロファイルを選択するとき、対応する IAM ロールを EC2 インスタンスに関連付けます。IAM ロールには、AWS のサービスとアカウントリソースへのアクセスを指定するポリシーを設定します。EC2 インスタンスをIAM ロールに関連付けると、インスタンスで実行されるアプリケーションソフトウェアには、IAMロールに指定したアクセス許可が付与されます。これにより、アプリケーションソフトウェアはそれ自体の AWS 認証情報を指定しなくても実行可能になり、より安全になります。IAM ロールの詳細については、『IAM ユーザーガイド』を参照してください。

EC2 の [Launch AMI] ダイアログボックス4. [Launch] を選択します。

AWS Explorer で [Amazon EC2] ノードを展開し、[Instances] のコンテキスト (右クリック) メニューを開いて、[View] を選択します。AWS Toolkit では、アクティブなアカウントに関連付けられている

10

Page 15: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 インスタンスへの接続

Amazon EC2 インスタンスのリストが表示されます。新しいインスタンスを表示するには、[Refresh]を選択する必要があります。最初にインスタンスが表示されたときは、インスタンスが保留状態であることがありますが、しばらくすると、実行状態に移行します。

Amazon EC2 インスタンスへの接続Windows リモートデスクトップを使用して、Windows Server インスタンスに接続します。認証については、AWS Toolkit でインスタンスの管理者パスワードを取得できます。またはインスタンスに関連付けられた格納キーペアを単に使用できます。次の手順では、保存されたキーペアを使用します。

Windows リモートデスクトップを使用して、Windows Server インスタンスに接続するには

1. EC2 インスタンスのリストで、接続する対象の Windows Server インスタンスを右クリックします。コンテキストメニューから [Open Remote Desktop] を選択します。

管理者パスワードを使用して認証する場合は、[Get Windows Passwords] を選択します。

EC2 インスタンスのコンテキストメニュー2. [Open Remote Desktop] ダイアログボックスで、[Use EC2 keypair to log on] を選択し、[OK] を選択し

ます。

キーペアが AWS Toolkit に保存されていない場合は、プライベートキーを含む PEM ファイルを指定します。

[Open Remote Desktop] ダイアログボックス3. リモートデスクトップウィンドウが開きます。キーペアで認証されているため、サインインする必要は

ありません。Amazon EC2 インスタンスでユーザーは管理者となります。

EC2 インスタンスが最近開始された場合のみ、接続できない可能性があります。次の 2 つの理由が考えられます。• リモートデスクトップサービスがまだ稼働していません。数分後にもう一度お試しください。• パスワード情報がまだインスタンスに転送されていません。この場合、次のようなメッセージボック

スが表示されます。

パスワードはまだ使用できません

次のスクリーンショットでは、ユーザーがリモートデスクトップを介して管理者として接続されています。

リモートデスクトップ

Amazon EC2 インスタンスを削除するAWS Toolkit を使用して、Visual Studio から実行中の Amazon EC2 インスタンスを停止または終了できます。インスタンスを停止するには、EC2 インスタンスが Amazon EBS ボリュームを使用している必要があります。EC2 インスタンスが、Amazon EBS ボリュームを使用していない場合は、インスタンスを削除するオプションのみが表示されます。

インスタンスを停止した場合でも、EBS ボリュームに保存されているデータは保持されます。インスタンスを終了した場合は、インスタンスのローカルストレージデバイスに保存されているデータはすべて失われます。いずれの場合も、停止または終了すると、EC2 インスタンスへの課金は継続されません。ただし、インスタンスを停止した場合は、インスタンスが停止した後も保持される EBS ストレージに対しては、引き続きお客様への課金が発生することになります。

11

Page 16: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon ECS インスタンスの管理

インスタンスを削除するもう 1 つの可能な方法は、インスタンスに接続しているリモートデスクトップを使用することです。Windows の [スタート] メニューから [シャットダウン] を使用します。このシナリオではインスタンスの停止または終了のいずれにも設定できます。

Amazon EC2 インスタンスを停止するには

1. AWS Explorer で [Amazon EC2] ノードを展開し、[Instances] のコンテキスト (右クリック) メニューを開いて、[View] を選択します。[Instances] リストで、停止するインスタンスを右クリックして、コンテキストメニューから [Stop] を選択します。[Yes] をクリックしてインスタンスの停止を確定します。

2. [Instances] リストの上部で、Amazon EC2 インスタンスの状態変更を確認するには、[Refresh] を選択します。インスタンスを終了ではなく停止したため、インスタンスと関連付けられた EBS ボリュームはアクティブのままです。

終了したインスタンスを引き続き表示

インスタンスを終了した場合、実行中や停止したインスタンスとともに [Instance] リストに引き続き表示されます。最終的に、AWS がこれらのインスタンスを再利用すると、リストから消去されます。終了状態のインスタンスに対して課金されることはありません。

シャットダウン時の EC2 インスタンスの動作を指定するには

[シャットダウン] が、[スタート] メニューから選択されている場合、AWS Toolkit により、Amazon EC2 インスタンスを停止するか終了するかどうかを指定できます。

1. [Instances] リストで、Amazon EC2 インスタンスを右クリックし、[Change shutdown behavior] を選択します。

[Change Shutdown Behavior] メニューアイテム2. [Change Shutdown Behavior] ダイアログボックスで、[Shutdown Behavior] ドロップダウンリストから

[Stop] または [Terminate] を選択します。

Amazon ECS インスタンスの管理AWS Explorer には、Amazon Elastic Container Service (Amazon ECS) クラスターとコンテナリポジトリの詳細なビューが用意されています。Visual Studio 開発環境内からクラスターとコンテナの詳細を作成、削除、管理できます。

サービスのプロパティの変更サービスの詳細、イベント、プロパティはクラスタービューで表示できます。

1. AWS Explorer で、管理するクラスターのコンテキスト (右クリック) メニューを開き、[View] を選択します。

2. [ECS Cluster] ビューで、左側の [Services] をクリックしてから、詳細ビューの [Details] タブをクリックします。[Events] をクリックしてイベントメッセージを表示できます。また、[Deployments] をクリックしてデプロイステータスを表示できます。

3. [Edit] をクリックします。目的のタスク数と、最小および最大ヘルス率を変更できます。4. 変更を受け入れるには、[Save] をクリックします。既存の値に戻すには、[Cancel] をクリックします。

タスクの停止クラスタービューで、タスクの現在のステータスを表示し、1 つ以上のタスクを停止できます。

12

Page 17: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドサービスの削除

タスクを停止するには

1. AWS Explorer で、停止するタスクがあるクラスターのコンテキスト (右クリック) メニューを開き、[View] を選択します。

2. [ECS Cluster] ビューで、左側の [Tasks] をクリックします。3. [Desired Task Status] が Running に設定されていることを確認します。停止する個々のタスクを選択

し、[Stop] をクリックします。または、[Stop All] をクリックし、実行中のすべてのタスクを選択して停止します。

4. [Stop Tasks] ダイアログボックスで、[Yes] を選択します。

サービスの削除クラスタービューで、クラスターからサービスを削除できます。

クラスターサービスを削除するには

1. AWS Explorer で、削除するサービスがあるクラスターのコンテキスト (右クリック) メニューを開き、[View] を選択します。

2. [ECS Cluster] ビューで、左側の [Services] をクリックしてから、[Delete] をクリックします。3. [Delete Cluster] ダイアログボックスで、クラスターにロードバランサーとターゲットグループがある場

合にクラスターからそれらを削除するかどうかを選択できます。それらのバランサーとグループはサービスが削除されると使用されなくなります。

4. [Delete Cluster] ダイアログボックスで、[OK] を選択します。クラスターは削除されると、AWSExplorer から削除されます。

クラスターの削除AWS Explorer から Amazon Elastic Container Service クラスターを削除できます。

クラスターを削除するには

1. AWS Explorer で、[Amazon ECS] の [Clusters] ノードで削除するクラスターのコンテキスト (右クリック) メニューを開き、[Delete] を選択します。

2. [Delete Cluster] ダイアログボックスで、[OK] を選択します。クラスターは削除されると、AWSExplorer から削除されます。

リポジトリの作成AWS Explorer から Amazon Elastic Container Registry リポジトリを作成できます。

リポジトリを作成するには

1. AWS Explorer で、[Amazon ECS] の [Repositories] ノードのコンテキスト (右クリック) メニューを開き、[Create Repository] を選択します。

2. [Create Repository] ダイアログボックスでリポジトリ名を指定し、[OK] を選択します。

リポジトリの削除AWS Explorer から Amazon Elastic Container Registry リポジトリを削除できます。

リポジトリを削除するには

13

Page 18: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Explorer からセキュリティグループを管理する

1. AWS Explorer で、[Amazon ECS] の [Repositories] ノードのコンテキスト (右クリック) メニューを開き、[Delete Repository] を選択します。

2. [Delete Repository] ダイアログボックスで、リポジトリを削除できます。この場所では、リポジトリはイメージを含んでいても削除されます。それ以外の場所では、リポジトリは空の場合にのみ削除されます。[Yes] をクリックします。

AWS Explorer からセキュリティグループを管理する

Toolkit for Visual Studio では、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスと AWSCloudFormation 用にセキュリティグループを作成および構成できます。Amazon EC2 インスタンスを起動する場合、またはアプリケーションを AWS CloudFormation にデプロイする場合には、Amazon EC2 インスタンスに関連付けるセキュリティグループを指定します。(AWS CloudFormation のデプロイによりAmazon EC2 インスタンスが作成されます。)

セキュリティグループは受信ネットワークトラフィックに対するファイアウォールのような役割を果たします。セキュリティグループでは、Amazon EC2 インスタンスに許可する受信ネットワークトラフィックのタイプを指定します。また、特定の IP アドレスまたは指定したユーザーまたは他のセキュリティグループからのみの受信トラフィックを許可するように指定することもできます。

セキュリティグループを作成するこのセクションでは、セキュリティグループを作成します。セキュリティグループが作成されたときは、セキュリティグループでいずれのアクセス許可も設定されていません。アクセス許可の設定はこの後のオペレーションで扱います。

セキュリティグループを作成するには

1. AWS Explorer で、[Amazon EC2] ノードの下で、[Security Groups] ノードのコンテキスト (右クリック)メニューを開いて、[View] を選択します。

2. [EC2 Security Groups] タブで、[Create Security Group] をクリックします。3. [Create Security Group] ダイアログボックスで、セキュリティグループ名と説明を入力し、[OK] を選択

します。

セキュリティグループにアクセス許可を追加するこのセクションでは、セキュリティグループにアクセス許可を追加して、HTTP および HTTPS プロトコルを使用したウェブトラフィックを許可します。また、他のコンピュータが Windows リモートデスクトッププロトコル (RDP) を使用して接続することを許可します。

セキュリティグループにアクセス許可を追加するには

1. [EC2 Security Groups] タブで、セキュリティグループを選択し、[Add Permission] ボタンを選択します。

2. [Add IP Permission] ダイアログボックスで、[Protocol, Port and Network] ラジオボタンを選択し、[Protocol] ドロップダウンリストで、[HTTP] を選択します。ポート範囲は HTTP のデフォルトポートであるポート 80 に自動的に調整されます。[Source CIDR] フィールドのデフォルトは 0.0.0.0/0 となります。これは、任意の外部 IP アドレスからの HTTP ネットワークトラフィックが許可されることを指定します。[OK] を選択します。

このセキュリティグループ用にポート 80 (HTTP) を開く3. このプロセスを HTTPS および RDP に繰り返します。セキュリティグループのアクセス許可は以下の

ようになります。

14

Page 19: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 インスタンスからの AMI の作成

また、ユーザー ID とセキュリティグループ名を指定することで、セキュリティグループにアクセス許可を設定することもできます。この場合、このセキュリティグループの Amazon EC2 インスタンスは、指定したセキュリティグループの Amazon EC2 インスタンスからのすべての受信ネットワークトラフィックを許可します。また、セキュリティグループ名を特定するためにユーザー ID も指定しなければなりません。セキュリティグループ名はすべての AWS 間で一意であるとは限らないためです。セキュリティグループの詳細については、EC2 のドキュメントを参照してください。

Amazon EC2 インスタンスからの AMI の作成[Amazon EC2 Instances] ビューで、実行中または停止したインスタンスのいずれかを使用して、AmazonMachine Image (AMI) を作成することができます。

インスタンスから AMI を作成するには

1. AMI の基本として使用するインスタンスを右クリックして、コンテキストメニューから [Create Image]を選択します。

[Create Image] のコンテキストメニュー2. [Create Image] ダイアログボックスで、一意の名前と説明を入力して、[Create Image] を選択します。

[Create Image] ダイアログボックス

AMI が作成されるまでには数分かかる場合があります。作成されると、AWS Explorer の [AMIs] ビューに表示されます。このビューを表示するには、AWS Explorer の [Amazon EC2 | AMIs] ノードをダブルクリックします。AMI を表示するには、[Viewing] ドロップダウンリストから [Owned By Me] を選択します。AMI を表示するには、[Refresh] を選択する必要がある場合があります。最初に AMI が表示されたときは、保留状態であることがありますが、しばらくすると、利用可能な状態になります。

作成された AMI のリスト

Amazon マシンイメージに起動許可を設定するAWS Explorer の [AMI] ビューから、Amazon マシンイメージ (AMI) に起動許可を設定することができます。[Set AMI Permissions] ダイアログボックスを使用して、AMI から許可をコピーします。

AMI に許可を設定するには

1. AWS Explorer の [AMI] ビューで、AMI のコンテキスト (右クリック) メニューを開き、[Edit Permission]を選択します。

2. [Set AMI Permissions] ダイアログボックスに、選択できる 3 つのオプションがあります。• 起動許可を与えるには、[Add] を選択し、起動許可を与える AWS ユーザーのアカウント番号を入力

します。• 起動許可を削除するには、起動許可を削除する AWS ユーザーのアカウント番号を選択し、[Remove]

を選択します。• 1 つの AMI から別の AMI に許可をコピーするには、リストから AMI を選択し、[Copy from] を選択し

ます。AMI の起動許可を持っているユーザーを選択すると、現在の AMI の起動許可が与えられます。このプロセスを [Copy-from] リストの他の AMI で繰り返すことができ、これにより複数の AMI からターゲットの AMI へ許可をコピーできます。

[Copy-from] リストには、AWS Explorer で [AMI] ビューが表示されたときにアクティブであったアカウントが所有する AMI のみが含まれます。その結果、アクティブアカウントによって所有されている他の AMI がない場合には、[Copy-from] リストに AMI が表示されない場合があります。

[Copy AMI permissions] ダイアログボックス

15

Page 20: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon Virtual Private Cloud (VPC)

Amazon Virtual Private Cloud (VPC)Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内にアマゾン ウェブ サービス (AWS) リソースを起動できます。この仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークに似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるというメリットがあります。詳細は、『Amazon VPC ユーザーガイド』をご覧ください。

Toolkit for Visual Studio により、開発者は VPC 機能にアクセスできます。この機能は、AWS マネジメントコンソールで公開されているものと似ていますが、Visual Studio の開発環境から実行します。AWSExplorer の [Amazon VPC] のノードには、次の領域のサブノードが含まれています。

• VPC• Subnets• Elastic IP• インターネットゲートウェイ• ネットワーク ACL• ルートテーブル• セキュリティグループ

AWS Elastic Beanstalk でのデプロイのためのパブリック/プライベート VPC の作成このセクションでは、パブリックサブネットとプライベートサブネットの両方が含まれる Amazon VPCを作成する方法を説明します。パブリックサブネットは、ネットワークアドレス変換 (NAT) を実行するAmazon EC2 インスタンスを使用し、プライベートサブネットのインスタンスからパブリックのインターネットと通信できるようにします。2 つのサブネットは同じアベイラビリティーゾーン (AZ) に存在している必要があります。

これは、VPC に AWS Elastic Beanstalk 環境をデプロイするために必要な最小限の VPC 設定です。このシナリオでは、アプリケーションをホストする Amazon EC2 インスタンスがプライベートサブネット内に存在し、受信トラフィックをアプリケーションにルーティングする Elastic Load Balancing ロードバランサーはパブリックサブネット内にあります。

ネットワークアドレス変換 (NAT) の詳細については、『Amazon Virtual Private Cloud ユーザーガイド』の「NAT インスタンス」を参照してください。VPC を使用するためにデプロイを構成する方法の例については、「Deploying to Elastic Beanstalk (p. 18)」を参照してください。

パブリック/プライベートサブネット VPC を作成するには

1. AWS Explorer の [Amazon VPC] ノードで、[VPCs] サブノードを開き、[Create VPC] を選択します。2. VPC を次のように設定します。

• 使用する VPC の名前を入力します。• [With Public Subnet] と [With Private Subnet] チェックボックスをオンにします。• 各サブネットの [Availability Zone] ドロップダウンリストから、アベイラビリティーゾーンを選択しま

す。両方のサブネットに必ず同じ AZ を使用してください。• プライベートサブネットでは、[NAT Key Pair Name] にキーペアを入力します。このキーペアは

Amazon EC2 インスタンス用で、このインスタンスがプライベートサブネットからパブリックインターネットへのネットワークアドレス変換を実行します。

• [Configure default security group to allow traffic to NAT] チェックボックスをオンにします。

使用する VPC の名前を入力します。[With Public Subnet] と [With Private Subnet] チェックボックスをオンにします。各サブネットの [Availability Zone] ドロップダウンリストから、アベイラビリティーゾー

16

Page 21: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Toolkit を使用したデプロイ

ンを選択します。両方のサブネットに必ず同じ AZ を使用してください。プライベートサブネットでは、[NAT Key Pair Name] にキーペアを入力します。このキーペアは Amazon EC2 インスタンス用で、このインスタンスがプライベートサブネットからパブリックインターネットへのネットワークアドレス変換を実行します。[Configure default security group to allow traffic to NAT] チェックボックスをオンにします。

[OK] を選択します。

AWS Explorer の [VPCs] タブで新しい VPC を確認できます。

NAT インスタンスが起動するまでに数分かかることがあります。使用可能な場合は、AWS Explorer で[Amazon EC2] ノードを展開して、[Instances] サブノードを開いて、インスタンスを表示できます。

AWS Elastic Beanstalk(Amazon EBS) ボリュームは、NAT インスタンスに対して自動的に作成されます。Elastic Beanstalk の詳細については、『Amazon EC2 User Guide for Linux Instances』の「AWSElastic Beanstalk (EBS)」を参照してください。

アプリケーションを AWS Elastic Beanstalk 環境にデプロイ (p. 18)し、VPC で環境を起動することを選択する場合は、Toolkit によって [Publish to AWS] ダイアログボックスに、使用する VPC の設定情報が入力されます。

Toolkit によりダイアログボックスに入力される情報は、Toolkit で作成された VPC からの情報だけで、AWS マネジメントコンソールを使用して作成された VPC のものは含まれません。これは、Toolkitが VPC を作成したとき、情報にアクセスできるように VPC のコンポーネントにタグ付けしているからです。

次のデプロイウィザードのスクリーンショットは、Toolkit で作成した VPC の値が入ったダイアログボックスの例を示します。

VPC を削除するには

VPC を削除するには、VPC のすべての Amazon EC2 インスタンスをまず終了する必要があります。

1. VPC 内の AWS Elastic Beanstalk 環境にアプリケーションをデプロイした場合は、環境を削除します。これにより、Elastic Load Balancing ロードバランサーとともにユーザーのアプリケーションをホストするすべての Amazon EC2 インスタンスが終了します。

環境を削除しないで、アプリケーションのホスティングしているインスタンスを直接終了しようとすると、Auto Scaling サービスは、削除されたインスタンスを置き換える新しいインスタンスを自動的に作成します。詳細については、Auto Scaling Developer Guide を参照してください。

2. VPC 向け NAT インスタンスを削除します。

VPC を削除するために、NAT インスタンスに関連付けられている Amazon EBS ボリュームを削除する必要はありません。ただし、このボリュームを削除しない場合は、NAT インスタンスおよび VPC を削除した場合でも、引き続きお客様への課金が発生することになります。

3. [VPC] タブで、[Delete] リンクを選択して VPC を削除します。4. [Delete VPC] ダイアログボックスで、[OK] を選択します。

AWS Toolkit を使用したデプロイToolkit for Visual Studio は、AWS Elastic Beanstalk コンテナまたは AWS CloudFormation スタックへのアプリケーションのデプロイをサポートします。

• 「Elastic Beanstalk へのデプロイ (p. 18)」では、Visual Studio IDE を使用した、アプリケーションのElastic Beanstalk へのデプロイの方法について説明しています。

• 「Amazon EC2 Container Service へのデプロイ (p. 39)」では、Visual Studio IDE を使用してアプリケーションを Amazon ECS にデプロイする方法について説明しています。

17

Page 22: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

• 「スタンドアロンデプロイツール (p. 46)」 では、コマンドウィンドウからスタンドアロンデプロイツールを使用して、Elastic Beanstalk コンテナまたは AWS CloudFormation スタックへデプロイをする方法について説明しています。

Note

Visual Studio Express Edition を使用している場合:

• スタンドアロンデプロイツール (p. 46)を使用して、アプリケーションを Elastic Beanstalkコンテナにデプロイすることができます。

• Docker CLI を使用して、アプリケーションを Amazon ECS コンテナにデプロイできます。• AWS マネジメントコンソールを使用して、アプリケーションを Elastic Beanstalk コンテナに

デプロイすることができます。

Elastic Beanstalk デプロイでは、まずウェブデプロイパッケージを作成する必要があります。詳細については、Visual Studio でウェブデプロイパッケージを作成する方法を参照してください。Amazon ECS デプロイでは、Docker イメージが必要です。詳細については、「Visual StudioTools for Docker」を参照してください。

トピック• Elastic Beanstalk へのデプロイ (p. 18)• Amazon EC2 Container Service へのデプロイ (p. 39)• スタンドアロンデプロイツール (p. 46)

Elastic Beanstalk へのデプロイAWS Elastic Beanstalk は、アプリケーションの AWS リソースのプロビジョニングプロセスを簡素化するサービスです。アプリケーションのデプロイに必要な AWS インフラストラクチャは Elastic Beanstalk がすべて提供します。このインフラストラクチャには次のものが含まれます。

• 実行可能ファイルとアプリケーションのコンテンツをホストする Amazon EC2 インスタンス。• Amazon EC2 インスタンスの数を適切に維持することでアプリケーションをサポートする Auto Scaling

グループ。• トラフィックを帯域幅が最も広い Amazon EC2 インスタンスにルーティングする Elastic Load

Balancing ロードバランサー。

Toolkit for Visual Studio は、Elastic Beanstalk によるアプリケーションの公開を簡素化するウィザードを提供します。このウィザードについては、次のセクションで説明します。

Elastic Beanstalk の詳細については、『AWS Elastic Beanstalk 開発者ガイド』を参照してください。

トピック• 従来の ASP.NET アプリケーションを Elastic Beanstalk にデプロイします。 (p. 19)• ASP.NET Core アプリケーションの Elastic Beanstalk へのデプロイ (p. 23)• アプリケーションに AWS セキュリティの認証情報を指定する方法 (p. 24)• Elastic Beanstalk 環境にアプリケーションを再パブリッシュするには (p. 25)• Elastic Beanstalk アプリケーションのカスタムデプロイ (p. 25)• ASP.NET Core Elastic Beanstalk のカスタムデプロイ (p. 26)• .NET と Elastic Beanstalk 用の複数アプリケーションのサポート (p. 29)• Elastic Beanstalk へのデプロイ (レガシー) (p. 31)

18

Page 23: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

• AWS CloudFormation へのデプロイ (レガシー) (p. 36)

従来の ASP.NET アプリケーションを Elastic Beanstalk にデプロイします。このセクションでは、Toolkit for Visual Studio の一部として提供される [Publish to Elastic Beanstalk] ウィザードを使用して、Elastic Beanstalk 経由でアプリケーションをデプロイします。演習を行う場合は、ウェブアプリケーションのスタータープロジェクトのインスタンスを使うことができます。これは VisualStudio に組み込まれています。または独自のプロジェクトを使用することもできます。

Note

このトピックでは、ウィザードを使用して従来の ASP.NET アプリケーションをデプロイします。ウィザードでは ASP.NET Core アプリケーションのデプロイもサポートしています。ASP.NET Core の詳細については、「Deploying an ASP.NET Core Application to ElasticBeanstalk (p. 23)」を参照してください。Note

[Publish to Elastic Beanstalk] ウィザードを使用するには、Web Deploy をダウンロードしてインストールする必要があります。ウィザードでは、Web Deploy を用いて Internet InformationServices (IIS) ウェブサーバーにウェブアプリケーションやウェブサイトをデプロイします。

サンプルウェブアプリケーションのスタータープロジェクトを作成するには

1. Visual Studio の [File] メニューで [New] を選択し、[Project] を選択します。2. [New Project] ダイアログボックスのナビゲーションペインで、[Installed]、[Templates]、[Visual C#] の

順に展開し、[Web] を選択します。3. ウェブプロジェクトテンプレートのリストの中から、Web と Application が説明に含まれるテンプ

レートのいずれかを選択します。この例では、[ASP.NET Web Forms Application] を選択します。4. [Name] ボックスに、「AEBWebAppDemo」と入力します。5. [Location] ボックスで、開発マシンのソリューションフォルダへのパスを入力するか、[Browse] を選択

し、ソリューションフォルダを参照して選択し、[Select Folder] を選択します。6. [Create directory for solution] が選択されていることを確認します。[Solution] ドロップダウンリスト

で [Create new solution] が選択されていることを確認し、[OK] を選択します。Visual Studio を用いて、ASP.NET Web Forms Application プロジェクトテンプレートをベースにしたソリューションやプロジェクトを作成できます。新しいソリューションやプロジェクトが表示される Solution Explorerが、Visual Studio の画面に表示されます。

[Publish to Elastic Beanstalk] ウィザードを使用してアプリケーションをデプロイする方法は次のとおりです。

1. Solution Explorer で、先のセクションで作成したプロジェクトの [AEBWebAppDemo] プロジェクトフォルダのコンテキストメニュー (右クリック)、またはユーザーが作成したアプリケーションのプロジェクトフォルダのコンテキストメニューを開き、[Publish to AWS Elastic Beanstalk] を選択します。

[Publish to Elastic Beanstalk] ウィザードが開きます。2. [Profile] の [Account profile to use for deployment] ドロップダウンリストで、デプロイに使用する AWS

アカウントのプロファイルを選択します。

オプションとして、使用したい AWS アカウントはあるが AWS アカウントのプロファイルをまだ作成していない場合は、プロファイルを選択することができ、プラス記号のボタン (+) を選択して AWS アカウントのプロファイルを追加できます。

3. [Region] ドロップダウンリストで、Elastic Beanstalk からアプリケーションをデプロイする際のリージョンを選択します。

19

Page 24: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

4. [Deployment Target] では、[Create a new application environment] を選択してアプリケーションの初期デプロイを行うことも、[Redeploy to an existing environment] を選択してデプロイ済みアプリケーションの再デプロイを行うかこともできます。(前回のデプロイをウィザードで行っていても StandaloneDeployment Tool (p. 46) で行っていても構いません。)[Redeploy to an existing environment] を選択した場合は、現在稼働中の前回のデプロイに関する情報をウィザードが取得するのに時間を要することがあります。

Note

[Redeploy to an existing environment] を選択した場合は、リストの中から環境を選択し、[Next] を選択すると、[Application Options] ページを直接表示できます。この方法でページを表示した場合は、本セクションの [Application Options] ページの使用方法について説明している箇所までスキップしてください。

5. [次へ] を選択します。6. [Application Environment] ページの [Application] エリアにある [Name] ドロップダウンリストに、推奨さ

れるデフォルトのアプリケーション名が表示されます。ドロップダウンリストの別の名前を選択することで、デフォルト名を変更できます。

7. [Environment] エリアの [Name] ドロップダウンリストで、Elastic Beanstalk 環境の名前を入力します。ここで環境とは、アプリケーションのインフラストラクチャ Elastic Beanstalk プロビジョニングのことを意味します。推奨されるデフォルト名がドロップダウンリストにすでに表示されている場合があります。推奨されるデフォルト名が表示されていない場合は自身で入力するか、他に選択候補がある場合は、ドロップダウンリストからいずれか 1 つを選択します。環境の名前は 23 文字より長くすることはできません。

8. [URL] エリアでは、ウェブアプリケーションの URL として使用される、デフォルトの.elasticbeanstalk.com のサブドメイン候補が表示されます。新しいサブドメイン名を入力することで、デフォルトのサブドメインを変更できます。

9. [Check availability] を選択して、ウェブアプリケーションの URL が使用されていないことを確認します。

10.ウェブアプリケーションの URL が使用可能な場合は、[Next] を選択します。

1. [AWS Options] ページの [Amazon EC2 Launch Configuration] にある [Container type] ドロップダウンリストで、アプリケーションで使用する Amazon Machine Image (AMI) を選択します。

2. [Instance type] ドロップダウンリストで、使用する Amazon EC2 インスタンスタイプを指定します。この例では、[Micro] の使用をお勧めします。これにより、インスタンスの実行に関連するコストが最小化されます。Amazon EC2 の料金の詳細については、EC2 料金のページを参照してください。

3. [Key pair] ドロップダウンリストで、アプリケーションで使用するインスタンスにサインインする際のAmazon EC2 インスタンスキーペアを選択します。

4. 必要に応じて、[Use custom AMI] ボックスで、[Container type] ドロップダウンリストで指定した AMIを上書きするカスタム AMI を指定できます。カスタム AMI の作成方法の詳細については、「カスタムAMI の使用」(『AWS Elastic Beanstalk 開発者ガイド』) と「Amazon EC2 インスタンスからの AMI の作成 (p. 15)」を参照してください。

5. VPC 内でインスタンスを起動する場合は、[Use a VPC] ボックスを選択します。6. Amazon EC2 インスタンスを 1 つだけ起動してアプリケーションをそのインスタンスにデプロイする場

合は、[Single instance environment] ボックスを選択します。

このボックスを選択した場合、Auto Scaling が Elastic Beanstalk により作成されますが、構成はされません。Auto Scaling グループを後で設定するには、AWS マネジメントコンソール を使用します。

7. アプリケーションをデプロイするインスタンスを条件で制御する場合は、[Enable Rolling Deployments]ボックスを選択します。このボックスは [Single instance environment] ボックスを選択していない場合のみ選択できます。

8. アプリケーションで Amazon S3 や DynamoDB などの AWS のサービスを使用していてかつ認証情報を提供する場合は、IAM ロールの使用を推奨します。[Deployed Application Permissions] エリアでは、ウィザードが環境を起動する際に使用するロールとして既存の IAM ロールを選択するか、または新しく

20

Page 25: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

ロールを作成することができます。AWS SDK for .NET を使用するアプリケーションは、AWS のサービスへのリクエストを行う際、IAM ロールが提供する認証情報を自動的に使用します。

9. アプリケーションから Amazon RDS データベースにアクセスしている場合は、[Relational DatabaseAccess] エリアのドロップダウンリストで、ウィザードが更新する Amazon RDS セキュリティグループの横のボックスを選択することで、Amazon EC2 インスタンスからそのデータベースにアクセスできます。

10.[次へ] を選択します。• [Use a VPC] を選択した場合は、[VPC Options] ページが表示されます。• [Enable Rolling Deployments] を選択し、かつ [Use a VPC] を選択しなかった場合は、[Rolling

Deployments] ページが表示されます。本セクションの [Rolling Deployments] ページの使用方法について説明している箇所までスキップしてください。

• [Use a VPC] および [Enable Rolling Deployments] を選択しなかった場合は、[Application Options]ページが表示されます。本セクションの [Application Options] ページの使用方法について説明している箇所までスキップしてください。

11.[Use a VPC] を選択した場合は、[VPC Options] ページの情報を指定して VPC でアプリケーションを起動します。

VPC はすでに作成されている必要があります。Toolkit for Visual Studio に VPC を作成した場合は、Toolkit for Visual Studio によりページが自動的に設定されます。AWS マネジメントコンソールにVPC を作成した場合は、VPC に関する情報をこのページに入力します。

VPC へのデプロイに際して特に考慮すべき事項

• VPC には、少なくとも 1 つのパブリックサブネットと 1 つのプライベートサブネットが必要です。• [ELB Subnet] ドロップダウンリストでパブリックサブネットを設定します。Toolkit for Visual Studio は

アプリケーションの Elastic Load Balancing ロードバランサーをパブリックサブネットに向けてデプロイします。パブリックサブネットは、インターネットゲートウェイへのルートが含まれているルーティングテーブルに関連付けられています。インターネットゲートウェイは igw- で始まる ID を持つため (例 :igw-83cddaex)、インターネットゲートウェイを認識することができます。Toolkit for VisualStudio を使用して作成したパブリックサブネットには、パブリックとして識別するタグ値が付与されています。

• [Instances Subnet] ドロップダウンリストでプライベートサブネットを設定します。Toolkit for VisualStudio はアプリケーションの Amazon EC2 インスタンスをプライベートサブネットに向けてデプロイします。

• アプリケーションの Amazon EC2 インスタンスは、ネットワークアドレス変換 (NAT) を行うパブリックサブネットの Amazon EC2 インスタンスを介して、プライベートサブネットからインターネットに通信します。通信を可能にするには、プライベートサブネットから NAT インスタンスにトラフィックが流れるようにするための VPC セキュリティグループが必要です。VPC セキュリティグループを [SecurityGroup] ドロップダウンリストから選択します。

Elastic Beanstalk アプリケーションを VPC にデプロイする方法の詳細については、『AWS ElasticBeanstalk 開発者ガイド』を参照してください。

1. VPC Options ページですべての情報を入力してから、[Next] を選択します。• [Enable Rolling Deployments] を選択した場合は、[Rolling Deployments] ページが表示されます。• [Enable Rolling Deployments] を選択しなかった場合は、[Application Options] ページが表示されま

す。本セクションの [Application Options] ページの使用方法について説明している箇所までスキップしてください。

2. [Enable Rolling Deployments] を選択した場合は、[Rolling Deployments] ページの情報を設定して、新しいバージョンのアプリケーションをロードバランス環境のインスタンスにデプロイする際の方法を構成します。たとえば、環境内に 4 つのインスタンスがあってインスタンスタイプを変更する場合、一度に2 つのインスタンスを変更するように環境を構成できます。これにより、アプリケーションを停止することなく変更できます。

21

Page 26: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

3. [Application Versions] エリアで、1 度にデプロイするインスタンスを全体の割合にするか実際の数にするかを制御するオプションを選択します。目的のパーセンテージまたは最大数を指定します。

4. デプロイ中にサービスを実行し続けるインスタンス数を指定する場合は、[Environment Configuration]エリアのボックスを選択します。このボックスを選択した場合は、一度に変更するインスタンスの数、サービスを実行し続ける最小のインスタンス数、またはその両方を設定します。

5. [次へ] を選択します。6. [Application Options] ページで、構築、Internet Information Services (IIS)、およびアプリケーション設定

に関する情報を指定します。7. [Build and IIS Deployment Settings] 領域の [Project build configuration] ドロップダウンリストで、対象

の構築設定を選択します。ウィザードが発見できた場合はアクティブ構成が、発見できなかった場合は[Release] が、このボックスに表示されます。

8. [App pool] ドロップダウンリストで、アプリケーションが必要とする .NET Framework のバージョンを選択します。適切な .NET Framework のバージョンが表示されます。

9. アプリケーションが 32 ビットの場合は、[Enable 32-bit applications] ボックスを選択します。10.[App path] ボックスで、アプリケーションのデプロイに使用する IIS パスを指定します。デフォルトで

は、[Default Web Site/] が指定され、通常は c:\inetpub\wwwroot に変換されます。[Default WebSite] 以外のパスを指定した場合は、指定したパスへのリダイレクトが [Default Web Site/] に作成されます。

11.[Application Settings] エリアの [Health check URL] ボックスに、ウェブアプリケーションが応答可能かを判別する際に確認する Elastic Beanstalk の URL を入力します。この URL はルートサーバー URL への相対 URL です。デフォルトではルートサーバーの URL が指定されます。たとえば、完全な URL がexample.com/site-is-up.html である場合は /site-is-up.html と入力します。

12.[Key] と [Value] には、アプリケーションの Web.config ファイルに追加したい任意のキーと値のペアを指定できます。

Note

推奨されませんが、[Key] と [Value] を使用して、アプリケーション動作環境の AWS 認証情報を設定することもできます。[AWS Options] ページの [Identity and Access ManagementRole] ドロップダウンリストで IAM のロールを指定する方法が推奨されます。ただし、アプリケーションの実行に IAM ロールではなく AWS の認証情報が必要な場合は、[Key] で[AWSAccessKey] を選択します。[Value] にはアクセスキーを入力します。[AWSSecretKey] についても同様のステップを繰り返します。

13.[次へ] を選択します。14.[Review] ページで、選択したオプションを確認し、[Open environment status window when wizard

closes] ボックスを選択します。15.必要に応じて、スタンドアロンデプロイツール (p. 46)で使用可能なテキストファイルにデプロイ

構成を保存できます。構成を保存するには、[Generate AWSDeploy configuration] を選択し、[ChooseFile] を選択して、保存するファイルを指定します。デプロイが完了した後でデプロイ設定をテキストファイルに保存することもできます。AWS Explorer でデプロイのコンテキスト (右クリック) メニューを開いて、[Save Configuration] を選択します。

16.すべてが正しい場合は、[Deploy] を選択します。

Note

アプリケーションをデプロイすると、アプリケーションが使用する AWS リソースの料金が発生し、それはアクティブなアカウントに請求されます。

Visual Studio ステータスバーと [Output] ウィンドウに、デプロイに関する情報が表示されます。これには数分間かかる場合があります。デプロイが完了すると、確認メッセージが [Output] ウィンドウに表示されます。

17.デプロイを削除するには、AWS Explorer で [Elastic Beanstalk] ノードを展開し、デプロイのサブノードのコンテキスト (右クリック) メニューを開いて [Delete] を選択します。削除には数分かかる場合があります。

22

Page 27: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

ASP.NET Core アプリケーションの Elastic Beanstalk へのデプロイAWS Elastic Beanstalk は、アプリケーションの AWS リソースのプロビジョニングプロセスを簡素化するサービスです。アプリケーションのデプロイに必要な AWS インフラストラクチャは AWS ElasticBeanstalk がすべて提供します。

Toolkit for Visual Studio は Elastic Beanstalk を使用して AWS への ASP.NET Core アプリケーションのデプロイをサポートしています。ASP.NET Core は、ASP.NET をモジュラー型アーキテクチャで再設計したもので、依存関係のオーバーヘッドを最小限に抑え、アプリケーションのクラウド実行を合理化します。

AWS Elastic Beanstalk ではアプリケーションをさまざまな言語で AWS にデプロイすることが簡単になります。Elastic Beanstalk は従来の ASP.NET アプリケーションおよび ASP.NET Core アプリケーションの両方をサポートしています。このトピックでは、ASP.NET Core アプリケーションのデプロイについて説明します。

デプロイウィザードを使用する

ASP.NET Core アプリケーションを Elastic Beanstalk にデプロイする最も簡単な方法は、Toolkit for VisualStudio を使用します。

以前にツールキットを使用して、従来の ASP.NET アプリケーションをデプロイしたことがある場合、ASP.NET Core の場合もよく似ていることがわかると思います。以下の手順では、デプロイをウォークスルーで体験します。

ツールキットを使用したことがない場合は、ツールキットをインストールした後、最初に実行する必要があるのは、ツールキットを使用して、使用する AWS 認証情報を登録することです。詳細の方法については、Visual Studio 向けドキュメントの「How to Specify the AWS Security Credentials for YourApplication (p. 24)」を参照してください。

ASP.NET Core ウェブアプリケーションをデプロイするには、Solution Explorer でプロジェクトを右クリックし、[Publish to AWS...] を選択します。

Publish to AWS Elastic Beanstalk デプロイウィザードの最初のページで、新しい Elastic Beanstalk アプリケーションの作成を選択します。Elastic Beanstalk アプリケーションは、Elastic Beanstalk コンポーネントの論理コレクションで、環境、バージョン、環境設定などがあります。デプロイウィザードでアプリケーションが生成されます。このアプリケーションには、さらにアプリケーションバージョンと環境のコレクションが含まれます。環境には、アプリケーションバージョンを実行する、実際の AWS リソースが含まれています。アプリケーションをデプロイするたびに、新しいアプリケーションバージョンが作成され、ウィザードでそのバージョンが環境に指定されます。これらの概念の詳細については、「ElasticBeanstalk コンポーネント」を参照してください。

次に、アプリケーションとその最初の環境の名前を設定します。各環境には一意の CNAME が関連付けられていて、デプロイメントが完了したときに、アプリケーションにアクセスするためにこの名前を使用できます。

次のページ [AWS Options] では、使用する AWS リソースのタイプを設定することができます。この例では、[Key pair] セクションを除いて、デフォルト値のままにします。キーペアにより、Windows 管理者パスワードを取得できます。そのため、該当マシンにログオンできます。キーペアをまだ作成していない場合は、[Create new key pair] を選択する必要があります。

アクセス許可

[Permissions] ページを使用して、アプリケーションを実行している EC2 インスタンスに AWS 認証情報を割り当てます。これはユーザーのアプリケーションが AWS SDK for .NET を使用して他の AWS のサービスにアクセスする場合に重要です。アプリケーションから他のサービスを使用していない場合、このページの設定をデフォルトのまま利用できます。

23

Page 28: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

アプリケーションオプション[Application Options] ページの詳細は、従来の ASP.NET アプリケーションのデプロイ時に指定するものとは異なります。ここでは、アプリケーションをパッケージするために使用するビルド設定とフレームワークを指定し、アプリケーション用の IIS リソースパスも指定します。

[Application Options] ページを完了した後、[Next] をクリックして設定を確認し、[Deploy] をクリックして、デプロイプロセスを開始します。

環境ステータスをチェックするアプリケーションは、パッケージ化され、AWS にアップロードされた後は、Visual Studio の AWSExplorer から環境ステータスビューを開いて、Elastic Beanstalk 環境のステータスをチェックできます。

環境がオンラインになると、ステータスバーにイベントが表示されます。すべてが完了すると、環境のステータスが正常な状態に移行します。URL をクリックして、サイトを表示することができます。ここから、環境やリモートデスクトップから、使用する Elastic Beanstalk 環境の一部である (複数) Amazon EC2インスタンスにログを取り込むこともできます。

アプリケーションの最初のデプロイは、その後の再配置よりも少し時間がかかります。新しい AWS リソースが作成されるためです。開発中にアプリケーションを繰り返し更新するときは、ウィザードを最初からもう一度実行するか、または、プロジェクトを右クリックし、[Republish] オプションを選択することで、簡単に再デプロイできます。

再公開処理では、デプロイウィザードで以前に一通り実行した設定を使用してアプリケーションをパッケージし、アプリケーションバンドルを既存の Elastic Beanstalk 環境にアップロードします。

アプリケーションに AWS セキュリティの認証情報を指定する方法[Publish to Elastic Beanstalk] ウィザード (またはこのウィザードのレガシーバージョンである [Publish toAmazon Web Services]) で指定する AWS アカウントを使って、ウィザードは Elastic Beanstalk へのデプロイを行います。

推奨されませんが、アプリケーションがデプロイされた後に AWS サービスにアクセスするために使用する、AWS アカウントの認証情報も指定する必要がある場合があります。推奨される方法は、IAM ロールを指定することです。これは [Publish to Elastic Beanstalk] ウィザードの [AWS Options] ページで、[Identityand Access Management Role] ドロップダウンリストから行うことができます。レガシーの [Publish toAmazon Web Services] ウィザードでは、[AWS Options] ページの [IAM Role] ドロップダウンリストから行います。

IAM ロールではなく、AWS アカウントの認証情報を使用する必要がある場合は、アプリケーション用のAWS アカウントの認証情報を、次のような方法で指定することができます。

• プロジェクトの Web.config ファイルの appSettings 要素で、AWS アカウントの認証情報に対応するプロファイルを参照します。(プロファイルを作成するには、「AWS 認証情報の設定」を参照してください。)次の例では、プロファイル名が myProfile である認証情報を指定しています。

<appSettings> <!-- AWS CREDENTIALS --> <add key="AWSProfileName" value="myProfile"/></appSettings>

• [Publish to Elastic Beanstalk] ウィザードを使用する場合は、[Application Options] の [Key] と [Value]エリアの [Key] 行で、[AWSAccessKey] を選択します。[Value] にはアクセスキーを入力します。[AWSSecretKey] についても同様のステップを繰り返します。

• レガシーの [Publish to Amazon Web Services] ウィザードでは、[Application Options] ページの[Application Credentials] エリアで、[Use these credentials] を選択し、[Access Key] と [Secret Key] のボックスにアクセスキーとシークレットアクセスキーを入力します。

24

Page 29: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

Elastic Beanstalk 環境にアプリケーションを再パブリッシュするには個別の変更を行ってすでに起動している Elastic Beanstalk 環境に新しいバージョンを再パブリッシュすることで、アプリケーションで反復処理することができます。

1. Solution Explorer で、前のセクションで公開したプロジェクトの [AEBWebAppDemo] プロジェクトフォルダのコンテキスト (右クリック) メニューを開き、[Publish to AWS Elastic Beanstalk] を選択します。

[Publish to Elastic Beanstalk] ウィザードが開きます。2. [Redeploy to an existing environment] を選択してから、先ほど公開した環境を選択します。[次へ] をク

リックします。

[Review] ウィザードが表示されます。3. [Deploy] をクリックします。アプリケーションは同じ環境に再デプロイされます。

アプリケーションが起動中または終了中の場合は再パブリッシュすることはできません。

Elastic Beanstalk アプリケーションのカスタムデプロイこのトピックでは、Elastic Beanstalk の Microsoft Windows コンテナ用のデプロイマニフェストがアプリケーションのカスタムデプロイをサポートする方法について説明します。

アプリケーションのカスタムデプロイは、Elastic Beanstalk を活用して AWS リソースの作成と管理を行い、アプリケーションのデプロイの完全な制御を行う、上級ユーザーのための強力な機能です。アプリケーションのカスタムデプロイでは、Elastic Beanstalk が実行する 3 つの異なるアクションの WindowsPowerShell スクリプトを作成します。デプロイが開始されるときには、インストールアクションが使用され、ツールキットまたはウェブコンソールから RestartAppServer API が呼び出されるときには、再起動が使用され、新しいデプロイが実行されるときには、以前のデプロイでアンインストールが使用されます。

たとえば、デプロイを行う ASP.NET アプリケーションがあり、ドキュメントチームがデプロイに含むための静的ウェブサイトを作成したとします。次のようなデプロイマニフェストを作成して、これを行うことができます。

{ "manifestVersion": 1, "deployments": {

"msDeploy": [ { "name": "app", "parameters": { "appBundle": "CoolApp.zip", "iisPath": "/" } } ], "custom": [ { "name": "PowerShellDocs", "scripts": { "install": { "file": "install.ps1" }, "restart": {

25

Page 30: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

"file": "restart.ps1" }, "uninstall": { "file": "uninstall.ps1" } } } ] }}

各アクションにリストされているスクリプトは、デプロイマニフェストファイルと関連するアプリケーションバンドルに置かれる必要があります。この例では、アプリケーションバンドルにはdocumentation.zip ファイルも含まれ、このファイルにドキュメントチームによって作成された静的ウェブサイトが含まれています。

install.ps1 スクリプトは、zip ファイルを抽出して、IIS パスをセットアップします。

Add-Type -assembly "system.io.compression.filesystem"[io.compression.zipfile]::ExtractToDirectory('./documentation.zip', 'c:\inetpub\wwwroot\documentation')

powershell.exe -Command {New-WebApplication -Name documentation -PhysicalPath c:\inetpub\wwwroot\documentation -Force}

アプリケーションは IIS で実行されているので、再起動アクションは IIS のリセットを呼び出します。

iisreset /timeout:1

アンインストールスクリプトでは、インストールステージで使用された、すべての設定とファイルをクリーンアップすることが重要です。それによって、新しいバージョンのインストールフェーズで、以前のデプロイとの競合を回避できます。この例では、静的ウェブサイトの IIS アプリケーションとウェブサイトのファイルを削除する必要があります。

powershell.exe -Command {Remove-WebApplication -Name documentation}Remove-Item -Recurse -Force 'c:\inetpub\wwwroot\documentation'

アプリケーションバンドルに含まれているこれらのスクリプトファイルと documentation.zip ファイルを使って、デプロイによって、ASP.NET アプリケーションが作成され、ドキュメントのサイトがデプロイされます。

この例では、単純な静的ウェブサイトをデプロイする簡単な例を選択しましたが、アプリケーションのカスタムデプロイを使うと、あらゆる種類のアプリケーションをデプロイして、Elastic Beanstalk が AWSリソースを管理するようにできます。

ASP.NET Core Elastic Beanstalk のカスタムデプロイこのトピックでは、デプロイのしくみと、Elastic Beanstalk と Toolkit for Visual Studio を使って ASP.NETCore アプリケーションを作成するときにカスタムデプロイで行えることについて説明します。

Toolkit for Visual Studio のデプロイウィザードを完了すると、ツールキットはアプリケーションをバンドルして、それを Elastic Beanstalk に送信します。アプリケーションバンドルを作成する最初のステップは、新しい dotnet CLI を使い、publish コマンドを使用して、アプリケーションの発行の準備をすることです。フレームワークと設定は、ウィザードの設定から publish コマンドに継承されます。configurationに Release を選び、framework に netcoreapp1.0 を選んだ場合は、ツールキットは次のコマンドを実行します。

26

Page 31: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

dotnet publish --configuration Release --framework netcoreapp1.0

publish コマンドが完了すると、ツールキットは新しいデプロイマニフェストを発行フォルダに書き込みます。デプロイマニフェストは aws-windows-deployment-manifest.json という名前の JSON ファイルです。Elastic Beanstalk Windows コンテナ (バージョン 1.2 以降) はこれを読み込み、アプリケーションのデプロイ方法を決定します。たとえば、IIS のルートにデプロイする ASP.NET Core アプリケーションでは、ツールキットは次のようなマニフェストファイルを生成します。

{ "manifestVersion": 1, "deployments": {

"aspNetCoreWeb": [ { "name": "app", "parameters": { "appBundle": ".", "iisPath": "/", "iisWebSite": "Default Web Site" } } ] }}

appBundle プロパティは、アプリケーションのバイナリの場所をマニフェストファイルを基準として指定します。このプロパティは、ディレクトリまたは ZIP アーカイブを指すことができます。iisPath プロパティと iisWebSite プロパティは、IIS でアプリケーションをホストする場所を示します。

マニフェストをカスタマイズする

ツールキットは、マニフェストファイルが発行フォルダに存在しない場合のみ、マニフェストファイルを書き込みます。ファイルが存在する場合は、ツールキットは最初のアプリケーションの、マニフェストのaspNetCoreWeb セクションの下に一覧表示されている、appBundle、iisPath および iisWebSiteプロパティを更新します。これにより、aws-windows-deployment-manifest.json をプロジェクトに追加して、マニフェストをカスタマイズできます。これを Visual Studio で ASP.NET Core ウェブアプリケーションに行うには、新しい JSON ファイルをプロジェクトのルートに追加して、その名前を aws-windows-deployment-manifest.json とします。

マニフェストは aws-windows-deployment-manifest.json という名前である必要があり、プロジェクトのルートに存在する必要があります。Elastic Beanstalk コンテナはルートでマニフェストを検索します。検出された場合には、デプロイツールを呼び出します。ファイルが存在しない場合は、Elastic Beanstalk コンテナは以前のデプロイツールにフォールバックします。これは、アーカイブが msdeploy アーカイブであることを想定します。

dotnet CLI の publish コマンドにマニフェストが含まれるようにするため、project.json ファイルを更新して、マニフェストファイルが publishOptions の include セクション include に含まれるようにします。

{ "publishOptions": { "include": [ "wwwroot", "Views", "Areas/**/Views", "appsettings.json", "web.config", "aws-windows-deployment-manifest.json" ] }

27

Page 32: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

}

マニフェストの宣言が完了し、マニフェストはアプリケーションバンドルに含まれているため、アプリケーションのデプロイの方法をさらに設定することができます。デプロイウィザードよりも詳細に、デプロイをカスタマイズすることができます。AWS は aws-windows-deployment-manifest.json ファイルのJSON スキーマを定義しています。Toolkit for Visual Studio をインストールするとき、セットアップはスキーマの URL を登録します。

windows-deployment-manifest.json を開くと、スキーマのドロップダウンボックスで選択した、スキーマの URL があります。URL に移動すると、マニフェストで設定できる機能の完全な説明を取得できます。Visual Studio は、選択されたスキーマを使って、マニフェストの編集時に IntelliSense を提供します。

実行できる 1 つのカスタマイズは、アプリケーションが実行される IIS アプリケーションプールの設定です。以下の例では、IIS アプリケーションプール ("customPool") の定義方法を示しています。このアプリケーションプールはプロセスを 60 分ごとにリサイクルし、"appPool": "customPool" を使ってアプリケーションに割り当てます。

{ "manifestVersion": 1, "iisConfig": { "appPools": [ { "name": "customPool", "recycling": { "regularTimeInterval": 60 } } ] }, "deployments": { "aspNetCoreWeb": [ { "name": "app", "parameters": { "appPool": "customPool" } } ] }}

さらにマニフェストは、インストール、再起動、アンインストールのアクションの前後に実行する、Windows PowerShell スクリプトを宣言できます。たとえば、次のマニフェストは、WindowsPowerShell スクリプト PostInstallSetup.ps1 を実行して、ASP.NET Core アプリケーションが IISにデプロイされた後にさらにセットアップを行います。このようなスクリプトを追加する場合、スクリプトが project.json ファイルの publishOptions の下の include セクションに追加されるようにします。これは aws-windows-deployment-manifest.json ファイルの場合と同様です。このようにしない場合は、スクリプトは dotnet CLI の publish コマンドの一部として含まれません。

{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "app", "scripts": { "postInstall": { "file": "SetupScripts/PostInstallSetup.ps1" } }

28

Page 33: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

} ] }}

ebextensions についてElastic Beanstalk ebextensions 設定ファイルは、他の Elastic Beanstalk コンテナのすべてでサポートされています。ebextensions を ASP.NET Core アプリケーションに含めるには、.ebextensions ディレクトリを、project.json ファイルの publishOptions の下の include セクションに追加します。ebextensions の詳細については、Elastic Beanstalk 開発者ガイドを参照してください。

.NET と Elastic Beanstalk 用の複数アプリケーションのサポートデプロイマニフェストを使用すると、複数のアプリケーションを同じ Elastic Beanstalk 環境にデプロイすることができます。

デプロイマニフェストは、ASP.NET Core ウェブアプリケーションおよび従来の ASP.NET アプリケーションの msdeploy アーカイブをサポートします。たとえば、フロントエンドに ASP.NET Core を使用したすばらしい新たなアプリケーションを作成し、拡張 API 用のウェブ API プロジェクトがあるとします。また、従来の ASP.NET を使用して作成した管理者アプリがあるとします。

ツールキットのデプロイウィザードは 1 つのプロジェクトのデプロイに重点を置いています。複数のアプリケーションのデプロイを利用するには、アプリケーションバンドルを手動で作成する必要があります。まず、マニフェストを作成します。この例では、ソリューションのルートにマニフェストを作成します。

マニフェストのデプロイメントのセクションには 2 つの子があります。デプロイを行う一連の ASP.NETCore ウェブアプリケーションと、デプロイを行う一連の msdeploy アーカイブです。各アプリケーションで、IIS パスとアプリケーションのビットのマニフェストへの相対位置を設定します。

{ "manifestVersion": 1, "deployments": {

"aspNetCoreWeb": [ { "name": "frontend", "parameters": { "appBundle": "./frontend", "iisPath": "/frontend" } }, { "name": "ext-api", "parameters": { "appBundle": "./ext-api", "iisPath": "/ext-api" } } ], "msDeploy": [ { "name": "admin", "parameters": { "appBundle": "AmazingAdmin.zip", "iisPath": "/admin" } } ] }}

29

Page 34: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

作成したマニフェストを使い、Windows PowerShell を使用して、アプリケーションバンドルを作成し、それを実行する既存の Elastic Beanstalk 環境を更新します。スクリプトは、Visual Studio ソリューションが含まれるフォルダから実行されることを前提として作成されます。

スクリプトで最初に必要なことは、アプリケーションバンドルを作成する、ワークスペースフォルダをセットアップすることです。

$publishFolder = "c:\temp\publish"

$publishWorkspace = [System.IO.Path]::Combine($publishFolder, "workspace")$appBundle = [System.IO.Path]::Combine($publishFolder, "app-bundle.zip")

If (Test-Path $publishWorkspace){ Remove-Item $publishWorkspace -Confirm:$false -Force}If (Test-Path $appBundle){ Remove-Item $appBundle -Confirm:$false -Force}

フォルダを作成したら、次にフロントエンドの準備を行います。デプロイウィザードと同様に、dotnetCLI を使用してアプリケーションを発行します。

Write-Host 'Publish the ASP.NET Core frontend'$publishFrontendFolder = [System.IO.Path]::Combine($publishWorkspace, "frontend")dotnet publish .\src\AmazingFrontend\project.json -o $publishFrontendFolder -c Release -f netcoreapp1.0

サブフォルダ "frontend" は出力フォルダに使用されていることに注意し、マニフェストで設定するフォルダを一致させます。次に、同様の作業をウェブ API プロジェクトに対して行う必要があります。

Write-Host 'Publish the ASP.NET Core extensibility API'$publishExtAPIFolder = [System.IO.Path]::Combine($publishWorkspace, "ext-api")dotnet publish .\src\AmazingExtensibleAPI\project.json -o $publishExtAPIFolder -c Release -f netcoreapp1.0

管理者サイトは、従来の ASP.NET アプリケーションであるため、dotnet CLI を使用することはできません。管理者アプリケーションには、msbuild を使用して、ビルドターゲットパッケージを渡してmsdeploy アーカイブを作成します。デフォルトでは、パッケージターゲットは msdeploy アーカイブをobj\Release\Package フォルダの下に作成するため、アーカイブを発行ワークスペースにコピーする必要があります。

Write-Host 'Create msdeploy archive for admin site'msbuild .\src\AmazingAdmin\AmazingAdmin.csproj /t:package /p:Configuration=ReleaseCopy-Item .\src\AmazingAdmin\obj\Release\Package\AmazingAdmin.zip $publishWorkspace

Elastic Beanstalk 環境に対してこれらすべてのアプリケーションに関する指示を与えるため、マニフェストをソリューションから発行ワークスペースへコピーし、フォルダを圧縮します。

Write-Host 'Copy deployment manifest'Copy-Item .\aws-windows-deployment-manifest.json $publishWorkspace

Write-Host 'Zipping up publish workspace to create app bundle'Add-Type -assembly "system.io.compression.filesystem"[io.compression.zipfile]::CreateFromDirectory( $publishWorkspace, $appBundle)

アプリケーションバンドルの作成が完了したので、ウェブコンソールに移動して、アーカイブを ElasticBeanstalk 環境にアップロードします。または、引き続き AWS PowerShell コマンドレットを使用して、アプリケーションバンドルを使って、Elastic Beanstalk 環境を更新します。Elastic Beanstalk 環境を含む

30

Page 35: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

プロファイルとリージョンに、現在のプロファイルとリージョンが設定されていることを確認します。これには、Set-AWSCredentials および Set-DefaultAWSRegion コマンドレットを使用します。

Write-Host 'Write application bundle to S3'# Determine S3 bucket to store application bundle$s3Bucket = New-EBStorageLocationWrite-S3Object -BucketName $s3Bucket -File $appBundle

$applicationName = "ASPNETCoreOnAWS"$environmentName = "ASPNETCoreOnAWS-dev"$versionLabel = [System.DateTime]::Now.Ticks.ToString()

Write-Host 'Update Beanstalk environment for new application bundle'New-EBApplicationVersion -ApplicationName $applicationName -VersionLabel $versionLabel -SourceBundle_S3Bucket $s3Bucket -SourceBundle_S3Key app-bundle.zipUpdate-EBEnvironment -ApplicationName $applicationName -EnvironmentName $environmentName -VersionLabel $versionLabel

ここで、ツールキットまたはウェブコンソールのどちらかの Elastic Beanstalk 環境のステータスページを使用して、更新のステータスを確認します。完了すると、デプロイマニフェストで設定した IIS パスを使って、デプロイされた各アプリケーションに移動できるようになります。

Elastic Beanstalk へのデプロイ (レガシー)Note

このセクションの情報は、[Publish to Amazon Web Services] ウィザードに対するものです。これは、[Publish to Elastic Beanstalk] ウィザードに置き換えられました。次の情報は、レガシーウィザードの使用を希望する、または必要があるユーザーのために用意されています。[Publish to Elastic Beanstalk] ウィザードを使用する方法については、「Deploying to ElasticBeanstalk (p. 18)」を参照してください。

AWS Elastic Beanstalk は、アプリケーションの AWS リソースのプロビジョニングプロセスを簡素化するサービスです。アプリケーションのデプロイに必要な AWS インフラストラクチャは Elastic Beanstalk がすべて提供します。このインフラストラクチャには次のものが含まれます。

• 実行可能ファイルとアプリケーションのコンテンツをホストする Amazon EC2 インスタンス。• Amazon EC2 インスタンスの数を適切に維持することでアプリケーションをサポートする Auto Scaling

グループ。• トラフィックを帯域幅が最も広い Amazon EC2 インスタンスにルーティングする Elastic Load

Balancing ロードバランサー。

Elastic Beanstalk の詳細については、『AWS Elastic Beanstalk 開発者ガイド』を参照してください。

Elastic Beanstalk を使用してウェブアプリケーションをデプロイする方法 (レガシー)

このセクションでは、Toolkit for Visual Studio の一部として提供されるレガシーの [Publish to AmazonWeb Services] ウィザードを使用して、Elastic Beanstalk 経由でウェブアプリケーションをデプロイする方法を説明します。演習を行う場合は、ウェブアプリケーションのスタータープロジェクトのインスタンスを使うことができます。これは Visual Studio に組み込まれています。または独自のプロジェクトを使用することもできます。

Note

レガシーの [Publish to Amazon Web Services] ウィザードを使用するには、Web Deploy をダウンロードしてインストールする必要があります。ウィザードでは、Web Deploy を用いて Internet

31

Page 36: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

Information Services (IIS) ウェブサーバーにウェブアプリケーションやウェブサイトをデプロイします。

レガシーの [Publish to Amazon Web Services] ウィザードを使用してアプリケーションをデプロイするには

Note

すぐにデプロイできるプロジェクトがない場合は、「サンプルウェブアプリケーションのスタータープロジェクトを作成するには (p. 35)」の手順を実行してから、以下の手順に従います。

1. ウェブアプリケーション用の AWS セキュリティ認証情報を指定します。手順については、「How toSpecify the AWS Security Credentials for Your Application (p. 24)」を参照してください。

これらの認証情報は、デプロイに使用する認証情報とは異なる可能性があります。デプロイの認証情報は後で説明するデプロイウィザードで指定されています。

2. Solution Explorer で、AEBWebAppDemo のプロジェクトフォルダまたは独自のアプリケーションのプロジェクトフォルダのコンテキスト (右クリック) メニューを開き、[Publish to AWS] を選択します。

3. [Publish to AWS Elastic Beanstalk] ページで、[Use legacy wizard] を選択します。4. ウィザードの [Template] ページで、デプロイに使用する AWS アカウントを選択します。新しいアカウ

ントを追加するには、プラス記号 (+) のボタンを選択します。

アプリケーションの初期デプロイまたは、以前にデプロイされたアプリケーションの再デプロイを実行するためのオプションがあります。前回のデプロイをデプロイウィザードで行っていても StandaloneDeployment Tool (p. 46) で行っていても構いません。再デプロイを選択した場合は、現在稼働中の前回のデプロイに関する情報をウィザードが取得するのに時間を要することがあります。

この例では、[Deploy new application with template]、[AWS Elastic Beanstalk] を選択してから、[Next]を選択します。

5. [Application] ページで、Toolkit によりデフォルトのアプリケーションの名前がすでに設定されています。デフォルト名は変更できます。オプションの説明を [Application Details] 領域に指定することもできます。

Toolkit では、デプロイのバージョンラベルも設定します。これは、その時点の日付と時刻に基づいています。このバージョンラベルを変更できますが、Toolkit により一意であることがチェックされます。

増分デプロイを使用している場合は、[Deployment version label] は使用できません。増分デプロイの場合、バージョンラベルは Git コミット ID で構成されます。この場合、バージョンラベルは一意です。これはコミット ID が SHA-1 暗号化ハッシュから算出されるからです。

増分デプロイメントを使用する場合、アプリケーションを初めてデプロイすると、すべてのアプリケーションファイルがサーバーにコピーされます。以降、アプリケーションの一部のファイルを更新して再デプロイした場合は、変更されたファイルのみがコピーされるため、再デプロイメントにかかる時間が短くなる可能性があります。増分デプロイを使用しない場合、再デプロイのたびにアプリケーションのすべてのファイルがサーバーにコピーされます。ファイルが変更されたかどうかには関係ありません。

[Deploy application incrementally] を選択し、[Next] を選択します。6. [Environment] ページで、使用する Elastic Beanstalk 環境の名前と説明を入力します。ここで、環境と

は、アプリケーションのインフラストラクチャ Elastic Beanstalk プロビジョニングのことを意味します。Toolkit によりデフォルト名が付いていますが、変更できます。環境の名前は 23 文字より長くすることはできません。[Description] には、任意のテキストを入力します。

アプリケーションの URL として、.elasticbeanstalk.com のサブドメインを指定することもできます。Toolkit では、環境の名前に基づいてデフォルトのサブドメインが指定されています。

7. [Check availability] を選択して、ウェブアプリケーションの URL が使用して問題ないことを確認します。

8. [次へ] を選択します。9. [AWS Options] ページで、以下を設定します。

32

Page 37: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

• [Container type] ドロップダウンリストからコンテナタイプを選択します。コンテナタイプは、アプリケーションに対して、Amazon Machine Image (AMI) を指定し、アプリケーションが実行される環境の他の要素、Auto Scaling グループ、ロードバランサーに対する設定を指定します。

• オプション。[Use custom AMI] フィールドで、カスタム AMI を指定できます。カスタム AMI を指定する場合は、[Container type] の AMI がオーバーライドされます。カスタム AMI の作成方法の詳細については、「カスタム AMI の使用」(『AWS Elastic Beanstalk 開発者ガイド』) と「Amazon EC2 インスタンスからの AMI の作成 (p. 15)」を参照してください。

• [Instance Type] ドロップダウンリストから Amazon EC2 インスタンスタイプを選択します。このアプリケーションでは、[Micro] を使用することをお勧めします。これにより、インスタンスの実行に伴うコストを最小限に抑えられるからです。Amazon EC2 の料金の詳細については、EC2 料金のページを参照してください。

• [Key pair] ドロップダウンリストから、キーペアを選択します。• [IAM Role] ドロップダウンリストには、Elastic Beanstalk 環境に使用できるロールが表示されま

す。IAM ロールがない場合は、リストから [Use the default role] を選択できます。この場合、ElasticBeanstalk によってデフォルトの IAM ロールが作成され、ログのローテーションを許可するようにAmazon S3 バケットポリシーが更新されます。

IAM ロールにより、アプリケーションやサービスは一時的なセキュリティ認証情報を使用して、AWSリソースにアクセスできるようになります。たとえば、アプリケーションで DynamoDB へのアクセスが必要な場合は、AWS セキュリティ認証情報を使用して API リクエストを送信する必要があります。アプリケーションはこれらの一時的なセキュリティ認証情報を使用するため、Amazon EC2 インスタンスに長期的な認証情報を保存したり、認証情報のローテーションのたびにインスタンスを更新したりする必要はありません。また Elastic Beanstalk には、Amazon S3 に対してログをローテーションするための IAM ロールが必要です。

IAM ロールを使用しないように選択した場合は、ログをローテーションするためのアクセス権限をElastic Beanstalk に与える必要があります。手順については、「カスタムインスタンスプロファイルの使用」を参照してください。ログのローテーションの詳細については、「Configuring Containerswith Elastic Beanstalk」を、Elastic Beanstalk での IAM ロールの使用については、「Using IAM Roleswith Elastic Beanstalk」を参照してください。

デプロイメントに使用する認証情報には、デフォルトの IAM ロールを作成するためのアクセス許可が必要です。

[次へ] を選択します。10.[VPC Options] ページでは、VPC にユーザーのアプリケーションを起動するオプションを設定すること

もできます。VPC はすでに作成されている必要があります。Toolkit for Visual Studio または AWS マネジメントコンソールを使用して、VPC を作成できます。Toolkit で VPC を作成した場合は、Toolkit によりユーザーのページが自動的に設定されます。コンソールで VPC を作成した場合は、VPC に関する情報をこのページに入力します。

VPC へのデプロイに際して特に考慮すべき事項

• VPC には、少なくとも 1 つのパブリックサブネットと 1 つのプライベートサブネットが必要です。• [ELB Subnet] ドロップダウンリストでパブリックサブネットを設定します。Toolkit for Visual Studio は

アプリケーションの Elastic Load Balancing ロードバランサーをパブリックサブネットに向けてデプロイします。パブリックサブネットは、インターネットゲートウェイへのルートが含まれているルーティングテーブルに関連付けられています。インターネットゲートウェイは igw- で始まる ID を持つため(例 :igw-83cddaexigw-`(for example, :code:`igw-83cddaea)、インターネットゲートウェイを認識することができます。Toolkit を使用して作成したパブリックサブネットには、パブリックとして識別するタグ値が付与されています。

• [Instances Subnet] ドロップダウンリストでプライベートサブネットを設定します。Toolkit はアプリケーションの Amazon EC2 インスタンスをプライベートサブネットに向けてデプロイします。

• アプリケーションの Amazon EC2 インスタンスは、ネットワークアドレス変換 (NAT) を行うパブリックサブネットの Amazon EC2 インスタンスを介して、プライベートサブネットからインターネットに通

33

Page 38: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

信します。通信を可能にするには、プライベートサブネットから NAT インスタンスにトラフィックが流れるようにするための VPC セキュリティグループが必要です。VPC セキュリティグループを [SecurityGroup] ドロップダウンリストから選択します。

Elastic Beanstalk アプリケーションを VPC にデプロイする方法の詳細については、『AWS ElasticBeanstalk 開発者ガイド』を参照してください。

1. [Application Options] ページで、以下を設定します。• [Application Pool Options] の [Target framework] ドロップダウンリストで、アプリケーションで必

要な .NET Framework のバージョン (たとえば、.NET Framework 2.0、.NET Framework 3.0、.NETFramework 3.5、.NET Framework 4.0、.NET Framework 4.5) を選択します。

このウォークスルーでは、[Enable 32-bit applications] を選択します。• [Miscellaneous] の下にある [Application health-check URL] ボックスに、アプリケーションが応答

可能かを確認するために使用する Elastic Beanstalk の URL を入力します。この URL はルートサーバー URL への相対 URL です。たとえば、完全な URL が example.com/site-is-up.html である場合は/site-is-up.html と入力します。このサンプルアプリケーションでは、デフォルト設定のスラッシュ (/) のままにしておきます。

• [Application Environment] では、パラメータフィールド (PARAM1-5) を使用してアプリケーションに入力データを渡します。これらの値は、Web.config ファイルの appSettings 要素を通じて、デプロイされたアプリケーションで使用できるようになります。詳細については、Microsoft の MSDN ライブラリを参照してください。

• [Application Credentials] で、アプリケーションを実行するときの AWS 認証情報を選択します。これらは Elastic Beanstalk へのデプロイに使用した認証情報と異なることがあります。• 別の認証情報セットを使用するには、[Use these credentials] を選択し、表示されたフィールドに

アクセスキーとシークレットキーを入力します。• Elastic Beanstalk にデプロイするために使用されているものと同じ認証情報を使用するには、[Use

credentials from profile '<account name>'] を選択します。ここで {<account name>} はウィザードの最初のページで選択したアカウントです。

• AWS Identity and Access Management (IAM) ユーザーの認証情報を使用するには、[Use an IAMuser] を選択し、ユーザーを指定します。

IAM ユーザーを使用するには、次のことが必要です。• Toolkit for Visual Studio で IAM ユーザーを作成している。• Toolkit for Visual Studio を使ってユーザーのシークレットキーを保存している。

詳細については、「Create and Configure an IAM User (p. 79)」および「Generate Credentialsfor an IAM User (p. 81)」を参照してください。

IAM ユーザーは、Toolkit で複数の認証情報セットを保存していることがあります。その場合は、使用する認証情報を選択する必要があります。ルートアカウントでは IAM ユーザーの認証情報をローテーションできます。これにより、認証情報が無効になります。このシナリオでは、アプリケーションを再デプロイして、IAM ユーザーの新しい認証情報を手動で入力する必要があります。

[次へ] を選択します。[Application Options] ページ

2. Amazon RDS インスタンスをデプロイした場合は、次のようなページがデプロイウィザードの一部として表示されます。このページを使用して、デプロイに対して Amazon EC2 インスタンスをユーザーの RDS インスタンスに関連付けられた 1 つまたは複数の Amazon RDS セキュリティグループに追加できます。RDS インスタンスへのアクセスを必要とするアプリケーションの場合は、ここで RDS セキュリティグループのアクセス許可を設定して、このアクセスを有効にする必要があります。詳細については、Amazon RDS セキュリティグループ (p. 75)を参照してください。

VPC にデプロイされている場合は、このページは表示されません。VPC に対して、RDS インスタンスが Amazon EC2 セキュリティグループによって管理されるからです。

34

Page 39: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

3. [Review] ページで、事前に設定されたオプションを確認し、[Open environment status window whenwizard closes] を選択します。

すべてが正しい場合は、[Deploy] を選択します。

Note

アプリケーションをデプロイすると、アプリケーションが使用する AWS リソースの料金が発生し、それはアクティブなアカウントに請求されます。

デプロイ設定をテキストファイルに保存できます。これはスタンドアロンデプロイツールで使用できます。設定を保存するには、[Generate AWSDeploy configuration] を選択します。[Choose File] を選択してから、設定を保存するファイルを指定します。デプロイが完了した後でデプロイ設定を保存することもできます。AWS Explorer でデプロイのコンテキスト (右クリック) メニューを開いて、[SaveConfiguration] を選択します。

Note

アプリケーションをデプロイすると、アプリケーションが使用する AWS リソースの料金が発生し、それはアクティブなアカウントに請求されます。

[Review] ページ4. デプロイのステータスページが開きます。デプロイには数分かかる場合があります。

デプロイが完了すると、ツールキットでアラートが表示されます。デプロイの進行中には他のタスクを行うことができるため、便利です。

[Application URL] リンクを選択し、アプリケーションに接続します。5. デプロイを削除するには、AWS Explorer で [Elastic Beanstalk] ノードを展開し、デプロイのサブノード

のコンテキスト (右クリック) メニューを開いて [Delete] を選択します。Elastic Beanstalk では削除プロセスが開始されます。これには数分かかることがあります。デプロイで通知 Eメールアドレスを指定した場合は、Elastic Beanstalk によりステータス通知がこのアドレスに送信されます。

サンプルウェブアプリケーションのスタータープロジェクトを作成するには

プロジェクトがデプロイできるようになっていない場合は、以下の手順を実行してサンプルアプリケーションを作成します。

1. Visual Studio の [File] メニューで [New] を選択し、[Project] を選択します。2. [New Project] ダイアログボックスのナビゲーションペインで、[Installed]、[Templates]、[Visual C#] の

順に展開し、[Web] を選択します。3. 利用可能なウェブプロジェクトテンプレートのリストの中から、Web と Application が説明に含まれ

るテンプレートのいずれかを選択します。この例では、[ASP.NET Web Forms Application] を選択します。

4. [Name] ボックスに、「AEBWebAppDemo」と入力します。5. [Location] ボックスで、開発マシンのソリューションフォルダへのパスを入力するか、[Browse] を選択

し、ソリューションフォルダを参照して選択し、[Select Folder] を選択します。6. [Create directory for solution] が選択されていることを確認します。[Solution] ドロップダウンリスト

で、[Create new solution] が選択されていることを確認し、[OK] を選択します。Visual Studio を用いて、ASP.NET Web Forms Application プロジェクトテンプレートをベースにしたソリューションやプロジェクトを作成できます。

「Elastic Beanstalk を使用してウェブアプリケーションをデプロイする方法 (レガシー) (p. 31)」に戻り、デプロイを完了します。

35

Page 40: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

AWS CloudFormation へのデプロイ (レガシー)Note

このトピックの情報は、[Publish to Amazon Web Services] ウィザードに関するものです。これは、[Publish to Elastic Beanstalk] ウィザードを使用した Elastic Beanstalk のデプロイに置き換えられました。以下の情報は、レガシーのウィザードを使って AWS CloudFormation をデプロイする場合 (またはその必要がある場合) のために提供されます。推奨される方法である [Publish to Elastic Beanstalk] ウィザードの使用の詳細については、「Elastic Beanstalk へのデプロイ (p. 18)」を参照してください。

AWS CloudFormation は、アプリケーションの AWS リソースのプロビジョニングプロセスを簡素化するサービスです。AWS リソースは、テンプレートファイルで記述されています。AWS CloudFormation サービスはこのテンプレートを使って、自動的に必要なリソースのプロビジョニングを行います。詳細については、「AWS CloudFormation」を参照してください。

アプリケーションを AWS にデプロイし、AWS CloudFormation を使用して、アプリケーションのリソースをプロビジョニングします。演習を行う場合は、ウェブアプリケーションのスタータープロジェクトのインスタンスを使うことができます。これは Visual Studio に組み込まれています。または独自のプロジェクトを使用することもできます。

サンプルウェブアプリケーションのスタータープロジェクトを作成するにはデプロイに使うプロジェクトがない場合には、以下の手順を実行します。

1. Visual Studio の [File] メニューで [New] を選択し、[Project] を選択します。2. [New Project] ダイアログボックスのナビゲーションペインで、[Installed]、[Templates]、[Visual C#] の

順に展開し、[Web] を選択します。3. 使用できるウェブプロジェクトテンプレートのリストの中から、Web と Application が説明に含まれ

るテンプレートのいずれかを選択します。この例では、[ASP.NET Web Forms Application] を選択します。

4. [Name] ボックスに、「AEBWebAppDemo」と入力します。5. [Location] ボックスで、開発マシンのソリューションフォルダへのパスを入力するか、[Browse] を選択

し、ソリューションフォルダを参照して選択し、[Select Folder] を選択します。6. [Create directory for solution] が選択されていることを確認します。[Solution] ドロップダウンリスト

で、[Create new solution] が選択されていることを確認し、[OK] を選択します。Visual Studio を用いて、ASP.NET Web Forms Application プロジェクトテンプレートをベースにしたソリューションやプロジェクトを作成できます。

レガシーの [Publish to Amazon Web Services] ウィザードを使用してアプリケーションをデプロイするには

1. Solution Explorer で、AEBWebAppDemo のプロジェクトフォルダ (または独自のプロジェクトフォルダ) のコンテキスト (右クリック) メニューを開き、[Publish to AWS] を選択します。

2. [Publish to AWS Elastic Beanstalk] ページで [Use legacy wizard] を選択します。3. ウィザードの [Template] ページで、デプロイに使用するプロファイルを選択します。新しいプロファイ

ルを追加するには、[Other] を選択します。プロファイルの詳細については、「認証情報」を参照してください。

4. デプロイウィザードまたはスタンドアロンのデプロイツールを使用して、新しいアプリケーションをデプロイするか、または以前にデプロイされたアプリケーションを再デプロイするオプションがあります。再デプロイを選択する場合は、ウィザードが以前のデプロイから情報を取得するために遅延が生じる場合があります。

Toolkit for Visual Studio には、[Load Balanced Template] と [Single Instance Template] が含まれています。[Load Balanced Template] は、Elastic Load Balancing ロードバランサーと Auto Scaling グループ

36

Page 41: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

を使って、Amazon EC2 インスタンスをプロビジョニングします。[Single Instance Template] は、単一の Amazon EC2 インスタンスをプロビジョニングします。

この例では、[Load Balanced Template] を選択し、[Next] を選択します。5. [AWS Options] ページで以下を設定します。

• [Key pair] ドロップダウンリストから、Amazon EC2 キーペアを選択します。• [SNS Topic] は空白のままにします。SNS トピックを指定した場合、AWS CloudFormation は、デプ

ロイ中にステータス通知を送信します。• [Custom AMI] フィールドは空白のままにします。AWS CloudFormation テンプレートには AMI が含

まれています。• [Instance type] ドロップダウンリストで、[Micro] をデフォルトの設定のままにします。これによ

り、インスタンスの実行に関連するコストが最小化されます。Amazon EC2 の料金の詳細については、EC2 料金のページを参照してください。

• [Security group] ドロップダウンリストで、ポート 80 が開かれているセキュリティグループを選択します。すでにポート 80 が開かれているセキュリティグループが設定されている場合は、それを選択します。このドロップダウンリストのデフォルトの選択は、ポート 80 が開かれていません。

AWS CloudFormation にデプロイされたアプリケーションでは、ポート 80 が開かれている必要があります。AWS CloudFormation はこのポートを使用してデプロイに関する情報を中継します。選択したセキュリティグループでポート 80 が開かれていない場合は、ウィザードにポート 80 を開くかどうかを尋ねられます。[Yes] を選択すると、そのセキュリティグループを使用するすべてのAmazon EC2 インスタンスにポート 80 を開きます。セキュリティグループを作成する方法については、「AWS Explorer からセキュリティグループを管理する (p. 14)」を参照してください。

[次へ] を選択します。6. [Application Options] ページの [Application Credentials] セクションで、アプリケーションが実行される

プロファイルを選択します (この例では PetBoard です)。これは、AWS CloudFormation へのデプロイに使用したプロファイル (つまり、ウィザードの最初のページで指定したプロファイル) とは異なる場合があります。

別の認証情報のセットを使用するには、[Use these credentials] を選択し、表示されたフィールドにアクセスキーとシークレットキーを入力します。

同じ認証情報を使用するには、[Use credentials from profile profile_name] を選択します。{profile_name}はウィザードの最初のページで指定したプロファイルです。

AWS Identity and Access Management (IAM) ユーザーの認証情報を使用するには、[Use an IAM user]を選択し、ユーザーを指定します。

IAM ユーザーを使用するには、次のことが必要です。• Toolkit for Visual Studio で IAM ユーザーを作成している。• Toolkit for Visual Studio を使ってユーザーのシークレットキーを保存している。

詳細については、「Create and Configure an IAM User (p. 79)」および「Generate Credentials for anIAM User (p. 81)」を参照してください。

IAM ユーザーは、Toolkit で複数の認証情報セットを保存していることがあります。その場合は、使用する認証情報を選択する必要があります。ルートアカウントでは、IAM ユーザーの認証情報をローテーションできます。これにより、認証情報が無効になります。このシナリオでは、アプリケーションを再デプロイして、IAM ユーザーの新しい認証情報を手動で入力する必要があります。

次の表は、[Application Options] ページで使用できる他のオプションを示します。PetBoard はデフォルト値を使用できます。

37

Page 42: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドElastic Beanstalk へのデプロイ

キーと値 説明

PARAM1、PARAM2、PARAM3、PARAM4、PARAM5これらの値は、Web.config ファイルのappSettings 要素を通じて、デプロイされたアプリケーションで使用できるようになります。詳細については、Microsoft の MSDN ライブラリを参照してください。

Target framework アプリケーションがターゲットとする .NETFramework のバージョンを指定します。使用できる値は次のとおりです。.NET Framework2.0、.NET Framework 3.0、.NET Framework3.5、.NET Framework 4.0、.NET Framework 4.5

Enable 32-bit applications アプリケーションが 32 ビットである場合に選択します。それ以外の場合は、ボックスをオフのままにしておきます。

Application health check URL この URL はルートサーバー URL への相対URL です。たとえば、URL への完全なパスがexample.com/site-is-up.html である場合は /site-is-up.html と入力します。この設定は、負荷分散のテンプレートを使用する場合にのみ適用されます。これは、単一インスタンスのテンプレートを使用する場合には無視されます。

[Finish] を選択します。7. [Review] ページで、[Open environment status window when wizard closes] を選択します。

デプロイ設定をテキストファイルに保存できます。これはスタンドアロンデプロイツールで使用できます。設定を保存するには、[Generate AWSDeploy configuration] を選択します。[Choose File] を選択してから、設定を保存するファイルを指定します。デプロイが完了した後でデプロイ設定を保存することもできます。AWS Explorer でデプロイのコンテキスト (右クリック) メニューを開いて、[SaveConfiguration] を選択します。

Note

デプロイ設定にはデプロイに使用した認証情報が含まれるため、設定ファイルは安全な場所に保持する必要があります。

[Deploy] を選択します。

Note

アプリケーションをデプロイすると、アプリケーションが使用する AWS リソースの料金が発生し、それはアクティブなアカウントに請求されます。

8. デプロイのステータスページが開きます。デプロイには数分かかる場合があります。

デプロイが完了すると、ツールキットでアラートが表示されます。デプロイの進行中には他のタスクを行うことができるため、便利です。

デプロイが完了すると、Toolkit for Visual Studio に表示されるステータスが [CREATE_COMPLETE] となります。

[Application URL] リンクを選択し、アプリケーションに接続します。

38

Page 43: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 Container Service へのデプロイ

9. デプロイを削除するには、AWS Explorer で [CloudFormation] ノードを展開し、デプロイのサブノードのコンテキスト (右クリック) メニューを開いて [Delete] を選択します。AWS CloudFormation は、削除プロセスを開始します。これには数分かかることがあります。デプロイで SNS トピックを指定した場合、AWS CloudFormation はこのトピックにステータス通知を送信します。

Amazon EC2 Container Service へのデプロイAmazon Elastic Container Service は非常にスケーラブルかつ高性能なコンテナ管理サービスで、Dockerコンテナに対応しており、Amazon EC2 インスタンスのマネージド型クラスターでアプリケーションを簡単に実行できるようになります。

アプリケーションを Amazon Elastic Container Service にデプロイするには、アプリケーションコンポーネントを開発して Docker コンテナで実行する必要があります。Docker コンテナは標準化されたソフトウェア開発用のユニットであり、コード、ランタイム、システムツール、システムライブラリなど、ソフトウェアアプリケーションの実行に必要なものがすべて含まれています。

Toolkit for Visual Studio には、Amazon ECS によるアプリケーションの公開を簡素化するウィザードが用意されています。このウィザードについては、次のセクションで説明します。

Amazon ECS の詳細については、Elastic Container Service のドキュメントを参照してください。このドキュメントには、Docker の基本とクラスターの作成の概要が示されています。

トピック• ASP.NET コア 2 アプリケーション用に AWS 認証情報を指定する (p. 39)• Amazon ECS への ASP.NET Core 2.0 アプリケーションのデプロイ (Fargate) (p. 40)• Amazon ECS への ASP.NET Core 2.0 アプリケーションのデプロイ (EC2) (p. 43)

ASP.NET コア 2 アプリケーション用に AWS 認証情報を指定するアプリケーションを Docker コンテナにデプロイするときに必要になる認証情報には、デプロイ認証情報とインスタンス認証情報の 2 タイプがあります。

デプロイ認証情報は、[Publish Container to AWS] ウィザードによって Amazon ECS で環境を作成するために使用されます。これには、タスク、サービス、IAM ロール、Docker コンテナリポジトリのほか、選択した場合はロードバランサーも含まれます。

インスタンス認証情報は、インスタンス (アプリケーションを含む) によってさまざまなサービスにアクセスするために使用されます。<problematic>|AWS|</problematic>services. たとえば、ASP.NET Core 2.0 アプリケーションが Amazon S3 オブジェクトに対して読み書きを行う場合は、適切なアクセス権限が必要になります。そのために、環境に基づいて異なる方法で異なる認証情報を提供できます。たとえば、ASP.NET Core 2 アプリケーションは開発環境と本番稼働用環境を対象とする場合があります。ローカルの Docker インスタンスおよび認証情報を開発環境に使用し、定義したロールを本番稼働用環境に使用できます。

デプロイ認証情報の指定[Publish Container to AWS] ウィザードで指定する AWS アカウントは、そのウィザードによって AmazonECS へのデプロイに使用される AWS アカウントです。アカウントプロファイルには、Amazon ElasticCompute Cloud、Amazon Elastic Container Service、AWS Identity and Access Management に対するアクセス権限が必要です。

ドロップダウンリストにオプションが見つからない場合は、それらのアクセス権限が不足している可能性があります。たとえば、アプリケーション用のクラスターを作成したが、[Publish Container to AWS] ウィ

39

Page 44: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 Container Service へのデプロイ

ザードの [Cluster] ページに表示されない場合です。この場合、不足しているアクセス権限を追加してウィザードを再試行してください。

開発用のインスタンス認証情報の指定

本番稼働用でない環境では、appsettings.<environment>.json ファイルで認証情報を設定できます。たとえば、Visual Studio 2017 の appsettings.Development.json ファイルで認証情報を設定するには、以下の手順に従います。

1. プロジェクトに AWSSDK.Extensions.NETCore.Setup NuGet パッケージを追加します。2. appsettings.Development.json に AWS 設定を追加します。以下に示しているのは、Profile と

Region の設定です。

{ "AWS": { "Profile": "local-test-profile", "Region": "us-west-2" }}

本番稼働用のインスタンス認証情報の指定

本番稼働用インスタンスでは、アプリケーション (およびサービス) のアクセスコントロールに IAM ロールを使用することをお勧めします。たとえば、Amazon ECS をサービスプリンシパルとし、Amazon SimpleStorage Service と Amazon DynamoDB に対するアクセス権限を持つ IAM ロールを AWS マネジメントコンソール から設定するには、以下の手順に従います。

1. AWS マネジメントコンソール にサインインし、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

2. IAM コンソールのナビゲーションペインで、[Roles]、[Create role] の順に選択します。3. [AWS Service] ロールタイプを選択してから、[EC2 Container Service] を選択します。4. [EC2 Container Service Task] ユースケースを選択します。ユースケースは、サービスに必要な信頼ポ

リシーを含めるように定義されています。続いて、[Next: Permissions] を選択します。5. [AmazonS3FullAccess] および [AmazonDynamoDBFullAccess] 権限ポリシーを選択します。各ポリシー

の横にあるチェックボックスをオンにし、[Next: Review] を選択します。6. [Role name] に、このロールの目的を識別するのに役立つロール名またはロール名サフィックスを入力

します。ロール名は AWS アカウント内で一意でなければなりません。大文字と小文字は区別されません。たとえば、PRODROLE と prodrole というロール名を両方作成することはできません。多くのエンティティによりロールが参照されるため、作成後にロール名を変更することはできません。

7. (オプション) [Role description] に、新しいロールの説明を入力します。8. ロール情報を確認し、[Create role] を選択します。

このロールは、[Publish Container to AWS] ウィザードの [ECS Task Definition] ページで [task role] として使用できます。

詳細については、「サービスベースのロールの使用」を参照してください。

Amazon ECS への ASP.NET Core 2.0 アプリケーションのデプロイ (Fargate)このセクションでは、Toolkit for Visual Studio の一部として提供される [Publish Container to AWS] ウィザードにより、Fargate 起動タイプを使用して Linux 向けコンテナ化 ASP.NET Core 2.0 アプリケーション

40

Page 45: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 Container Service へのデプロイ

を Amazon ECS 経由でデプロイする方法について説明します。ウェブアプリケーションは継続的に実行されるため、サービスとしてデプロイされます。

コンテナを公開する前に

[Publish Container to AWS] ウィザードを使用して ASP.NET Core 2.0 アプリケーションをデプロイする前に:

• AWS 認証情報を指定し、Amazon ECS をセットアップします。• Docker のインストール. Docker for Windows などさまざまなインストールオプションがあります。• Visual Studio 2017 で Linux プロジェクト向け ASP.NET Core 2.0 コンテナ化アプリケーションを作成し

ます (または開きます)。

[Publish Container to AWS] ウィザードへのアクセス

Linux 向け ASP.NET Core 2.0 コンテナ化アプリケーションをデプロイするには、Solution Explorer でプロジェクトを右クリックし、[Publish Container to AWS] を選択します。

Visual Studio の [Build] メニューの [Publish Container to AWS] を選択することもできます。

[Publish Container to AWS] ウィザード

Account profile to use - 使用するアカウントプロファイルを選択します。

Region - デプロイリージョンを選択します。プロファイルとリージョンは、デプロイ環境リソースのセットアップとデフォルト Docker レジストリの選択に使用されます。

Configuration - Docker イメージビルド設定を選択します。

Docker Repository - 既存の Docker リポジトリを選択するか、新しいリポジトリの名前を入力します (新しいリポジトリが作成されます)。これは、ビルドコンテナがプッシュされるリポジトリです。

Tag - 既存のタグを選択するか、新しいタグの名前を入力します。タグを使用して、Docker コンテナに固有の設定要素 (バージョン、オプションなど) のような重要な詳細を追跡できます。

Deployment Target - [Service on an ECS Cluster] を選択します。このデプロイオプションは、実行時間の長いアプリケーション (ASP.NET ウェブアプリケーションなど) に使用します。

Save settings to aws-docker-tools-defaults.json and configure project for command line deployment - コマンドラインから柔軟にデプロイする場合は、このチェックボックスをオンにします。dotnet ecsdeploy を使用してプロジェクトディレクトリからコンテナをデプロイし、dotnet ecs publish を使用してコンテナを公開します。

[Launch Configuration] ページ

ECS Cluster - Docker イメージを実行するクラスターを選択します。空のクラスターを作成する場合は、新しいクラスターの名前を入力します。

Launch Type - [FARGATE] を選択します。

CPU Maximum (vCPU) - アプリケーションに必要なコンピューティング性能の最大数を選択します。CPUとメモリの値の許容範囲を確認するには、「タスクサイズ」を参照してください。

Memory Maximum (GB) - アプリケーションで使用できるメモリの最大量を選択します。

VPC Subnets - 1 つの VPC の 1 つ以上のサブネットを選択します。複数のサブネットを選択すると、タスクはそれらのサブネット間で分散されます。これにより、可用性が向上します。詳細については、「デフォルトの VPC とサブネット」を参照してください。

41

Page 46: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 Container Service へのデプロイ

Security Groups - セキュリティグループを選択します。

セキュリティグループは、関連付けられた Amazon EC2 インスタンスのファイアウォールとして動作し、インバウンドトラフィックとアウトバウンドトラフィックの両方をインスタンスレベルでコントロールします。

デフォルトセキュリティグループは、同じセキュリティグループに割り当てられたインスタンスからのインバウンドトラフィックとすべてのアウトバウンド IPv4 トラフィックを許可するように設定されています。サービスがコンテナリポジトリに到達できるように、アウトバウンドトラフィックを許可している必要があります。

Assign Public IP Address - タスクをインターネットからアクセス可能にするには、このチェックボックスをオンにします。

[Service Configuration] ページ

Service - 既存のサービス内にコンテナをデプロイするには、ドロップダウンリストでいずれかのサービスを選択します。または、新しいサービスを作成するには、[Create New] を選択します。サービス名は同じクラスター内で一意になるようにしてください。ただし、リージョン内のクラスター間や複数のリージョンにまたがるクラスター間では、同様の名前のサービスがあっても構いません。

Number of Tasks - クラスターにデプロイして実行状態に保つタスクの数。各タスクはコンテナの 1 つのインスタンスです。

Minimum Healthy Percent - デプロイ中に RUNNING 状態に保つ必要のあるタスクの最小割合 (最も近い整数に切り上げ)。

Maximum Percent - デプロイ中に RUNNING または PENDING 状態に保つことのできるタスクの最大割合(最も近い整数に切り下げ)。

[Application Load Balancer] ページ

Configure Application Load Balancer - Application Load Balancer を設定するには、このチェックボックスをオンにします。

Load Balancer - 既存のロードバランサーを選択するか、[Create New] を選択して新しいロードバランサーの名前を入力します。

Listener Port - 既存のリスナーポートを選択するか、[Create New] を選択してポート番号を入力します。デフォルトのポート 80 はほとんどのウェブアプリケーションに適しています。

Target Group - Amazon ECS がサービスに対するタスクを登録するターゲットグループを選択します。

Path Pattern - ロードバランサーがパスベースのルーティングを使用するようになります。デフォルトの /を受け入れるか、別のパターンを指定します。パスパターンでは大文字と小文字が区別され、最大 128 文字までの特定の文字セットを含めることができます。

Health Check Path - ヘルスチェックのターゲットの ping 先のパス。デフォルトでは、/ です。必要に応じて別のパスを入力します。入力したパスが無効な場合、ヘルスチェックは失敗し、異常とみなされます。

複数のサービスをデプロイし、各サービスが異なるパスまたは場所にデプロイされる場合は、カスタムチェックパスが必要になります。

[Task Definition] ページ

Task Definition - 既存のタスク定義を選択するか、[Create New] を選択して新しいタスク定義の名前を入力します。

Container - 既存のコンテナを選択するか、[Create New] を選択して新しいコンテナの名前を入力します。

42

Page 47: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 Container Service へのデプロイ

Task Role - アプリケーションが AWS サービスにアクセスするための認証情報がある IAM ロールを選択します。これは、アプリケーションに認証情報が渡される方法になります。「アプリケーション用に AWSセキュリティの認証情報を指定する方法」を参照してください。

Task Execution Role - プライベートイメージをプルしてログを公開するアクセス権限のあるロールを選択します。AWS Fargate がお客様に代わってそのロールを使用します。

Port Mapping - 自動的に割り当てられたホストポートにバインドされるコンテナポートの番号を選択します。

Environment Variables - コンテナの環境変数を追加、変更、または削除します。環境変数はデプロイに合わせて変更できます。

設定に問題がなければ、[Publish] をクリックしてデプロイプロセスを開始します。

AWS へのコンテナの公開デプロイ中にイベントが表示されます。ウィザードは正常終了時に自動的に閉じられます。この動作を無効にするには、ページの下部にあるチェックボックスをオフにします。

新しいインスタンスの URL は AWS Explorer で見つけることができます。[Amazon ECS and Clusters] を展開し、クラスターをクリックします。

Amazon ECS への ASP.NET Core 2.0 アプリケーションのデプロイ (EC2)このセクションでは、Toolkit for Visual Studio の一部として提供される [Publish Container to AWS] ウィザードにより、EC2 起動タイプを使用して Linux 向けコンテナ化 ASP.NET Core 2.0 アプリケーションをAmazon ECS 経由でデプロイする方法について説明します。ウェブアプリケーションは継続的に実行されるため、サービスとしてデプロイされます。

コンテナを公開する前に[Publish Container to AWS] を使用して ASP.NET Core 2.0 アプリケーションをデプロイする前に:

• AWS 認証情報を指定し、Amazon ECS をセットアップします。• Docker のインストール. Docker for Windows などさまざまなインストールオプションがあります。• ウェブアプリケーションのニーズに基づいて、Amazon ECS クラスターを作成します。このプロセスは

ほんの数ステップで完了します。• Visual Studio 2017 で Linux プロジェクト向け ASP.NET Core 2.0 コンテナ化アプリケーションを作成し

ます (または開きます)。

[Publish Container to AWS] ウィザードへのアクセスLinux 向け ASP.NET Core 2.0 コンテナ化アプリケーションをデプロイするには、Solution Explorer でプロジェクトを右クリックし、[Publish Container to AWS] を選択します。

Visual Studio の [Build] メニューの [Publish Container to AWS] を選択することもできます。

[Publish Container to AWS] ウィザードAccount profile to use - 使用するアカウントプロファイルを選択します。

Region - デプロイリージョンを選択します。プロファイルとリージョンは、デプロイ環境リソースのセットアップとデフォルト Docker レジストリの選択に使用されます。

Configuration - Docker イメージビルド設定を選択します。

43

Page 48: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 Container Service へのデプロイ

Docker Repository - 既存の Docker リポジトリを選択するか、新しいリポジトリの名前を入力します (新しいリポジトリが作成されます)。これは、ビルドコンテナイメージがプッシュされるリポジトリです。

Tag - 既存のタグを選択するか、新しいタグの名前を入力します。タグを使用して、Docker コンテナに固有の設定要素 (バージョン、オプションなど) のような重要な詳細を追跡できます。

Deployment - [Service on an ECS Cluster] を選択します。このデプロイオプションは、実行時間の長いアプリケーション (ASP.NET Core 2.0 ウェブアプリケーションなど) に使用します。

Save settings to aws-docker-tools-defaults.json and configure project for command line deployment - コマンドラインから柔軟にデプロイする場合は、このチェックボックスをオンにします。dotnet ecsdeploy を使用してプロジェクトディレクトリからコンテナをデプロイし、dotnet ecs publish を使用してコンテナを公開します。

[Launch Configuration] ページECS Cluster - Docker イメージを実行するクラスターを選択します。AWS マネジメントコンソールを使用して ECS クラスターを作成できます。

Launch Type - [EC2] を選択します。Fargate 起動タイプを使用するには、「Amazon ECS への ASP.NETCore 2.0 アプリケーションのデプロイ (Fargate)」を参照してください。

[Service Configuration] ページService - 既存のサービス内にコンテナをデプロイするには、ドロップダウンリストでいずれかのサービスを選択します。または、新しいサービスを作成するには、[Create New] を選択します。サービス名は同じクラスター内で一意になるようにしてください。ただし、リージョン内のクラスター間や複数のリージョンにまたがるクラスター間では、同様の名前のサービスがあっても構いません。

Number of Tasks - クラスターにデプロイして実行状態に保つタスクの数。各タスクはコンテナの 1 つのインスタンスです。

Minimum Healthy Percent - デプロイ中に RUNNING 状態に保つ必要のあるタスクの最小割合 (最も近い整数に切り上げ)。

Maximum Percent - デプロイ中に RUNNING または PENDING 状態に保つことのできるタスクの最大割合(最も近い整数に切り下げ)。

Placement Templates - タスク配置テンプレートを選択します。

クラスター内にタスクを起動するとき、Amazon ECS では、タスク定義で指定されている CPU やメモリなどの要件に基づいてタスクを配置する場所を決定する必要があります。同様に、タスク数を減らすときも、Amazon ECS でどのタスクを終了させるか決定する必要があります。

配置テンプレートは、クラスター内にタスクを起動する方法をコントロールします。

• [AZ Balanced Spread] - アベイラビリティーゾーン間およびアベイラビリティーゾーン内のコンテナインスタンス間でタスクを分散します。

• [AZ Balanced BinPack] - 利用可能な最小メモリでアベイラビリティーゾーン間およびコンテナインスタンス間でタスクを分散します。

• [BinPack] - CPU またはメモリの最小利用可能量に基づいてタスクを配置します。• [One Task Per Instance] - 各コンテナインスタンスのサービスから最大 1 タスクを配置します。

詳細については、「Amazon ECS のタスク配置」を参照してください。

[Application Load Balancer] ページConfigure Application Load Balancer - Application Load Balancer を設定するには、このチェックボックスをオンにします。

44

Page 49: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon EC2 Container Service へのデプロイ

Select IAM role for service - 既存のロールを選択するか、[Create New] を選択して新しいロールを作成します。

Load Balancer - 既存のロードバランサーを選択するか、[Create New] を選択して新しいロードバランサーの名前を入力します。

Listener Port - 既存のリスナーポートを選択するか、[Create New] を選択してポート番号を入力します。デフォルトのポート 80 はほとんどのウェブアプリケーションに適しています。

Target Group - デフォルトでは、ロードバランサーはターゲットグループ用に指定したポートとプロトコルを使用して登録済みターゲットにリクエストを送ります。ターゲットグループに各ターゲットを登録するときに、このポートを上書きできます。

Path Pattern - ロードバランサーがパスベースのルーティングを使用するようになります。デフォルトの /を受け入れるか、別のパターンを指定します。パスパターンでは大文字と小文字が区別され、最大 128 文字までの特定の文字セットを含めることができます。

Health Check Path - ヘルスチェックのターゲットの ping 先のパス。デフォルトでは / であり、ウェブアプリケーションに適しています。必要に応じて別のパスを入力します。入力したパスが無効な場合、ヘルスチェックは失敗し、異常とみなされます。

複数のサービスをデプロイし、各サービスが異なるパスまたは場所にデプロイされる場合は、カスタムチェックパスが必要になることがあります。

[ECS Task Definition] ページ

Task Definition - 既存のタスク定義を選択するか、[Create New] を選択して新しいタスク定義の名前を入力します。

Container - 既存のコンテナを選択するか、[Create New] を選択して新しいコンテナの名前を入力します。

Memory (MiB) - ソフト制限とハード制限のいずれか、または両方の値を入力します。

コンテナ用に予約するメモリのソフト制限 (MiB 単位)。Docker により、コンテナメモリはソフト制限を超えないように保たれます。コンテナは、メモリパラメータで指定したハード制限 (該当する場合) に達するか、コンテナインスタンス上の使用可能なメモリの上限に達するか、いずれか早く達する方まで、メモリを使用できます。

コンテナに適用されるメモリのハード制限 (MiB 単位)。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。

Task Role - IAM ロールのタスクロールを選択します。これによりコンテナには、関連付けられたポリシーに指定されている AWS API をお客様に代わって呼び出すアクセス権限が付与されます。これは、アプリケーションに認証情報が渡される方法になります。「アプリケーション用に AWS セキュリティの認証情報を指定する方法」を参照してください。

Port Mapping - コンテナのポートマッピングを追加、変更、または削除します。ロードバランサーがオンの場合、ホストポートはデフォルトで 0 になり、ポート割り当ては動的になります。

Environment Variables - コンテナの環境変数を追加、変更、または削除します。

設定に問題がなければ、[Publish] をクリックしてデプロイプロセスを開始します。

AWS へのコンテナの公開

デプロイ中にイベントが表示されます。ウィザードは正常終了時に自動的に閉じられます。この動作を無効にするには、ページの下部にあるチェックボックスをオフにします。

新しいインスタンスの URL は AWS Explorer で見つけることができます。[Amazon ECS and Clusters] を展開し、クラスターをクリックします。

45

Page 50: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

スタンドアロンデプロイツールNote

AWS CloudFormation のデプロイと Elastic Beanstalk の増分デプロイに関連する、スタンドアロンデプロイツールのオプションは、現在のバージョンではサポート終了となったため、使用しないでください。推奨される方法である [Publish to Elastic Beanstalk] ウィザードの使用の詳細については、「Elastic Beanstalk へのデプロイ (p. 18)」を参照してください。

Toolkit for Visual Studio には、デプロイウィザードと同等の機能を提供する、コマンドラインツールが含まれています。ビルドパイプラインまたはその他のスクリプトでスタンドアロンデプロイツールを使用して、Elastic Beanstalk へのデプロイを自動化できます。

デプロイツールは、初期デプロイと再デプロイの両方に使用できます。デプロイツールを使用してアプリケーションをデプロイした場合、Visual Studio のデプロイウィザードを使用して、再デプロイすることができます。またはその逆も可能です。

デプロイツールは、デプロイのためのパラメーター値を指定する、設定ファイルを使用します。VisualStudio のデプロイウィザードを使用してアプリケーションをデプロイした場合、AWS Explorer から設定ファイルを生成できます。またはウィザードの最後のステップで生成できます。

Note

デプロイ設定にはデプロイに使用した認証情報が含まれるため、設定ファイルは安全な場所に保持する必要があります。

デプロイツールを使ってウェブアプリケーションをデプロイするには、.zip ファイルでアプリケーションをパッケージ化します。デプロイ用にアプリケーションをパッケージ化する方法の詳細については、MSDN の「Visual Studio でウェブデプロイパッケージを作成する方法」を参照してください。

デプロイツールのインストールと呼び出しデプロイツールは通常、以下のディレクトリにインストールされます。

C:\Program Files\AWS Tools\Deployment Tool\awsdeploy.exe

Microsoft Windows の 64 ビットシステムでは、次のディレクトリにインストールされます。

C:\Program Files (x86)\AWS Tools\Deployment Tool\awsdeploy.exe

呼び出し構文

awsdeploy [options] configFile

設定ファイルは、コマンドラインで指定する最後の項目とする必要があります。

コマンドラインオプションは、スラッシュ (/) またはハイフン (-) を使用して指定することができます。

D オプションを除き、各コマンドラインオプションには、長い形式と 1 文字の略称があります。たとえば、次のいずれかの方法でサイレントモードを指定できます。

/s-s/silent

46

Page 51: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

-silent

他のコマンドラインオプションも同様の形式に従います。

次の表に、使用できるコマンドラインオプションを示します。

オプション 説明

/s、/silent、-s、-silent メッセージをコンソールに出力しません。

/v、/verbose、-v、-verbose デプロイに関する詳細情報をコンソールに出力します。

/r、/redeploy、-r、-redeploy スタックを作成しません。既存のスタックにデプロイします。このオプションでは、AWSCloudFormation の設定は変更されません。

/u、/updateStack、-u、-updateStack 既存のデプロイ用の AWS CloudFormation 設定を更新します。アプリケーションの再デプロイは行いません。** (サポート終了となりました。使用しないでください。)**

/w、/wait、-w、-wait デプロイが完了するまでブロックします。このオプションは、デプロイの完了後に何らかのアクションを行う必要があるスクリプトで役立ちます。

/l <logfile>、/log <logfile>、-l <logfile>、-log<logfile>

指定されたログファイルにデバッグ情報をログ記録します。

/D<key>=<value>、-D<key>=<value> コマンドラインから設定を上書きします。詳細については、設定ファイルのセクションを参照してください。

出力と終了コード警告やエラーはコンソールに出力されます。ログオプションを指定すると、追加のログ出力がログファイルに送信されます。

デプロイツールは次の終了コードを使用します。

キーと値 説明

0 成功

1 引数が無効です

3 デプロイが失敗しました

デプロイが正常に完了すると、デプロイツールは、デプロイされたアプリケーションの URL を出力します。

設定ファイルのサンプル設定ファイルを使用して、デプロイツールのアクションを指定します。Toolkit for Visual Studio には、3 つのサンプル設定ファイルが含まれています。

47

Page 52: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

• Elastic Beanstalk のデプロイ• AWS CloudFormation の単一インスタンスのデプロイ• AWS CloudFormation の負荷分散されたデプロイ

サンプルのウェブアプリ

Toolkit for Visual Studio には、デプロイツールを使用してデプロイすることができる、サンプルのウェブアプリが含まれています (.zip ファイルアーカイブにあります)。これらのファイルは、デプロイツールがインストールされているディレクトリの Samples サブディレクトリにあります。

D コマンドラインオプションを使用して、設定ファイルの設定を上書きすることができます。

/D<key>=<value>

または

-D<key>=<value>

D オプションを複数回指定して、複数の設定ファイルの設定を上書きすることができます。コマンドラインで同じキーを使って異なる値の設定を繰り返すと、デプロイツールは最後に指定された値を使用します。

デプロイツールの設定ファイルの形式設定ファイルは、デプロイウィザードで指定できる情報と同じ情報を提供します。設定ファイルの形式は、デプロイウィザードのページに対応するセクションに分かれています。

Elastic Beanstalk のデプロイ設定ファイル

Elastic Beanstalk を使ったデプロイに、次の設定パラメーターを使用できます。

スタンドアロンデプロイツールを使った Elastic Beanstalk へのデプロイのウォークスルーは、「開発者ガイド」を参照してください。

全般設定

/Daws:autoscaling:launchconfiguration.SecurityGroups=RDPOnly,HTTPOnly

キーと値 説明

DeploymentPackage = archive.zip ウェブデプロイアーカイブへの相対パスです。これは作業ディレクトリ (デプロイツールを呼び出すディレクトリ) への相対パスです。

IncrementalPushLocation (サポートが終了しました。使用しないでください) 指定すると、増分デプロイが有効化されます。バージョン付きのデプロイパッケージを格納するための Git リポジトリが作成される場所 (たとえば、C:\Temp\VS2008App1) を値として指定します。

Template = ElasticBeanstalk Elastic Beanstalk またはElasticBeanstalk のいずれかを設定できます。

48

Page 53: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

キーと値 説明

Application.Name アプリケーションの名前を指定します。この値は必須です。

Application.Description アプリケーションの説明 (オプション) を指定します。

Application.Version アプリケーションのバージョン文字列を指定します。増分デプロイを使用している場合、この値は無視されます。Elastic Beanstalk は、バージョン文字列として Git のコミット ID を使用します。

Region = us-east-1 ターゲットのリージョンとエンドポイントです。

UploadBucket = awsdeployment-us-east-1-samples デプロイマテリアルが保存される Amazon S3 バケットです。このバケットが存在しない場合は、作成されます。デプロイウィザードを使用する場合は、自動的にバケット名を生成します。

KeyPair = default インスタンスにサインインするための AmazonEC2 のキーペアです。キーペアは、デプロイ前に存在している必要があります。(デプロイウィザードでは、デプロイ時にキーペアを作成することができます。)

AWSAccessKey =DEPLOYMENT_CREDENTIALS_HERE

AWSSecretKey =DEPLOYMENT_CREDENTIALS_HERE

スタックの作成と、Elastic Beanstalk へのアプリケーションのデプロイに使用する、AWS のアクセスキーとシークレットキーです。これらのパラメーターを使用して認証情報を指定することはお勧めしません。認証情報のプロファイルを作成して、AWSProfileName を使用してプロファイルを参照するようにします。詳細については、「認証情報」を参照してください。

AWSProfileName = {profile_name} スタックの作成と Elastic Beanstalk へのアプリケーションのデプロイに使用するプロファイルです。

aws:autoscaling:launchconfiguration.SecurityGroups= default

Amazon EC2 インスタンスのセキュリティグループの名前です。複数のセキュリティグループを指定する場合、カンマで区切ります。

/Daws:autoscaling:launchconfiguration.SecurityGroups=RDPOnly,HTTPOnly

セキュリティグループはすでに存在し、ポート 80(HTTP) の受信が許可されている必要があります。セキュリティグループの作成方法については、「tkv-sg」を参照してください。

環境設定

キーと値 説明

Environment.Name Elastic Beanstalk 環境の名前を指定します。この値は必須です。

49

Page 54: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

キーと値 説明

Environment.Description オプション。環境の説明を指定します。

Environment.CNAME オプション。アプリケーションの URL プレフィックスを指定します。この値を指定しない場合、Elastic Beanstalk ではプレフィックスは環境名から取得されます。

コンテナの設定

キーと値 説明

Container.TargetRuntime = 4.0 .NET Framework のターゲットランタイムを指定します。使用できる値は 2.0 または 4.0 です。次の .NET Framework のバージョンは、2.0 のターゲットランタイムにマッピングされます。

• .NET Framework 2.0• .NET Framework 3.0• .NET Framework 3.5

次の .NET Framework のバージョンは、4.0 のターゲットランタイムにマッピングされます。

• .NET Framework 4.0• .NET Framework 4.5

Toolkit for Visual Studio のデプロイウィザード (p. 18)では、.NET Framework のバージョンを指定できます。それによってウィザードが .NETFramework のバージョンを適切なターゲットランタイムのバージョンにマッピングします。

Container.Enable32BitApplications = false アプリケーションが 32 ビットである場合は trueを指定します。アプリケーションが 64 ビットである場合は false を指定します。

Container.ApplicationHealthcheckPath = / この URL はルートサーバー URL への相対 URLです。たとえば、完全な URL が example.com/site-is-up.html である場合は /site-is-up.html と入力します。この設定は、負荷分散のテンプレートを使用する場合にのみ適用されます。これは、単一インスタンスのテンプレートを使用する場合には無視されます。この URL でのアプリケーションの応答性は、ロードバランサーと自動スケーラーによるアクションに影響します。アプリケーションが応答しない場合または応答が遅い場合は、ロードバランサーは着信するネットワークトラフィックを、他の Amazon EC2インスタンスへ送信し、自動スケーラーは追加のAmazon EC2 インスタンスを追加することがあります。

50

Page 55: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

キーと値 説明

Container.InstanceType = t1.micro 使用する Amazon EC2 インスタンスのタイプです。ここに示されているマイクロインスタンスは、インスタンスの EC2 料金表のタイプです。

Container.AmiID カスタム Amazon Machine Image (AMI) を指定します。カスタム AMI の作成方法の詳細については、「カスタム AMI の使用」(『AWS ElasticBeanstalk 開発者ガイド』) と「Amazon EC2 インスタンスからの AMI の作成 (p. 15)」を参照してください。

Container.NotificationEmail オプション。デプロイのステータス通知用の Eメールアドレスを指定します。

AWS CloudFormation のデプロイ設定ファイルNote

スタンドアロンデプロイツールを使用した AWS CloudFormation へのデプロイのサポートは終了しました。

次の設定パラメーターは、負荷分散のテンプレートから取得されます。

全般設定

キーと値 説明

DeploymentPackage = archive.zip ウェブデプロイアーカイブへの相対パスです。これは作業ディレクトリ (デプロイツールを呼び出すディレクトリ) への相対パスです。デプロイを更新する場合 (/updateStack スイッチ) は、このパラメーターは無視されます。

Region = us-east-1 ターゲットリージョンです。

Template = LoadBalanced Template の値は、SingleInstance、LoadBalanced、またはカスタム AWS CloudFormation テンプレートへのファイルパスを指定できます。詳細については、「デプロイに使用する AWS CloudFormation テンプレートをカスタマイズする (p. 55)」を参照してください。

UploadBucket = awsdeployment-us-east-1-samples デプロイマテリアルが保存される Amazon SimpleStorage Service (Amazon S3) バケットです。バケットが存在しない場合は、作成されます。デプロイウィザードを使用する場合は、自動的にバケット名を生成します。ウィザードを使用してデプロイを行い、再デプロイする場合には、このパラメーターは無視されます。デプロイツールは、ウィザードによる元のデプロイで使われたバケットを自動的に使用します。

KeyPair = default インスタンスにサインインするための AmazonElastic Compute Cloud (Amazon EC2) のキーペア

51

Page 56: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

キーと値 説明です。キーペアは、デプロイ前に存在している必要があります。(デプロイウィザードでは、デプロイ時にキーペアを作成することができます。)

AWSAccessKey =DEPLOYMENT_CREDENTIALS_HEREAWSSecretKey =DEPLOYMENT_CREDENTIALS_HERE

スタックの作成と、AWS CloudFormation へのアプリケーションのデプロイに使用する、AWS のアクセスキーとシークレットキーです。これらのパラメーターを使用して認証情報を指定することはお勧めしません。認証情報のプロファイルを作成して、AWSProfileName を使用してプロファイルを参照するようにします。詳細については、「認証情報」を参照してください。

AWSProfileName = {profile_name} スタックの作成と AWS CloudFormation へのアプリケーションのデプロイに使用するプロファイルです。

テンプレートパラメーター

以下のパラメーターに加えて、負荷分散のテンプレートでは、負荷分散と Auto Scaling の動作をカスタマイズするための、多くの他のパラメーターをサポートします。

キーと値 説明

Template.InstanceType = t1.micro 使用する Amazon EC2 インスタンスのタイプです。ここに示されているマイクロインスタンスは、最もコストが低いインスタンスのタイプです。

Template.SecurityGroup = default Amazon EC2 インスタンスのセキュリティグループです。セキュリティグループはすでに存在し、ポート 80 (HTTP) の受信が許可されている必要があります。セキュリティグループの作成方法については、「tkv-sg」を参照してください。

Environment.PARAM1 = Environment.PARAM2 =Environment.PARAM3 = Environment.PARAM4 =Environment.PARAM5 =

これらの値は、Web.config ファイルのappSettings 要素を通じて、デプロイされたアプリケーションで使用できるようになります。詳細については、MSDN ライブラリを参照してください。

Environment.AWSAccessKey= APP_CREDENTIALS_HEREEnvironment.AWSSecretKey =APP_CREDENTIALS_HERE

デプロイされたアプリケーションが AWS サービスにアクセスするために使用する、アクセスキーとシークレットキーです。これらのパラメーターを使用して認証情報を指定することはお勧めしません。認証情報のプロファイルを作成して、AWSProfileName を使用してプロファイルを参照するようにします。詳細については、「認証情報」を参照してください。

AWSProfileName = {profile_name} デプロイされたアプリケーションが AWS サービスにアクセスするために使用するプロファイルです。

52

Page 57: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

コンテナの設定

SolutionStack="64bit Windows Server 2008 R2 running IIS 7.5"

SolutionStack="64bit Windows Server 2012 running IIS 8"

キーと値 説明

SolutionStack="64bit Windows Server 2012 runningIIS 8"

デプロイ先の Windows Server とインターネットインフォメーションサービス (IIS) のバージョンを指定します。有効な値は、SolutionStack="64bitWindows Server 2008 R2 running IIS 7.5" または SolutionStack="64bit Windows Server 2012running IIS 8" です。指定されない場合のデフォルトは 64bit Windows Server 2012 running IIS 8.0 です。Container.Type を SolutionStack の別名として使用できます。

Container.TargetRuntime = 4.0 .NET Framework のターゲットランタイムを指定します。有効な値は 2.0 または 4.0 です。

次の .NET Framework のバージョンは、2.0 のターゲットランタイムにマッピングされます。

• .NET Framework 2.0• .NET Framework 3.0• .NET Framework 3.5

次の .NET Framework のバージョンは、4.0 のターゲットランタイムにマッピングされます。

• .NET Framework 4.0• .NET Framework 4.5

Toolkit for Visual Studio のデプロイウィザード (p. 36)では、.NET Framework のバージョンを指定できます。それによってウィザードが .NETFramework のバージョンを適切なターゲットランタイムのバージョンにマッピングします。

Container.Enable32BitApplications = false アプリケーションが 32 ビットである場合は trueを指定します。アプリケーションが 64 ビットである場合は false を指定します。

Container.ApplicationHealthcheckPath = / この URL はルートサーバー URL への相対 URLです。たとえば、完全な URL が example.com/site-is-up.html である場合は /site-is-up.html と入力します。

この設定は、負荷分散のテンプレートを使用する場合にのみ適用されます。これは、単一インスタンスのテンプレートを使用する場合には無視されます。この URL でのアプリケーションの応答性は、ロードバランサーと自動スケーラーによるアクションに影響します。アプリケーションが応答しない場合または応答が遅い場合は、ロードバランサーは着信するネットワークトラフィックを、

53

Page 58: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

キーと値 説明他の Amazon EC2 インスタンスへ送信し、自動スケーラーは追加の Amazon EC2 インスタンスを追加することがあります。

スタック作成の設定

キーと値 説明

Settings.SNSTopic メッセージのデプロイに使用する SNS トピックです。

Settings.CreationTimeout = 0 スタックの作成のために許可される時間です。値 0は、時間に制限がないことを意味します。

Settings.RollbackOnFailure = false この値が true の場合、デプロイが失敗するとデプロイツールはスタックを解放します。

既存のデプロイの設定を更新する方法デプロイツールの updateStack 機能を使用して、既存のデプロイの AWS CloudFormation の設定を変更できます。この設定 (アプリケーションの環境) には、アプリケーションが実行されるクラウドのリソースと、アクセスできるクラウドのリソースが含まれます。updateStack 機能によって、アプリケーションは変更または再デプロイされません。アプリケーションの環境のみが更新されます。このようにして、updateStack 機能は再デプロイ機能を補完します。再デプロイは、環境を変更せずに、アプリケーションを更新する方法を提供します。

updateStack はさまざまなシナリオで活用できます。たとえば、単一インスタンスのテンプレートを使用してアプリケーションを開発する場合、アプリケーションが本番稼働に近づくにつれて、アプリケーションの設定を更新して、パブリックベータテストまたはライブリリースデプロイとして、負荷分散のテンプレートを使用することができます。関連するシナリオでは、負荷分散の設定を使ったデプロイで、設定パラメーターのいくつかを変更して、最適化を行うことができます。たとえば、サポートする EC2 インスタンスの最大数を増やしたり、インスタンスのサイズをたとえばマイクロからラージに変えたりすることができます。デプロイツールの updateStack 機能を使って、これらのシナリオを実装することができます。

/updateStack オプションと /redeploy オプションの両方を使用して、アプリケーション自体とアプリケーションが実行される環境の両方を効果的に変更するシナリオがあります。場合によっては、このアプローチは通常のデプロイを実行するよりも効率的です。たとえば、環境を変更して Amazon S3 バケットを追加してから、アプリケーションを更新してそのバケットを使用することができます。/updateStackと /redeploy を組み合わせると、両方の変更を実装しながら、すでにプロビジョニングされた AmazonEC2 インスタンスは実行したままにしておくことができます。通常のデプロイでは、すべての環境が停止され、再ビルドされます。

updateStack 機能は、デプロイツールのみで使用できます。Visual Studio のデプロイウィザードでは使用できません。最初にデプロイウィザードを使ってデプロイされたデプロイを、updateStack を使って更新することはできますが、その逆はできません。

デプロイを更新するための呼び出し構文は、新しいデプロイの構文と似ています。

awsdeploy /updateStack [other options] updatedConfigFile

デプロイを更新する場合には、以下の点を常に考慮します。

54

Page 59: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

• 作成の途上または停止の途上のデプロイを更新することはできません。• 指定された設定ファイルは、StackName パラメーターに元のデプロイと同じ値を使用する必要があり

ます。• デプロイのリージョンを変更するために updateStack を使うことはできません。ただし、デプロイの

アベイラビリティーゾーンを変更することは可能です。• updateStack を使ってデプロイを単一インスタンスから負荷分散に移行する場合、デプロイのエンド

ポイントは必ず変更されます。単一インスタンスの場合、エンドポイントは Amazon EC2 インスタンスを表します。負荷分散テンプレートでは、エンドポイントは Elastic Load Balancing ロードバランサーを表します。これはコンピューティング負荷をすべての EC2 インスタンスに分散するコンピュータです。したがって、CNAME レコードを使用してドメイン名をデプロイに関連付けている場合、CNAMEレコードを更新して負荷調整テンプレートのロードバランサーを指すようにする必要があります。

デプロイツールは AWS CloudFormation の UpdateStack API を呼び出して、updateStack 機能を実装します。AWS CloudFormation の詳細については、『AWS CloudFormation ユーザーガイド』を参照してください。

デプロイに使用する AWS CloudFormation テンプレートをカスタマイズするデプロイウィザード、またはスタンドアロンのデプロイツールの設定ファイルで、パラメーターを指定してデプロイを変更することに加えて、独自のカスタム AWS CloudFormation テンプレートを提供して、デプロイを変更することができます。デフォルトでは、デプロイは Amazon Simple StorageService(Amazon S3) に保存された一連のテンプレートの 1 つを自動的に使用します。このデフォルトのテンプレートのセットには、各 AWS のリージョンごとに 2 つのテンプレートが含まれます。これら 2 つのうちの 1 つは、単一の Amazon Elastic Compute Cloud(Amazon EC2) インスタンスへのデプロイに使われ、もう 1 つは、負荷分散の Amazon EC2 インスタンスのセットへのデプロイに使われます。これらのテンプレートを基にして、独自のテンプレートを作成することができます。

独自のカスタムテンプレートを作成するには

1. デプロイを行うリージョンとデプロイのタイプに対応するテンプレートをコピーします。各テンプレートへのリンクを次に示します。

Note

以下のリージョンのテンプレートのみが用意されています。

米国東部(バージニア北部)

SingleInstance.template LoadBalanced.template

米国西部 (オレゴン)

SingleInstance-us-west-2.template LoadBalanced-us-west-2.template

米国西部 (北カリフォルニア)

SingleInstance-us-west-1.template LoadBalanced-us-west-1.template

欧州 (アイルランド)

55

Page 60: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

SingleInstance-eu-west-1.template LoadBalanced-eu-west-1.template

アジアパシフィック (シンガポール)

SingleInstance-ap-southeast-1.template LoadBalanced-ap-southeast-1.template

アジアパシフィック (東京)

SingleInstance-ap-northeast-1.template LoadBalanced-ap-northeast-1.template

アジアパシフィック (シドニー)

SingleInstance-ap-southeast-2.template LoadBalanced-ap-southeast-2.template

南米 (サンパウロ)

SingleInstance-sa-east-1.template LoadBalanced-sa-east-1.template

テンプレートへの独自のリンクを作成する必要がある場合は、各リンクの形式は次のようになります。

http://vstoolkit.amazonwebservices.com/CloudFormationTemplates/{template-name}

たとえば、米国西部 (北カリフォルニア) リージョンの単一インスタンスのテンプレートでは、リンクは次のようになります。

http://vstoolkit.amazonwebservices.com/CloudFormationTemplates/SingleInstance-us-west-1.template

テーブル内のリンクは、HTTP プロトコルを示しています。HTTPS プロトコルもサポートされています。

1. テンプレートを編集して、特定のニーズ用に変更します。テンプレートはテキストファイルであるため、標準のテキストエディタで編集することができます。テンプレートのデプロイ情報は JavaScriptObject Notation 形式で表されます。ファイルの編集後に、JSONLint などのツールを使用して、JSON形式を再検証することをお勧めします。

テンプレートファイルは 3 つのセクションで構成されています。Parameters、Resources、およびOutputs です。

デプロイにリソースを追加するには、テンプレートの Resources セクションに追加します。たとえば、Amazon RDS データベースや、Amazon SNS トピックを追加することができます。これらのリソースをデプロイ時に設定するには、テンプレートの Parameters セクションにパラメーターを追加します。テンプレートに新しいパラメーターを追加すると、AWS Toolkit はそれらをデプロイウィザードに表示されるパラメーターに追加します。デプロイウィザード、またはスタンドアロンのデプロイツールの設定ファイルで、これらのパラメーターの値を指定することができます。

同様に、テンプレートの Output セクションで指定したデータも、デプロイウィザードと AWS マネジメントコンソールに表示されます。Output セクションを使用して、リソースに関するデプロイ後の情

56

Page 61: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドスタンドアロンデプロイツール

報を表示することができます。たとえば、Amazon S3 バケットをテンプレートの Resources セクションに追加する場合は、Outputs セクションを使用して、自動生成されたバケットの名前を表示することができます。

AWS CloudFormation テンプレートの編集の詳細については、「CloudFormation ユーザーガイド」を参照してください。

2. デプロイ設定ファイルの Template パラメーターを、カスタマイズしたテンプレートへのパスに設定します。Template パラメーターは、設定ファイルの General Settings の下にあります。指定するパスは、ローカルのハードドライブ上のファイルへのパス、またはリモートサーバー上の設定ファイルの場所を指す URL とすることができます。次にデプロイを実行すると、ツールはテンプレートを使用します。

テンプレートファイルで必要なデータ

デプロイプロセスでは、テンプレートファイルに特定のデータが指定されている必要があります。独自のテンプレートを編集する場合は、それらのデータを引き続き指定する必要があります。必要なデータは、テンプレートの Parameters および Outputs セクションのみに配置されています。

テンプレートの Parameters セクションテンプレートの Parameters セクションで必要なパラメーターを、次の表に示します。

名前 意味

InstanceType デプロイに使用する、Amazon EC2 インスタンスのタイプの "API 名" です。たとえば、マイクロインスタンスには t1.micro、エクストララージインスタンスには m1.xlarge です。インスタンスタイプと、対応する API 名のリストについては、AmazonEC2 の詳細ページを参照してください。

KeyPair Amazon EC2 インスタンスに使用するキーペアを指定します。

セキュリティグループ Amazon EC2 インスタンスで使用するセキュリティグループを指定します。

BucketName デプロイファイルがアップロードされる AmazonS3 バケットを指定します。

ConfigFile デプロイが使用する設定ファイルの名前です。

AmazonMachineImage デプロイに使用される Amazon Machine Image(AMI) です。カスタム AMI の作り方の詳細については、「Using Custom AMIs」(『Elastic Beanstalk開発者ガイド』) および「Create an AMI from anAmazon EC2 Instance (p. 15)」を参照してください。CloudFormation デプロイで使用される AMIにインストールされるホストマネージャーソフトウェアは、自動更新されるようになりました。したがって、CloudFormation の AMI の 1 つからカスタム AMI を作成する場合、Host Manager ソフトウェアを維持する必要はありません。ただし、オペレーティングシステムとアプリケーションソフトウェアは最新に維持する必要があります。

UserData デプロイで、デプロイされたアプリケーションに提供するユーザーデータです。

57

Page 62: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS CloudFormation TemplateEditor for Visual Studio の使用

テンプレートの Outputs セクション

テンプレートの Outputs セクションで必要な出力を、次の表に示します。

名前 意味

バケット デプロイファイルがアップロードされた AmazonS3 バケットを指定します。

ConfigFile デプロイで使用された設定ファイルの名前です。

VSToolkitDeployed true に設定されたブーリアン型フラグです。このスタックが AWS Toolkit for Visual Studio からのデプロイの一部として作成されたことを示します。スタンドアロンのデプロイツールでデプロイされた場合も、このフラグは true に設定されます。

URL デプロイされたアプリケーションの URL です。

AWS CloudFormation Template Editor for VisualStudio の使用

Toolkit for Visual Studio には、Visual Studio 用の AWS CloudFormation テンプレートエディタと AWSCloudFormation テンプレートプロジェクトが含まれています。以下の機能がサポートされています。

• 提供された AWS CloudFormation テンプレートプロジェクトのタイプを使った、新しいテンプレートの作成 (空または既存のスタックまたはサンプルテンプレートからコピーする)。

• 自動 JSON 検証、オートコンプリート、コードの折りたたみ、構文の強調表示を使った、テンプレートの編集。

• テンプレートでの、組み込み関数の自動候補およびフィールド値のリソース参照パラメーターの自動候補。

• Visual Studio のテンプレートの一般的なアクションを実行するためのメニュー項目: テンプレートのデプロイ、テンプレートのコストの見積もり、テンプレートのフォーマット。

トピック• Visual Studio で AWS CloudFormation テンプレートプロジェクトを作成する (p. 58)• Visual Studio での AWS CloudFormation テンプレートのデプロイ (p. 59)• Visual Studio の AWS CloudFormation Template Project のコストの見積もり (p. 59)• Visual Studio での AWS CloudFormation テンプレートのフォーマット (p. 60)

Visual Studio で AWS CloudFormation テンプレートプロジェクトを作成するテンプレートプロジェクトを作成するには

1. Visual Studio で [File]、[New] の順に選択し、[Project] を選択します。2. [New Project] ダイアログボックスで、[Installed]、[AWS]、[AWS Cloud Formation Project] の順に選択

します。

58

Page 63: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドVisual Studio での AWS CloudFormation

テンプレートのデプロイ

3. [Name] で、テンプレートプロジェクトの名前を入力します。4. [Select Project Source] ページで、作成するテンプレートのソースを選択します。

• [Create with empty template] では、新しい空の AWS CloudFormation テンプレートが生成されます。• [Create from existing AWS |CFN| stack] では、AWS アカウントの既存のスタックからテンプレートが

生成されます。(スタックのステータスは CREATE_COMPLETE である必要はありません。)• [Select sample template] では、AWS CloudFormation サンプルテンプレートの 1 つからテンプレート

を生成します。5. AWS CloudFormation テンプレートプロジェクトの作成を完了するには、[Finish] を選択します。

Visual Studio での AWS CloudFormation テンプレートのデプロイCFN テンプレートをデプロイするには

1. Solution Explorer でデプロイしたいテンプレートのコンテキスト (右クリック) メニューを開き、[Deploy to AWS CloudFormation] を選択します。

また、現在編集中のテンプレートをデプロイするには、編集中の [Template] メニューで、[Deploy toAWS CloudFormation] を選択します。

2. [Deploy Template] ページで、スタック起動に使用する AWS アカウントと起動するリージョンを選択します。

3. [Create New Stack] を選択してスタックの名前を入力します。4. 以下のオプションのいずれかを選択します(いずれも選択しない場合もあります)。

• スタックの進行状況についての通知を受信するには、[SNS Topic] ドロップダウンリストで SNS トピックを選択します。[Create New Topic] を選択し、ボックスに E メールアドレスを入力することで、SNS トピックを作成することもできます。

• [Creation Timeout] を使用して、スタックの作成を失敗と AWS CloudFormation 判断するまでの時間(および、[Rollback on failure] オプションの選択が外れていない場合はロールバックされるまでの時間) を指定できます。

• 失敗した際にスタックをロールバック (つまり削除) する場合は、[Rollback on failure] を使用します。デバッグ目的で、起動に失敗したスタックをアクティブのままにする場合は、このチェックボックスをオフのままにします。

5. [Finish] をクリックして、スタックを起動します。

Visual Studio の AWS CloudFormation TemplateProject のコストの見積もりToolkit for Visual Studio を使用すると、取り組み中の AWS CloudFormation スタックのコストをデプロイ前に簡単に見積もれます。これにより、テンプレートに含まれるリソースの毎月の運用コストを掴むことができます。

CFN スタックのコストを見積もるには

1. Solution Explorer でテンプレートのコンテキスト (右クリック) メニューを開いて、[Estimate Cost] を選択します。

また、現在編集中のテンプレートのコストを見積もるには、編集中の [Template] メニューで、[Estimate Cost] を選択します。

2. スタックに対して定義したパラメータの値を指定して、[Finish] を選択します。

59

Page 64: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドVisual Studio での AWS CloudFormation

テンプレートのフォーマット

3. AWS 簡易見積りツールが表示されます。フォームデータには、編集中のテンプレートから取得したデータが表示されます。必要に応じて値を調整できます。

[Estimate of Your Monthly Bill] タブには、スタックの実行に要する 1 ヶ月間の見積もりコストが項目別に表示されます。

Note

見積もりコストは、ユーザーが提供した値と AWS のサービスの現在のレートを用いて計算されます。この値は時間の経過に伴い変化します。詳細については、ホワイトペーパー『AWS 料金体系の仕組み』を参照してください。

Visual Studio での AWS CloudFormation テンプレートのフォーマット• Solution Explorer でテンプレートのコンテキスト (右クリック) メニューを開いて、[Format Template] を

選択します。

また、現在編集中のテンプレートをフォーマットするには、編集中の [Template] メニューで、[FormatTemplate] を選択します。

ユーザーの JSON コードがフォーマットされ、構造が明確に表示されます。

AWS Explorer で Amazon S3 を使用するAmazon Simple Storage Service(Amazon S3) を使用すると、インターネット接続を使って、データの保存と取得を行うことができます。Amazon S3 に保存したすべてのデータは、デフォルトではアカウントに関連付けられ、自分のみがアクセスできます。Toolkit for Visual Studio を使用すると、Amazon S3 にデータを保存して、そのデータを表示、管理、取得、配布することができます。

Amazon S3 では、バケットの概念を使用しており、これはファイルシステムまたは論理ドライブに類似したものと考えることができます。バケットにはフォルダとオブジェクトを含めることができます。フォルダはディレクトリに類似しています。オブジェクトはファイルに類似しています。このセクションでは、これらの概念を使用して、Toolkit for Visual Studio によって公開されている Amazon S3 の機能を紹介します。

Note

このツールを使用するには、IAM ポリシーで s3:GetBucketAcl, s3:GetBucket およびs3:ListBucket のアクションに対するアクセス権限を付与する必要があります。詳細については、「AWS IAM ポリシーの概要」を参照してください。

Amazon S3 バケットを作成するバケットは Amazon S3 で最も基本的なストレージの単位です。

S3 バケットを作成するには

1. AWS Explorer で [Amazon S3] ノードのコンテキスト (右クリック) メニューを開いて、[Create Bucket]を選択します。

2. [Create Bucket] ダイアログで、バケットの名前を入力します。バケット名は、AWS で一意である必要があります。その他の制約については、Amazon S3 ドキュメントを参照してください。

3. [OK] を選択します。

60

Page 65: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Explorer で Amazon S3 バケットを管理する

AWS Explorer で Amazon S3 バケットを管理するAWS Explorer では、Amazon S3 バケットでコンテキスト (右クリック) メニューを開くと、次の操作を実行できます。

参照

バケットに含まれるオブジェクトのビューを表示します。ここでは、フォルダを作成したり、ローカルコンピュータからファイルまたはディレクトリ全体とフォルダをアップロードすることができます。下のペインには、アップロードプロセスについてのステータスメッセージが表示されます。これらのメッセージをクリアするには、[Clear] アイコンを選択します。AWS Explorer でバケット名をダブルクリックして、このバケットのビューにアクセスすることもできます。

プロパティ

ダイアログボックスが表示されます。ここでは、次のことを実行できます。

• Amazon S3 のアクセス権限を次の範囲に設定します。• バケット所有者。• AWS 上で認証されたすべてのユーザー。• インターネットにアクセスできるすべてのユーザー。

• バケットのログ記録を有効にします。• Amazon Simple Notification Service(Amazon SNS) を使用して通知をセットアップして、低冗長化ス

トレージ (RRS) を使用している場合に、データ損失が発生したときに通知されるようにします。RRSは、標準のストレージよりも耐久性とコストが低い、Amazon S3 のストレージオプションです。詳細については、「S3 のよくある質問」を参照してください。

• バケットのデータを使用して静的ウェブサイトを作成します。

ポリシー

バケットの AWS Identity and Access Management(IAM) ポリシーを設定できます。詳細については、IAMドキュメントを参照して、IAM および S3 のユースケースを使用してください。

署名付き URL の作成

バケットのコンテンツへのアクセスを提供するために配布できる、時間制限のある URL を生成します。詳細については、「署名付き URL の作成方法 (p. 63)」を参照してください。

マルチパートアップロードの表示

マルチパートアップロードを表示します。Amazon S3 は、大きなオブジェクトをいくつかに分割してアップロードして、アップロードのプロセスを効率的にすることができます。詳細については、S3 ドキュメントのマルチパートアップロードの説明を参照してください。

削除

バケットを削除します。空のバケットのみを削除できます。

ファイルとフォルダを Amazon S3 にアップロードするAWS Explorer を使用して、ローカルコンピュータのファイルまたはフォルダ全体を、いずれかのバケットに転送することができます。

61

Page 66: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Toolkit for Visual Studio からの Amazon S3 ファイルの操作

Note

Amazon S3 バケットにすでに存在するファイルまたはフォルダと同じ名前を持つファイルまたはフォルダをアップロードすると、アップロードされたファイルは既存のファイルを警告なしに上書きします。

S3 にファイルをアップロードするには

1. AWS Explorer で、[Amazon S3] ノードを展開し、バケットをダブルクリックするか、またはバケットのコンテキスト (右クリック) メニューを開き、[Browse] を選択します。

2. バケットの [Browse] ビューで、[Upload File] または [Upload Folder] を選択します。3. [File-Open] ダイアログボックスで、アップロードするファイルに移動して、それを選択し、[Open] を

選択します。フォルダをアップロードする場合は、そのフォルダに移動して選択し、[Open] を選択します。

[Upload Settings] ダイアログボックスを使用すると、アップロードするファイルやフォルダに、メタデータとアクセス権限を設定できます。[Make everything public] チェックボックスを選択すると、[Everyone] に [Open/Download] のアクセス権限を設定することと同じになります。アップロードされたファイルに低冗長化ストレージを使用するオプションを選択することができます。

AWS Toolkit for Visual Studio からの Amazon S3 ファイルの操作Amazon S3 ビューでファイルを選択して、コンテキスト (右クリック) メニューを開くと、ファイルにさまざまな操作を実行できます。

フォルダを作成する

現在のバケット内にフォルダを作成することができます。([Create Folder] のリンクを選択した場合と同じです。)

アップロード

ファイルまたはフォルダをアップロードすることができます。([Upload File] または [Upload Folder] のリンクを選択した場合と同じです。)

オープン

選択したファイルをデフォルトのブラウザで開きます。ファイルの種類とデフォルトのブラウザの機能によっては、ファイルが表示されない場合があります。ブラウザによってダウンロードが行われる場合もあります。

ダウンロード

[Folder-Tree] ダイアログボックスが開き、選択したファイルをダウンロードできます。

公開する

選択したファイルで [Everyone] に [Open/Download] のアクセス許可を設定します。([Upload Settings] のダイアログボックスで [Make everything public] のチェックボックスを選択するのと同じです。)

削除

選択されたファイルまたはフォルダを削除します。ファイルまたはフォルダを選択し、Delete を押して削除することもできます。

ストレージクラスの変更

62

Page 67: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Explorer で DynamoDB を使用する

ストレージクラスをスタンダードまたは低冗長化ストレージ (RRS) に設定します。現在のストレージクラスの設定を表示するには、[Properties] を選択します。

暗号化の変更

ファイルのサーバー側の暗号化を設定できます。現在の暗号化の設定を表示するには、[Properties] を選択します。

名前の変更

ファイルの名前を変更することができます。フォルダ名を変更することはできません。

切り取り | コピー | 貼り付け

フォルダ間またはバケット間で、ファイルまたはフォルダの切り取り、コピー、貼り付けを行うことができます。

プロパティ

表示されるダイアログボックスを使って、ファイルにメタデータとアクセス権限を設定できます。ファイルのストレージを低冗長化ストレージ (RRS) またはスタンダードに切り替えることができます。ファイルにサーバー側の暗号化を設定できます。このダイアログボックスには、ファイルへの https リンクも表示されます。このリンクを選択すると、Toolkit for Visual Studio はデフォルトのブラウザでファイルを開きます。ファイルで [Everyone] に [Open/Download] のアクセス許可を設定すると、このリンクを使って他のユーザーがファイルにアクセスできます。このリンクを配布するのではなく、署名付き URL を作成して配布することをお勧めします。

署名付き URL の作成

Amazon S3 に保存されているコンテンツに他のユーザーがアクセスできるように配布する、時間制限のある署名付き URL を作成します。

署名付き URL の作成方法バケットまたはバケット内のファイルに署名付き URL を作成できます。他のユーザーはこの URL を使用して、バケットまたはファイルにアクセスできます。この URL は、URL の作成時に指定した有効期限になると、失効します。

署名付き URL を作成するには

1. [Create Pre-Signed URL] ダイアログボックスで、URL の有効期限の日時を設定します。デフォルト設定では、現在の時間から 1 時間後に設定されます。

2. [Generate] ボタンを選択します。3. URL をクリップボードにコピーするには、[Copy] を選択します。

AWS Explorer で DynamoDB を使用するAmazon DynamoDB は、拡張性と可用性に優れた、費用効果の高い、高速な非リレーショナルデータベースサービスです。DynamoDB により、データストレージに対して低いレイテンシーと予測可能なパフォーマンスを維持しながら、従来の拡張性の限界を超えられます。Toolkit for Visual Studio には、開発で DynamoDB と連携する機能が用意されています。DynamoDB の詳細については、AWS ウェブサイトでDynamoDB のページを参照してください。

Toolkit for Visual Studio の AWS Explorer では、アクティブな AWS アカウントに関連付けられているすべての DynamoDB テーブルが表示されます。

DynamoDB テーブルを作成するToolkit for Visual Studio を使用して DynamoDB テーブルを作成できます。

63

Page 68: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドDynamoDB テーブルをグリッドとして表示する

AWS Explorer でテーブルを作成するには

1. AWS Explorer で、[Amazon DynamoDB] のコンテキスト (右クリック) メニューを開いて、[CreateTable] を選択します。

2. [Create Table] ウィザードで、[Table Name] に、テーブルの名前を入力します。3. [Hash Key Name] フィールドにプライマリハッシュキー属性を入力し、[Hash Key Type] ボタンでハッ

シュキータイプを選択します。DynamoDB によって、プライマリキー属性を使用するハッシュインデックス (ソートなし) が生成され、必要に応じて、レンジプライマリキー属性を使用するレンジインデックス (ソートあり) が生成されます。プライマリハッシュキー属性の詳細については、『AmazonDynamoDB Developer Guide』の「プライマリキー」を参照してください。

4. (オプション) [Enable Range Key] をクリックします。[Range Key Name] フィールドにレンジキー属性を入力し、[Range Key Type] ボタンでレンジキータイプを選択します。

5. [Read Capacity] フィールドで、読み込みキャパシティーユニットの数を入力します。[Write Capacity]フィールドで、書き込みキャパシティーユニットの数を入力します。読み込みキャパシティーユニット数として 3 以上、書き込みキャパシティーユニット数として 5 以上の値を指定する必要があります。読み込みおよび書き込みキャパシティーユニットに関する情報は、『Amazon DynamoDB 開発者ガイド』の「プロビジョニングされたスループット」を参照してください。

6. (オプション) [Enable Basic Alarm] をクリックすると、テーブルのリクエスト率が高すぎるときに警告を発します。プロビジョニングされたスループットの割合 (60 分ごと) のしきい値を選択します。この値を超えるとアラートが送信されます。[Send Notifications To] に Eメールアドレスを入力します。

7. [OK] をクリックすると、テーブルが作成されます。

DynamoDB テーブルの詳細については、「データモデルのコンセプト - テーブル、項目、属性」を参照してください。

DynamoDB テーブルをグリッドとして表示するいずれかの DynamoDB テーブルのグリッドビューを開くには、AWS Explorer でテーブルに対応するサブノードをダブルクリックします。グリッドビューで、テーブルに格納されている項目、属性、値を表示できます。各行は、テーブル内の項目に対応しています。各列は、テーブル内の属性に対応しています。グリッドビューの各セルには、その項目のその属性に関連付けられている値が表示されます。

属性の値は、文字列または数字です。文字列または数字のセットになる場合もあります。セット値は、角かっこで囲まれたカンマ区切りのリストとして表示されます。

属性と値を編集および追加するセルをダブルクリックすることで、項目の対応する属性の値を編集できます。セット値の属性の場合は、セットの個々の値を追加したり削除したりできます。

属性の値を変更するだけでなく、一部制限はありますが、属性の値の形式も変更できます。たとえば、任意の数値を文字列値に変換できます。文字列値があり、その内容が「125」などの数字である場合は、セルエディタにより値の形式を文字列から数字に変換できます。また、単一の値をセット値に変換できます。ただし一般的に、セット値から 1 つの値に変換することはできません。その例外として、セット値の値が実際は 1 つしかない場合は 1 つの値に変換できます。

属性値の編集後、変更を確定するには、緑のチェックマークを選択します。変更を破棄する場合は、赤の[X] をクリックします。

変更の確定後、属性値は赤で表示されます。これは、属性は更新されたが新しい値が DynamoDB データベースにまだ書き戻されていないことを示します。DynamoDB に変更を書き戻すには、[CommitChanges] をクリックします。変更を破棄するには、[Scan Table] をクリックし、スキャン前に変更をコミットするかどうか Toolkit によって尋ねられたら、[No] をクリックします。

属性の追加

64

Page 69: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドDynamoDB テーブルのスキャンを実行する

グリッドビューで、テーブルに属性を追加することもできます。新しい属性を追加するには、[AddAttribute] を選択します。

[Add Attribute] ダイアログボックスに使用する属性の名前を入力して、[OK] をクリックします。

新しい属性をテーブルの一部にするには、少なくとも 1 つの項目に値を追加し、[Commit Changes] ボタンをクリックします。新しい属性を破棄するには、[Commit Changes] を選択せずにテーブルのグリッドビューを閉じるだけです。

DynamoDB テーブルのスキャンを実行するToolkit から、DynamoDB テーブルのスキャンを実行できます。スキャンでは、定義した一連の条件に一致したテーブルの項目がすべて返されます。スキャンはワークロードの高いオペレーションであるため、テーブルに対する優先度の高い本稼働トラフィックが中断されないように、注意して使用する必要があります。スキャンオペレーションの使用の詳細については、『Amazon DynamoDB Developer Guide』を参照してください。

AWS Explorer から DynamoDB テーブルのスキャンを実行するには

1. グリッドビューで、[Scan Conditions: Add] ボタンをクリックします。2. スキャン句のエディタで、一致条件の対象属性、属性値の解釈方法 (文字列、数値、セット値)、一致の

方法 ([Begins With]、[Contains] など)、一致すべきリテラル値を選択します。3. 検索での必要に応じてスキャン句を追加します。スキャンによってすべてのスキャン句の条件に一致す

る項目のみが返されます。スキャンでは、文字列値に対する一致を調べるときに大文字と小文字が区別されます。

4. グリッドビューの上部にあるボタンバーで、[Scan Table] を選択します。

スキャン句を削除するには、各フレーズの右側にある赤色のボタン (-) を選択します。

すべての項目が表示されたテーブルのビューに戻るには、すべてのスキャン句を削除し、[Scan Table] を再度選択します。

スキャン結果をページ分割する

ビューの下部には 3 つのボタンがあります。

最初の 2 つの青色のボタンをクリックすると、スキャン結果がページ分割されます。最初のボタンでは結果の次のページが表示されます。2 番目のボタンでは、結果の 10 ページ先が表示されます。この場合、1ページは 1 MB に相当します。

スキャン結果を CSV にエクスポートする

3 番目のボタンをクリックすると、現在のスキャンの結果が CSV ファイルにエクスポートされます。

AWS CodeCommit と Visual Studio Team Explorerを使用する

Team Explorer 内で、AWS Identity and Access Management (IAM) ユーザーアカウントを使って、Git 認証情報を作成し、それを使ってリポジトリの作成とクローンの作成を行うことができます。

AWS CodeCommit の認証情報の種類AWS Toolkit for Visual Studio のユーザーのほとんどは、アクセスキーとシークレットキーを含む AWS 認証情報プロファイルの設定を認識しています。これらの認証情報プロファイルは Toolkit for Visual Studio

65

Page 70: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS CodeCommit に接続する

でサービス API を呼び出すために使用されます。たとえば、Amazon S3 バケットを AWS Explorer で一覧表示したり、Amazon EC2 インスタンスを起動したりできます。AWS CodeCommit と Team Explorer の統合も、これらの認証情報プロファイルを使用します。ただし、Git 自体を使用するには、追加の認証情報が必要となります。具体的には、HTTPS 接続のための Git 認証情報が必要となります。これらの認証情報 (ユーザー名とパスワード) については、AWS CodeCommit ユーザーガイドの「Git 認証情報を使用するHTTPS ユーザー用のセットアップ」を参照してください。

AWS CodeCommit の Git 認証情報は、IAM ユーザーアカウントにのみに作成できます。ルートアカウントに作成することはできません。サービスに対してこれらの認証情報のセットを 2 つまで作成できます。認証情報のセットを非アクティブとしてマークすることができますが、非アクティブなセットは引き続き 2 セットの制限にカウントされます。認証情報はいつでも削除と再作成を行うことができます。AWSCodeCommit を Visual Studio 内から使用する場合 (たとえば、リポジトリの作成や一覧表示を行う場合など) は、従来の AWS 認証情報を使ってサービス自体を使用します。AWS CodeCommit でホストされている実際の Git リポジトリを使用する場合は、Git の認証情報を使用します。

AWS CodeCommit のサポートの一部として、Toolkit for Visual Studio によって、これらの Git 認証情報は自動的に作成されて管理され、AWS 認証情報プロファイルに関連付けられます。Team Explorer 内でGit 操作を実行するために適切な認証情報のセットが設定されているかどうかを心配する必要はありません。AWS 認証情報プロファイルを使用して Team Explorer に接続すると、Git remote を使用している場合は常に関連付けられている Git 認証情報が自動的に使用されます。

AWS CodeCommit に接続するVisual Studio 2015 以降で Team Explorer ウィンドウを開くと、[Manage Connections] の [Hosted ServiceProviders] セクションに AWS CodeCommit エントリが表示されます。

[Sign up] を選択すると、ブラウザウィンドウで AWS ホームページが開きます。[Connect] を選択すると、AWS アクセスのために Toolkit for Visual Studio で使用できる認証情報があるかどうか、また AWS への呼び出しに使用できるシークレットキーがあるかどうか、によって動作が異なります。Toolkit for VisualStudio でローカルに保存された認証情報が見つからない場合には、IDE に表示される新しい [ご利用開始にあたって] のページを使って認証情報プロファイルが設定されている場合もあります。または Toolkit forVisual Studio、AWS Tools for Windows PowerShell、AWS CLI を使用したことがあり、Toolkit for VisualStudio で使用できる AWS 認証情報プロファイルが、すでにある場合もあります。

[Connect] を選択すると、Toolkit for Visual Studio は接続で使用する認証情報プロファイルの検索を始めます。Toolkit for Visual Studio で認証情報プロファイルが見つからない場合は、ダイアログボックスが表示され、そこで AWS アカウントのアクセスキーとシークレットキーを入力できます。ルート認証情報ではなく、IAM ユーザーアカウントを使用することをお勧めします。また、前に説明したように、最終的に必要となる Git 認証情報は IAM ユーザーにのみ作成できます。アクセスキーとシークレットキーが用意され、認証情報プロファイルが作成されると、Team Explorer と AWS CodeCommit の間の接続を使用できるようになります。

Toolkit for Visual Studio で複数の AWS 認証情報プロファイルが見つかった場合には、Team Explorer で使用するアカウントを選択するように求められます。

66

Page 71: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドリポジトリの作成

認証情報プロファイルが 1 つのみの場合は、プロファイル選択のダイアログボックスは表示されずに、直ちに接続されます。

認証情報プロファイルを使って Team Explorer と AWS CodeCommit 間で接続が確立されると、ダイアログボックスは閉じられて、接続パネルが表示されます。

ローカルにクローンが作成されたリポジトリがないため、パネルには実行可能な操作として [Clone]、[Create]、[Sign out] のみが表示されます。他のプロバイダーと同様に、Team Explorer の AWSCodeCommit は一時点で 1 つの AWS 認証情報プロファイルのみにバインドできます。アカウントを切り替えるには、[Sign out] を使って接続を削除し、別のアカウントを使って新しい接続を開始します。

接続を確立できたら、[Create] リンクをクリックして、リポジトリを作成することができます。

リポジトリの作成[Create] リンクをクリックすると、[Create a New AWS CodeCommit Repository] ダイアログボックスが開きます。

67

Page 72: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドGit 認証情報を設定する

AWS CodeCommit リポジトリはリージョンごとに整理されており、リポジトリをホストするリージョンを [Region] で選択できます。リストには、AWS CodeCommit をサポートしているすべてのリージョンが表示されます。新しいリポジトリの名前 (必須) と説明 (オプション) を入力します。

ダイアログボックスのデフォルトの動作では、新しいリポジトリのフォルダの場所にリポジトリの名前のサフィックスを追加します (名前を入力すると、フォルダの場所も更新されます)。別のフォルダ名を使用するには、リポジトリの名前の入力の終了後に [Clone into] のフォルダのパスを編集します。

リポジトリに .gitignore の初期ファイルを自動的に作成することを選ぶこともできます。AWS Toolkitfor Visual Studio は、Visual Studio のファイルの種類の組み込みのデフォルトを提供します。ファイルを使用しないか、または既存のカスタムのファイルの使用を選択して複数のリポジトリにわたって再利用することもできます。それには、リストで [Use custom] を選択し、使用するカスタムファイルに移動します。

リポジトリ名と場所が用意できたら、[OK] をクリックして、リポジトリの作成を開始します。Toolkit forVisual Studio はリポジトリの作成をサービスにリクエストし、新しいリポジトリのクローンをローカルに作成します。.gitignore ファイルを使用している場合には、初期のコミットを追加します。この時点で、Git remote を使用できるようになります。Toolkit for Visual Studio では、前に説明した Git 認証情報へのアクセスが必要となります。

Git 認証情報を設定するここまでは、AWS のアクセスキーとシークレットキーを使って、リポジトリの作成をサービスにリクエストしました。次に Git 自体を使って実際のクローンの操作を行う必要がありますが、Git は AWS のアクセスキーとシークレットキーを理解しません。代わりに、Git にユーザー名とパスワードの認証情報を指定する必要があります。Git はリモートでこれを HTTPS 接続に使用します。

「Git 認証情報を設定する (p. 68)」に記載されているように、使用する Git 認証情報は IAM ユーザーに関連付けられている必要があります。ルート認証情報に生成することはできません。AWS 認証情報プロファイルは常に、ルートキーでなく、IAM ユーザーのアクセスキーとシークレットキーを含むように設定する必要があります。Toolkit for Visual Studio は AWS CodeCommit の Git 認証情報の設定を行い、それを以前に Team Explorer で接続に使用した AWS 認証情報プロファイルに関連付けることができます。

[Create a New AWS CodeCommit Repository] ダイアログボックスで [OK] を選択し、リポジトリが正常に作成された場合、Toolkit for Visual Studio は Team Explorer で接続された AWS 認証情報プロファイルをチェックして、AWS CodeCommit の Git 認証情報が存在し、ローカルでプロファイルに関連付けられてい

68

Page 73: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドGit 認証情報を設定する

るかどうかを確認します。確認された場合、Toolkit for Visual Studio は Team Explorer に新しいリポジトリでクローン操作を開始するように指示します。Git 認証情報がローカルで使用できない場合、Toolkit forVisual Studio は Team Explorer の接続で使用されたアカウントの認証情報の種類を確認します。認証情報が推奨されたように IAM ユーザーのものである場合、次のメッセージが表示されます。

認証情報がルート認証情報の場合には、次のメッセージが表示されます。

どちらの場合も、Toolkit for Visual Studio は必要な Git 認証情報を作成しようとします。最初のシナリオでは、作成する必要があるのは、IAM ユーザー用の Git 認証情報です。ルートアカウントが使用されている場合は、Toolkit for Visual Studio はまず IAM ユーザーの作成を試みて、次に新しいユーザーの Git 認証情報の作成に進みます。Toolkit for Visual Studio が新しいユーザーを作成する必要がある場合、AWSCodeCommit パワーユーザー管理ポリシーをその新規ユーザーアカウントに適用します。このポリシーでは、アクセスを AWS CodeCommit のみに許可します。リポジトリの削除以外のすべての操作を AWSCodeCommit を使って実行できるようにします。

認証情報を作成する際には、それを 1 回のみ表示できます。そのため、続行する前に、新たに作成した認証情報を .csv ファイルとして保存するように、Toolkit for Visual Studio に求められます。

69

Page 74: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドGit 認証情報を設定する

必ず安全な場所に保存しておくことを、強くお勧めします。

Toolkit for Visual Studio が自動的に認証情報を作成できない場合があります。たとえば、AWSCodeCommit で Git 認証情報のセットの最大数 (2) をすでに作成している場合や、Toolkit for Visual Studioがプログラムによって認証情報を作成するために十分な権限がない場合 (IAM ユーザーとしてサインインしている場合) などがあります。このような場合は、AWS マネジメントコンソールにログインして認証情報を管理するか、または管理者から認証情報を取得します。Toolkit for Visual Studio で表示される [GitCredentials for AWS CodeCommit] ダイアログボックスで、それを入力できます。

Git 認証情報が利用可能になったので、新しいリポジトリのクローン操作が進行します (Team Explorer 内の操作の進行状態の表示を確認してください)。デフォルトの .gitignore ファイルの適用を選択した場合、「Initial Commit」のコメントでリポジトリにコミットされます。

以上で Team Explorer 内で認証情報を設定し、リポジトリを作成できました。必要な認証情報が設定されたので、今後新しいリポジトリを作成する場合には、[Create a New AWS CodeCommit Repository] ダイアログボックス自体のみが表示されます。

70

Page 75: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドリポジトリのクローンを作成する

リポジトリのクローンを作成する既存のリポジトリのクローンを作成するには、Team Explorer の AWS CodeCommit の接続パネルに戻ります。[Clone] リンクをクリックして、[Clone AWS CodeCommit Repository] ダイアログボックスを開き、クローンを作成するリポジトリと、配置するディスク上の場所を選択します。

リージョンを選択すると、Toolkit for Visual Studio はサービスのクエリを行って、リージョンで使用できるリポジトリを検出し、それをダイアログボックスの中央のリストに表示します。各リポジトリの名前と説明 (オプション) も表示されます。リポジトリ名または最終更新日で、昇順または降順に、リストの順序をソートすることができます。

リポジトリを選択すると、クローンを作成する場所を選択できます。Team Explorer の他のプラグインで使用されたものと同じ場所がデフォルトとなりますが、他の場所を参照するか、または入力することもできます。デフォルトでは、リポジトリ名が、選択されたパスにサフィックスとして追加されます。ただし、特定のパスを指定する場合には、フォルダを選択した後にテキストボックスを編集します。[OK] をクリックしたときにボックスに含まれるテキストを使ったフォルダに、リポジトリのクローンが作成されます。

リポジトリとフォルダの場所を選択したら、[OK] をクリックして、クローン操作を続行します。リポジトリの作成と同様に、クローン操作の進行状況も Team Explorer に表示されます。

リポジトリを操作するリポジトリのクローンまたはリポジトリを作成する場合、接続のためのローカルリポジトリは、TeamExplorer の操作のリンクの下の接続パネルに一覧表示されます。これらのエントリを使うと、リポジトリにアクセスしてコンテンツを参照するのに便利です。リポジトリを右クリックして、[Browse in Console]を選択します。

71

Page 76: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Explorer で Amazon RDS を使用する

[Update Git Credentials] を使って、認証情報プロファイルに関連付けられて保存された Git 認証情報を更新することもできます。これは、認証情報をローテーションする場合に役立ちます。このコマンドを使用すると、[Git Credentials for AWS CodeCommit] ダイアログボックスが開きます。ここで、新しい認証情報を入力またはインポートすることができます。

リポジトリ上での Git 操作は、期待どおりに機能します。ローカルコミットを行うことができ、共有する準備ができたら、Team Explorer で [Sync] オプションを使用します。Git 認証情報はすでにローカルに保存され、接続された AWS 認証情報プロファイルに関連付けられているため、AWS CodeCommit リモートに対する操作のために、再度入力を求められることはありません。

AWS Explorer で Amazon RDS を使用するAmazon Relational Database Service(Amazon RDS) は、クラウドでの SQL リレーショナルデータベースシステムのプロビジョニングと管理を行うサービスです。Amazon RDS は、3 つの種類のデータベースシステムをサポートします。

• MySQL Community Edition• Oracle Database Enterprise Edition• Microsoft SQL Server (Express Edition、Standard Edition、または Web Edition)

詳細は、『Amazon RDS ユーザーガイド』をご覧ください。

ここで説明されている機能の多くは、Amazon RDS の AWS マネジメントコンソールでも利用できます。

トピック• Amazon RDS データベースインスタンスの起動 (p. 72)• RDS インスタンスでの Microsoft SQL Server データベースの作成 (p. 75)• Amazon RDS セキュリティグループ (p. 75)

Amazon RDS データベースインスタンスの起動AWS Explorer では、Amazon RDS がサポートする任意のデータベースエンジンのインスタンスを起動できます。次のウォークスルーでは、Microsoft SQL Server Standard Edition のインスタンスを起動するためのユーザーエクスペリエンスについて記していますが、ユーザーエクスペリエンスはサポートするすべてのエンジンで類似しています。

Amazon RDS インスタンスを起動するには

1. AWS Explorer で [Amazon RDS] のコンテキスト (右クリック) メニューを開いて、[Launch DBInstance] を選択します。

72

Page 77: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon RDS データベースインスタンスの起動

または、[DB Instances] タブをクリックし、[Launch DB Instance] を選択します。2. [DB Engine Selection] ダイアログボックスで、起動するデータベースエンジンのタイプを選択します。

このウォークスルーでは、Microsoft SQL Server Standard Edition (sqlserver-se) を選択し、[Next] を選択します。

3. [DB Engine Instance Options] ダイアログボックスで、設定オプションを選択します。

[DB Engine Instance Options and Class] セクションで、次の設定を指定できます。

License Model

エンジンのタイプ ライセンス

Microsoft SQL Server license-included

MySql general-public-license

Oracle 自分のライセンス使用

データベースエンジンによってライセンスモデルは異なります。エンジンのタイプ、ライセンス、Microsoft SQL Server、license-included、MySql、general-public-license、Oracle、bring-your-own-licenseDB インスタンスのバージョン

使用するデータベースエンジンのバージョンを選択します。サポートするバージョンが 1 つのみの場合は、そのバージョンが選択されています。

DB インスタンスクラス

データベースエンジンのインスタンスクラスを選択します。インスタンスクラスの料金はさまざまです。詳細については、Amazon RDS 料金表を参照してください。

マルチ AZ 配置の実行

このオプションを選択し、データの冗長性と可用性を強化するマルチ AZ 配置を作成します。Amazon RDS は、計画されたシステム停止または予期しない停止の際の自動フェイルオーバーのために、異なるアベイラビリティーゾーンにあるデータベースのスタンバイコピーのプロビジョニングと維持を行います。マルチ AZ 配置の料金の詳細については、Amazon RDS の詳細ページの料金表セクションを参照してください。このオプションは、Microsoft SQL Server ではサポートされていません。

マイナーバージョンの自動アップグレード

このオプションを選択すると、RDS インスタンスのマイナーバージョンアップを AWS が自動で行います。

[RDS Database Instance] セクションで、以下の設定を指定します。

Allocated Storage

エンジン 最小 (GB) 最大 (GB)

MySQL 5 1024

Oracle Enterprise Edition 10 1024

Microsoft SQL Server ExpressEdition

30 1024

73

Page 78: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAmazon RDS データベースインスタンスの起動

エンジン 最小 (GB) 最大 (GB)

Microsoft SQL Server StandardEdition

250 1024

Microsoft SQL Server WebEdition

30 1024

割り当てられたストレージの最小値および最大値はデータベースエンジンのタイプによって異なります。Engine Minimum (GB)、Maximum (GB)、MySQL、5、1024、Oracle EnterpriseEdition、10、1024、Microsoft SQL Server Express Edition、30、1024、Microsoft SQL ServerStandard Edition、250、1024、Microsoft SQL Server Web Edition、30、1024

DB Instance Identifier

データベースインスタンスの名前を指定します。この値は大文字と小文字が区別されません。AWSExplorer では小文字で表示されます。

Master User Name

データベースインスタンスの管理者名を入力します。Master User Password

データベースインスタンスの管理者パスワードを入力します。Confirm Password

パスワードをもう一度入力して誤りがないことを確認します。

1. [Additional Options] ダイアログボックスで、以下の設定を指定します。Database Port

これは、ネットワークで通信を行う際にインスタンスが使用する TCP ポートです。コンピュータがファイアウォールを介してインターネットにアクセスしている場合は、ファイアウォールが許可するポートを設定します。

アベイラビリティーゾーン

リージョン内の特定のアベイラビリティーゾーンでインスタンスを起動する場合は、このオプションを使用します。指定したデータベースインスタンスがすべてのアベイラビリティーゾーンで使用できない場合があります。

RDS セキュリティグループ

インスタンスに関連付ける RDS セキュリティグループを 1 つ以上選択します。RDS セキュリティグループにより、インスタンスにアクセス可能な IP アドレス、Amazon EC2 インスタンス、および AWS アカウントが決定します。RDS セキュリティグループの詳細については、「Amazon RDSSecurity Groups (p. 75)」を参照してください。Toolkit for Visual Studio はユーザーの現在の IPアドレスを特定しようと試み、このアドレスをインスタンスに関連付けられたセキュリティグループに追加するかを確認します。ただし、コンピュータがファイアウォール経由でインターネットにアクセスしている場合、Toolkit により生成されたコンピュータの IP アドレスが正しくない可能性があります。使用する IP アドレスを決定するには、システム管理者にお問い合わせください。

DB Parameter Group

(オプション) このドロップダウンリストで、インスタンスに関連付ける DB パラメータグループを選択します。DB パラメータグループを使用することで、インスタンスのデフォルト設定を変更できます。詳細については、『Amazon Relational Database Service ユーザーガイド』およびこちらの記事を参照してください。

74

Page 79: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドRDS インスタンスでの MicrosoftSQL Server データベースの作成

このダイアログボックスで設定を指定している場合は、[Next] を選択します。2. [Backup and Maintenance] ダイアログボックスでは、Amazon RDS がインスタンスをバックアップす

るかどうか、そしてもしバックアップするのであれば、その保持期間を設定できます。バックアップを行う時間帯も指定できます。

このダイアログボックスでは、Amazon RDS でインスタンスのシステムメンテナンスを行うかも指定できます。メンテナンスには、定期的なパッチとマイナーバージョンアップグレードが含まれます。

システムメンテナンスに指定した時間帯とバックアップに指定した時間帯は重複できません。

[次へ] を選択します。3. ウィザードの最後のダイアログボックスでは、インスタンスの設定を確認することができます。設定を

変更する必要がある場合は、[Back] ボタンをクリックします。すべての設定が正しい場合は、[Launch]を選択します。

RDS インスタンスでの Microsoft SQL Server データベースの作成Microsoft SQL Server は、Amazon RDS インスタンスの起動後に、RDS インスタンスに SQL Server データベースを作成する必要があるように設計されています。

Amazon RDS インスタンスを作成する方法については、「Amazon RDS データベースインスタンスの起動 (p. 72)」を参照してください。

Microsoft SQL Server データベースを作成するには

1. AWS Explorer で、Microsoft SQL Server の RDS インスタンスに対応するノードのコンテキスト (右クリック) メニューを開き、[Create SQL Server Database] を選択します。

2. [Create SQL Server Database] ダイアログボックスで、RDS インスタンスの作成時に指定したパスワードを入力し、Microsoft SQL Server データベースの名前を入力して、[OK] を選択します。

3. Toolkit for Visual Studio は、Microsoft SQL Server データベースを作成して、Visual Studio の ServerExplorer に追加します。

Amazon RDS セキュリティグループAmazon RDS セキュリティグループを使うと、Amazon RDS インスタンスへのネットワークアクセスを管理できます。セキュリティグループを使用して、CIDR 表記を使って IP アドレスのセットを指定すると、Amazon RDS インスタンスは、これらのアドレスから送信されるネットワークトラフィックのみを認識します。

Amazon RDS セキュリティグループは、Amazon EC2 セキュリティグループと類似の動作をしますが、両者は異なります。RDS セキュリティグループに EC2 セキュリティグループを追加することができます。すると、EC2 セキュリティグループのメンバーである EC2 インスタンスは、RDS セキュリティグループのメンバーである RDS インスタンスにアクセスできます。

Amazon RDS セキュリティグループの詳細については、「RDS セキュリティグループ」を参照してください。Amazon EC2 セキュリティグループの詳細については、「EC2 ユーザーガイド」を参照してください。

Amazon RDS セキュリティグループを作成するToolkit for Visual Studio を使用して、RDS セキュリティグループを作成できます。AWS Toolkit を使用して RDS インスタンスを起動する場合は、ウィザードを使ってインスタンスで使用する RDS セキュリティ

75

Page 80: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Explorer で Amazon SimpleDB を使用する

グループを指定することができます。ウィザードを開始する前に、次の手順を使用してそのセキュリティグループを作成することができます。

Amazon RDS セキュリティグループを作成するには

1. AWS Explorer で [Amazon RDS] ノードを展開し、[DB Security Groups] サブノードのコンテキスト(右クリック) メニューを開いて、[Create] を選択します。

または、[Security Groups] タブで、[Create Security Group] をクリックします。このタブが表示されていない場合は、[DB Security Groups] サブノードのコンテキスト (右クリック) メニューを開き、[View] を選択します。

2. [Create Security Group] ダイアログボックスで、セキュリティグループ名と説明を入力し、[OK] を選択します。

Amazon RDS セキュリティグループのアクセス許可の設定デフォルトでは、新しい Amazon RDS セキュリティグループはネットワークアクセスを提供しません。セキュリティグループを使用する Amazon RDS インスタンスへのアクセスを有効にするには、次の手順を使用してアクセス許可を設定します。

Amazon RDS セキュリティグループへのアクセスを設定するには

1. [Security Groups] タブで、リストビューからセキュリティグループを選択します。セキュリティグループがリストに表示されない場合は、[Refresh] を選択します。それでもセキュリティグループがリストに表示されない場合は、適切な AWS リージョンのリストが表示されていることを確認します。AWS Toolkit の [Security Group] タブはリージョン固有です。

[Security Group] タブが表示されない場合には、AWS Explorer で、[DB Security Groups] サブノードのコンテキスト (右クリック) メニューを開き、[View] を選択します。

2. [Add Permission] を選択します。

[Security Groups] タブの [Add Permissions] ボタン3. [Add Permission] ダイアログボックスで、CIDR 表記を使用して、RDS インスタンスにアクセスでき

る IP アドレスを指定するか、または RDS インスタンスにアクセスできる EC2 セキュリティグループを指定することができます。[EC2 Security Group] を選択すると、AWS アカウントに関連付けられたすべての EC2 インスタンスへのアクセスを指定することができます。またはドロップダウンリストから EC2 セキュリティグループを選択することができます。

AWS Toolkit は、IP アドレスを判別して、適切な CIDR 表記を使ってダイアログボックスを自動入力しようとします。コンピュータがファイアウォール経由でインターネットにアクセスしている場合は、ツールキットにより検出された CIDR が正しくない可能性があります。

AWS Explorer で Amazon SimpleDB を使用するAWS Explorer では、アクティブな AWS アカウントに関連付けられているすべての Amazon SimpleDB のドメインが表示されます。AWS Explorer で、Amazon SimpleDB のドメインを作成または削除することができます。アカウントに関連付けられている Amazon SimpleDB のドメインの作成、削除、またはオープン

クエリの実行と結果の編集

AWS Explorer では、Amazon SimpleDB ドメインのグリッドビューを表示して、ドメインの項目、属性、値を表示することもできます。クエリを実行して、ドメインの項目のサブセットのみを表示することがで

76

Page 81: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドAWS Explorer で Amazon SQS を使用する

きます。セルをダブルクリックすると、その項目に対応する属性の値を編集できます。ドメインに新しい属性を追加することもできます。

ここに表示されるドメインは、AWS SDK for .NET に含まれる Amazon SimpleDB のサンプルのものです。Amazon SimpleDB のグリッドビュー

クエリを実行するには、グリッドビューの上部にあるテキストボックスでクエリを編集し、[Execute] を選択します。このビューは、クエリに一致する項目のみを表示するようにフィルタリングされます。AWS Explorer からのクエリの実行

属性に関連付けられている値を編集するには、対応するセルをダブルクリックし、値を編集して、[Commit Changes] を選択します。

属性の追加

属性を追加するには、ビューの上部で、[Add Attribute] を選択します。[Add Attribute] ダイアログボックス

ドメインの属性部分を作成するには、そのための値を少なくとも 1 つの項目に追加して、[CommitChanges] ボタンを選択する必要があります。新しい属性の変更のコミット

クエリ結果をページ分割する

ビューの下部には 3 つのボタンがあります。ページ分割とエクスポートのボタン

最初の 2 つのボタンを使うと、クエリ結果がページ分割されます。最初のボタンでは、結果の次のページが表示されます。2 番目のボタンでは、結果の 10 ページ先が表示されます。この場合では、1 ページは100 行または LIMIT 値によって指定された行数 (クエリに含まれている場合) となります。

CSV へエクスポート

最後のボタンを使うと、現在の結果が CSV ファイルにエクスポートされます。

AWS Explorer で Amazon SQS を使用するAmazon Simple Queue Service (Amazon SQS) は柔軟なキューサービスであり、ソフトウェアアプリケーションで実行されている異なるプロセス間でメッセージの受け渡しを行うことができます。Amazon SQSキューは AWS インフラストラクチャに配置されていますが、メッセージを受け渡すプロセスはローカル、Amazon EC2 インスタンス、またはそれらを組み合わせて配置できます。Amazon SQS は複数のコンピュータ間での分散作業を調整するために最適です。

Toolkit for Visual Studio を使用すると、アクティブなアカウントに関連付けられている Amazon SQSキューの表示、キューの作成と削除、キューを使ったメッセージの送信を行うことができます。(アクティブなアカウントとは、AWS Explorer で選択されたアカウントを意味します。)

Amazon SQS の詳細については、AWS ドキュメントの「SQS のご紹介」を参照してください。

キューAWS Explorer から Amazon SQS キューを作成することができます。キューの ARN と URL は、アクティブなアカウントのアカウント番号と、作成時に指定したキューの名前に基づきます。

キューを作成するには

77

Page 82: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドキューの削除

1. AWS Explorer で [Amazon SQS] ノードのコンテキスト (右クリック) メニューを開いて、[CreateQueue] を選択します。

2. [Create Queue] ダイアログボックスで、キュー名、デフォルトの可視性タイムアウト、およびデフォルト配信遅延を指定します。デフォルトの可視性タイムアウトとデフォルトの配信遅延は秒単位で指定します。デフォルトの可視性タイムアウトは、あるプロセスがメッセージを取得した後に、潜在的な受信プロセスに対してそのメッセージが不可視になる時間です。デフォルトの配信遅延は、メッセージが送信されてから、潜在的な受信プロセスに対して可視となるまでの時間です。

3. [OK] を選択します。新しいキューは、[Amazon SQS] ノードの下のサブノードとして表示されます。

キューの削除AWS Explorer から既存のキューを削除することができます。キューを削除すると、キューに関連付けられているメッセージは利用できなくなります。

キューを削除するには

1. AWS Explorer で、削除するキューのコンテキスト (右クリック) メニューを開き、[Delete] を選択します。

キューのプロパティの管理AWS Explorer に表示されているすべてのキューのプロパティを表示および編集できますこのプロパティビューから、キューにメッセージを送信することもできます。

キューのプロパティを管理するには

• AWS Explorer で、プロパティを管理するキューのコンテキスト (右クリック) メニューを開き、[ViewQueue] を選択します。

キューのプロパティビューから、可視性タイムアウト、最大メッセージサイズ、メッセージの保持期間、デフォルトの配信遅延を編集できます。デフォルトの配信遅延は、メッセージの送信時に上書きできます。次のスクリーンショットでは、キューの ARN と URL に含まれるアカウント番号は非表示にしています。

SQS キューのプロパティビュー

キューへのメッセージ送信キューのプロパティビューから、キューにメッセージを送信できます。

メッセージを送信するには

1. キューのプロパティビューの上部で、[Send] ボタンを選択します。2. メッセージを入力します。(オプション) 配信遅延を入力すると、キューのデフォルトの配信遅延を上書

きします。次の例では、遅延の値を 240 秒で上書きします。[OK] を選択します。[Send Message] ダイアログボックス

3. 約 240 秒 (4 分) 待ちます。メッセージが、キューのプロパティビューの [Message Sampling] セクションに表示されます。送信されたメッセージが表示されている SQS プロパティビュー

キューのプロパティビューのタイムスタンプは、[Send] ボタンを選択した時間です。これには遅延は含まれません。したがって、メッセージがキューに表示されてレシーバーに利用可能になる時間は、このタイムスタンプよりも後になる場合があります。タイムスタンプは、コンピュータの現地時間で表示されます。

78

Page 83: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドIdentity and Access Management

Identity and Access ManagementAWS Identity and Access Management (IAM) を利用すると、AWS のアカウントとリソースへのアクセスを、より安全に管理できます。IAM を使用すると、プライマリ (ルート) AWS アカウントに複数のユーザーを作成できます。これらのユーザーは自分の認証情報 (パスワード、アクセスキー ID、およびシークレットキー) を持つことができますが、すべての IAM ユーザーは 1 つのアカウント番号を共有します。

ユーザーに IAM ポリシーをアタッチして、各 IAM ユーザーのリソースアクセスのレベルを管理することができます。 たとえば、Amazon S3 サービスおよびアカウントの関連リソースへのユーザーアクセスを付与するポリシーを IAM ユーザーにアタッチすることができますが、他のサービスまたはリソースへのアクセスはできません。

より効率的なアクセス管理を行うためには、ユーザーの集合である、IAM グループを作成できます。グループにポリシーをアタッチすると、そのグループのメンバーであるすべてのユーザーに反映されます。

IAM は、ユーザーおよびグループレベルでのアクセス許可の管理に加えて、IAM ロールの概念もサポートしています。ユーザーおよびグループと同様に、IAM ロールにポリシーをアタッチすることができます。IAM ロールを Amazon EC2 インスタンスに関連付けることができます。EC2 インスタンス上で実行されるアプリケーションは、IAM ロールに提供されたアクセス許可を使って AWS にアクセスできます。ツールキットでの IAM ロールの使用の詳細については、「IAM ロールの作成 (p. 81)」を参照してください。IAM の詳細については、「IAM ユーザーガイド」を参照してください。

IAM ユーザーを作成して設定するIAM ユーザーを使うと、他のユーザーに AWS アカウントへのアクセスを付与することができます。IAMユーザーにポリシーをアタッチすることができるため、IAM ユーザーがアクセスできるリソースおよびそれらのリソースに実行できる操作を正確に制限することができます。

AWS アカウントにアクセスするすべてのユーザーが IAM ユーザーとしてアクセスすることがベストプラクティスです。アカウントの所有者についても同様です。これにより、IAM ユーザーのうちの 1 人の認証情報が漏洩した場合でも、それらの認証情報のみを非アクティブ化することができます。アカウントのルート認証情報を非アクティブ化または変更する必要はありません。

Toolkit for Visual Studio から IAM ユーザーにアクセス許可を割り当てるには、ユーザーに IAM ポリシーをアタッチするか、ユーザーをグループに割り当てます。グループに割り当てた IAM ユーザーは、グループにアタッチされているポリシーからアクセス許可を引き継ぎます。詳細については、「IAM グループを作成する (p. 80)」と「IAM グループに IAM ユーザーを追加する (p. 80)」を参照してください。

Toolkit for Visual Studio から IAM ユーザーの AWS 認証情報 (アクセスキー ID とシークレットアクセスキー) を生成することもできます。詳細については、「IAM ユーザーの認証情報を生成する (p. 81)」を参照してください。

Toolkit for Visual Studio は、AWS Explorer を使ってサービスにアクセスするための IAM ユーザー認証情報の指定をサポートします。IAM ユーザーは通常、すべての AWS サービスへのフルアクセスができないため、AWS Explorer で一部の機能が利用できない場合があります。アクティブアカウントが IAM ユーザーであるときに AWS Explorer を使用してリソースを変更して、次にアクティブアカウントをルートアカウントに切り替える場合には、AWS Explorer で表示を更新するまで変更が表示されない場合があります。表示を更新するには、[Refresh] ボタンを選択します。

AWS マネジメントコンソールから IAM ユーザーを設定する方法の詳細については、IAM ユーザーガイドの「ユーザーおよびグループの使用」を参照してください。

IAM ユーザーを作成するには

1. AWS Explorer で、[AWS Identity and Access Management] ノードを展開し、[Users] のコンテキスト(右クリック) メニューを開いて、[Create User] を選択します。

79

Page 84: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドIAM グループを作成する

2. [Create User] ダイアログボックスで IAM ユーザーの名前を入力して、[OK] を選択します。これは IAMのフレンドリ名です。IAM ユーザー名の制約については、「IAM ユーザーガイド」を参照してください。IAM ユーザーを作成する

新しいユーザーは、[AWS Identity and Access Management] ノードの下の [Users] の下のサブノードとして表示されます。

ポリシーを作成してユーザーにアタッチする方法については、「IAM ポリシーを作成する (p. 82)」を参照してください。

IAM グループを作成するグループは、IAM ポリシーをユーザーの集合に適用する方法を提供します。IAM ユーザーとグループを管理する方法の詳細については、IAM ユーザーガイドの「ユーザーおよびグループの使用」を参照してください。

IAM グループを作成するには

1. AWS Explorer で、[Identity and Access Management] の下で、[Groups] のコンテキスト (右クリック)メニューを開いて、[Create Group] を選択します。

2. [Create Group] ダイアログボックスで IAM グループの名前を入力して、[OK] を選択します。IAM グループを作成する

新しい IAM グループは、[Identity and Access Management] の [Groups] サブノードの下に表示されます。

ポリシーを作成して IAM グループにアタッチする方法については、「IAM ポリシーを作成する (p. 82)」を参照してください。

IAM グループに IAM ユーザーを追加するIAM グループのメンバーである IAM ユーザーは、グループにアタッチされているポリシーからアクセス許可を引き継ぎます。IAM グループの目的は、IAM ユーザーの集合全体のアクセス許可の管理を容易にすることです。

IAM グループにアタッチされたポリシーが、その IAM グループのメンバーである IAM ユーザーにアタッチされたポリシーと連携する方法の詳細については、IAM ユーザーガイドの「IAM ポリシーを管理する」を参照してください。

AWS Explorer で、[Groups] サブノードではなく、[Users] サブノードから、IAM ユーザーを IAM グループに追加します。

IAM グループに IAM ユーザーを追加するには

1. AWS Explorer で、[Identity and Access Management] の下で、[Users] のコンテキスト (右クリック) メニューを開いて、[Edit] を選択します。IAM ユーザーを IAM グループに割り当てる

2. [Groups] タブの左側のペインに、使用可能な IAM グループが表示されます。右側のペインには、指定された IAM ユーザーがすでにメンバーであるグループが表示されます。

IAM ユーザーをグループに追加するには、左側のペインで、IAM グループを選択し、[>] ボタンをクリックします。

IAM ユーザーをグループから削除するには、右側のペインで、IAM グループを選択し、[<] ボタンをクリックします。

80

Page 85: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドIAM ユーザーの認証情報を生成する

IAM ユーザーをすべての IAM グループに追加するには、[>>] ボタンを選択します。同様に、IAM ユーザーをすべてのグループから削除するには、[<<] ボタンを選択します。

複数のグループを選択するには、それらを順に選択します。コントロールキーを押しながら選択する必要はありません。グループを選択からクリアするには、再度選択します。

3. IAM ユーザーの IAM グループへの割り当てが完了したら、[Save] を選択します。

IAM ユーザーの認証情報を生成するToolkit for Visual Studio を使用すると、AWS への API 呼び出しを実行するために使用する、アクセスキーID とシークレットキーを生成することができます。これらのキーは、ツールキットを使って AWS のサービスにアクセスするために指定することもできます。Toolkit 用に認証情報を指定する方法については、「認証情報」を参照してください。認証情報を安全に処理する方法の詳細については、「AWS アクセスキーを管理するためのベストプラクティス」を参照してください。

ツールキットは、IAM ユーザーのパスワードを生成するために使用することはできません。

IAM ユーザーの認証情報を生成するには

1. AWS Explorer で IAM ユーザーのコンテキスト (右クリック) メニューを開き、[Edit] を選択します。2. 認証情報を生成するには、[Access Keys] タブで、[Create] を選択します。

IAM ユーザーごとに 2 セットのみの認証情報を生成できます。2 セットの認証情報がすでにあり、追加のセットを作成する必要がある場合は、既存のセットのいずれかを削除する必要があります。IAM ユーザーの認証情報を作成する

ツールキットでシークレットアクセスキーの暗号化済みコピーをローカルドライブに保存する場合は、[Save the secret access key locally] を選択します。AWS は作成されたときにシークレットアクセスキーのみを返します。ダイアログボックスからシークレットアクセスキーをコピーして、それを安全な場所に保存することもできます。

3. [OK] を選択します。

認証情報を生成した後、それを [Access Keys] タブから表示できます。ツールキットでシークレットキーをローカルに保存するオプションを選択した場合は、ここに表示されます。IAM ユーザーの認証情報を作成する

自分でシークレットキーを保存した場合で、ツールキットでもそれを保存する場合は、[Secret AccessKey] ボックスにシークレットアクセスキーを入力し、[Save the secret access key locally] を選択します。

認証情報を無効化するには、[Make Inactive] を選択します。(認証情報の漏洩が疑われる場合は、これを実行します。)認証情報が安全であることが確認できたら、再アクティブ化することができます。

IAM ロールの作成Toolkit for Visual Studio は、IAM ロールの作成および設定をサポートしています。ユーザーおよびグループと同様に、IAM ロールにポリシーをアタッチすることができます。IAM ロールを Amazon EC2 インスタンスに関連付けることができます。EC2 インスタンスとの関連付けは、インスタンスプロファイルを介して処理されます。これはロールの論理コンテナです。EC2 インスタンスで実行されるアプリケーションは、IAM ロールに関連付けられたポリシーによって指定されるアクセスのレベルを自動的に付与されます。これは、アプリケーションが他の AWS 認証情報を指定していない場合にもあてはまります。

たとえば、ロールを作成して、Amazon S3 のみへのアクセスに制限するポリシーをそのロールにアタッチできます。このロールを EC2 インスタンスに関連付けた後、そのインスタンスでアプリケーションを実行

81

Page 86: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドIAM ポリシーを作成する

すると、アプリケーションは Amazon S3 にアクセスできますが、他のサービスまたはリソースにはアクセスできません。この方法の利点は、AWS 認証情報を EC2 インスタンスで安全に転送して保存することを心配する必要がないことです。

IAM ロールの詳細については、IAM ユーザーガイドの「IAM ロールを使用する」を参照してください。Amazon EC2 インスタンスに関連付けられている IAM ロールを使用して AWS にアクセスするプログラムの例については、Java、.NET、PHP、Ruby の AWS 開発者ガイドを参照してください。

IAM ロールを作成するには

1. AWS Explorer で、[Identity and Access Management] の下で、[Roles] のコンテキスト (右クリック) メニューを開いて、[Create Roles] を選択します。

2. [Create Role] ダイアログボックスで IAM ロールの名前を入力して、[OK] を選択します。IAM ロールの作成

新しい IAM ロールは [Identity and Access Management] の [Roles] の下に表示されます。

ポリシーを作成してロールにアタッチする方法については、「IAM ポリシーを作成する (p. 82)」を参照してください。

IAM ポリシーを作成するポリシーは IAM にとって非常に重要です。ポリシーは IAM のエンティティ (ユーザー、グループ、ロールなど) に関連付けることができます。ポリシーによって、ユーザー、グループ、またはロールに対して有効にする、アクセスのレベルを指定できます。

IAM ポリシーを作成するには

AWS Explorer で、[AWS Identity and Access Management] ノードを展開し、ポリシーをアタッチするエンティティの種類のノード ([Groups]、[Roles]、[Users]) を展開します。たとえば、IAM ロールのコンテキストメニューを開き、[Edit] を選択します。

ロールに関連付けられたタブが AWS Explorer に表示されます。[Add Policy] リンクを選択します。

[New Policy Name] ダイアログボックスで、ポリシーの名前 (たとえば s3-access) を入力します。[New Policy Name] ダイアログボックス

ポリシーエディタで、ポリシーステートメントを追加して、ロールに提供するアクセスレベルを指定します (この例では、ポリシーに関連付けられている winapp-instance-role-2 です)。この例では、ポリシーはAmazon S3 へのフルアクセスを提供しますが、他のリソースへのアクセスはできません。IAM ポリシーの指定

より正確なアクセス制御には、ポリシーエディタでサブノードを展開して、AWS サービスに関連付けられたアクションを許可または拒否します。

ポリシーを編集したら、[Save] リンクを選択します。

AWS Toolkit for Visual Studio で AWS Lambda テンプレートを使用する

AWS Toolkit for Visual Studio には Visual Studio 用の AWS Lambda .NET Core プロジェクトテンプレートが含まれています。テンプレートを使用して、.NET Core ベースの C# Lambda 関数の迅速な開発およびデプロイを行うことができます。.NET Core はクロスプラットフォームであ

82

Page 87: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Toolkit for Visual Studio

で AWS Lambda プロジェクトを使用する

り、Windows、macOS、Linux をサポートし、デバイスアプリケーション、クラウドアプリケーション、組み込みアプリケーションの開発に使用できます。

Toolkit for Visual Studio をインストールするには、Visual Studio 2017 または Visual Studio 2015 Update 3および .NET Core for Windows がインストールされている必要があります。

詳細については、以下を参照してください。

• Microsoft .NET Core については、「.NET Core」を参照してください。• Windows、macOS、Linux の各プラットフォームでの、.NET Core の前提条件とインストール方法につ

いては、「.NET Core のダウンロード」を参照してください。• AWS Lambda 関数については、「AWS Lambda とは」を参照してください。

前提条件

次のチュートリアルを行うには、まず以下を行う必要があります。

• Visual Studio 2015 Update 3 または Visual Studio 2017 をインストールします。• .NET Core for Windows をインストールします (Visual Studio 2017 には必要ありません)。• AWS Toolkit for Visual Studio をインストールします。認証情報を指定します。「AWS Toolkit for Visual

Studio のセットアップ (p. 3)」を参照してください。

トピック• チュートリアル: AWS Toolkit for Visual Studio で AWS Lambda プロジェクトを使用する (p. 83)• チュートリアル: AWS Lambda でのサーバーレスアプリケーションの構築とテスト (p. 90)• チュートリアル : Amazon Rekognition Lambda アプリケーションの作成 (p. 99)• チュートリアル: AWS Lambda で Amazon Logging Frameworks を使用してアプリケーションログを

作成する (p. 106)

チュートリアル: AWS Toolkit for Visual Studio でAWS Lambda プロジェクトを使用するVisual Studio 用の AWS Lambda .NET Core プロジェクトテンプレートを使用すると、Microsoft .NETCore を使って AWS Lambda 関数を容易に作成できます。

AWS Toolkit for Visual Studio のセットアップの詳細と前提条件については、「Using the AWS LambdaTemplates in the AWS Toolkit for Visual Studio (p. 82)」を参照してください。

Visual Studio .NET Core Lambda プロジェクトを作成する1. Visual Studio を開き、[File] メニューで [New] を選択し、[Project] を選択します。2. [インストール済み] ペインで [Visual C#] と [AWS Lambda Project (.NET Core)] テンプレートを選択し

ます。

選択可能なプロジェクトには 2 つのタイプがあります。• AWS Lambda プロジェクトは、個々の Lambda 関数を開発およびデプロイするためのプロジェクト

です。• AWS Serverless Applications プロジェクトは、サーバーレス AWS CloudFormation テンプレートで

Lambda 関数を作成するためのプロジェクトです。AWS サーバーレスアプリケーションでは、関数以上のものを定義できます。たとえば、データベースの作成や IAM ロールの追加などを、サーバーレ

83

Page 88: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Toolkit for Visual Studio

で AWS Lambda プロジェクトを使用する

スデプロイと同時に追加できます。AWS サーバーレスアプリケーションでは、一度に複数の関数をデプロイすることもできます。

3. プロジェクトタイプを選択した後、設計図を選択します。[AWS Lambda Project (.NET Core)] については、[Select Blueprint] ページでいくつかの Lambda 関数テンプレートが表示されます。

4. 開発する Lambda 関数の種類を選択し、[Finish] を選んで、Visual Studio プロジェクトを作成します。これでプロジェクトの構造とコードを確認できるようになりました。

84

Page 89: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Toolkit for Visual Studio

で AWS Lambda プロジェクトを使用する

プロジェクトファイルを確認するプロジェクトの一部として作成される、aws-lambda-tools-defaults.json ファイルを確認します。このファイルでオプションを設定できます。オプションはデフォルトでは Lambda ツールが読み取ります。Visual Studio で作成されたプロジェクトテンプレートは、これらのフィールドの多くをデフォルト値を使用して設定します。ここで関数ハンドラを指定します。そのため、ウィザードで設定する必要はありません。ただし、関数、クラス、アセンブリの名前を変更した場合は、aws-lambda-tools-defaults.json ファイルでフィールドを更新する必要があります。

{ "profile":"default", "region" : "us-east-2", "configuration" : "Release", "framework" : "netcoreapp1.0", "function-runtime":"dotnetcore1.0", "function-memory-size" : 256, "function-timeout" : 30, "function-handler" : "BlogExample::BlogExample.Function::FunctionHandler"}

この aws-lambda-tools-default.json ファイルを使用する場合、Lambda ツールが関数をデプロイするために必要なもので、残っているのは、Lambda 関数と IAM ロールの名前です。

これでプロジェクトを Lambda に発行できるようになりました。

Lambda への発行関数を Lambda に発行するには

1. Solution Explorer でプロジェクトを右クリックし、[Publish to AWS Lambda] を選択します。

2. [Upload Lambda Function] ページの [Function Name] で、関数の名前を入力するか、以前に発行された関数を再発行します。続いて、[Next] を選択します。

85

Page 90: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Toolkit for Visual Studio

で AWS Lambda プロジェクトを使用する

3. [Advanced Function Details] ページで、次のようにフィールドを設定します。• 必須: アカウントに関連付けられているロールの [Role Name] を入力します。AWS 管理ポリシーまた

は独自の管理ポリシーに基づいて、既存のロールまたは新しいロールを選択します。このロールは、関数内のコードによって行われる AWS サービスコールに認証情報を提供するために使用されます。アカウントには IAM ListPolicies アクションを実行できるアクセス権限が必要です。この権限がない場合には、[Role Name] リストは空となり、続行できません。

• オプション: Lambda 関数が Amazon VPC 上のリソースにアクセスする場合は、サブネットとセキュリティグループを選択します。

• オプション: Lambda 関数が必要とする、環境変数を設定します。キーは、デフォルトのサービスキーで自動的に暗号化されます (無料)。または、AWS KMS キーを指定することもできます (料金がかかります)。KMS は、データの暗号化に使用される暗号化キーの作成と管理を行うために使用できる、マネージド型サービスです。AWS KMS キーがある場合は、リストから選択できます。

4. [Upload] を選択します。

86

Page 91: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Toolkit for Visual Studio

で AWS Lambda プロジェクトを使用する

5. 関数のアップロード中は [Uploading Function] ページが表示され、アップロードが完了すると、自動的に閉じられます。レポートを表示するためにウィザードを開いたままにするには、アップロードが完了する前に、フォームの最後にある [Automatically close wizard on successful completion] のチェックボックスをオフにします。レポートの表示を終了するには、ページを閉じます。

87

Page 92: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Toolkit for Visual Studio

で AWS Lambda プロジェクトを使用する

6. 関数がアップロードされると、[Function] ページが開きます。ページの左側のタブを使用して関数をテストし、イベントソースを追加して、ログを表示します。[Configuration] タブを使用して、VPC サブネットおよびセキュリティグループ、メモリ、タイムアウト、環境変数を追加します。

7. イベントソースを追加して、AWS リソース (Amazon S3 バケット、Amazon SNS トピック、AmazonKinesis Data Streams ストリームなど) と Lambda 関数の間の接続を確立するには、[Event Sources] を選択します。[Add Event Source] ページが表示されます。

[Add Event Source] ページの [Source Type、] で、適切なイベントソースを選択し、[OK] を選択してイベントソースを追加します。

8. 関数をテストするには、[Example Requests] で、リクエストの例を選択します。

88

Page 93: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Toolkit for Visual Studio

で AWS Lambda プロジェクトを使用する

9. テストを実行するには、[Invoke] を選択します。

10.[Log output] でテストからの出力を確認します。

89

Page 94: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

Lambda 関数は発行されると、使用できる状態になっています。ユースケースについては、「AWSLambda の使用方法の例」を参照してください。

Lambda は Lambda 関数を自動的にモニタリングし、Amazon CloudWatch を使ってメトリクスを報告します。関数のモニタリングおよびトラブルシューティングを行うには、「Amazon CloudWatch を使用した AWS Lambda 関数のトラブルシューティングとモニタリング」を参照してください。

チュートリアル: AWS Lambda でのサーバーレスアプリケーションの構築とテストAWS Toolkit for Visual Studio テンプレートを使用してサーバーレス Lambda アプリケーションを構築することができます。Lambda のプロジェクトテンプレートには [AWS Serverless Application] 用のテンプレートが含まれます。AWS Serverless Application Model (AWS SAM) の AWS Toolkit for Visual Studio インプリメンテーションです。このプロジェクトタイプを使用することで、一連の AWS Lambda 機能を開発し、AWS CloudFormation で全体を調整しながら、開発した機能をアプリケーションとして、必要なすべての AWS リソースを用いてデプロイすることができます。

AWS Toolkit for Visual Studio のセットアップの詳細と前提条件については、「Using the AWS LambdaTemplates in the AWS Toolkit for Visual Studio (p. 82)」を参照してください。

トピック• 新しい AWS サーバーレスアプリケーションプロジェクトを作成する (p. 90)• サーバーレスアプリケーション内のファイルの詳細 (p. 92)• サーバーレスアプリケーションのデプロイ (p. 95)

新しい AWS サーバーレスアプリケーションプロジェクトを作成する1. Visual Studio を開き、[File] メニューで [New] を選択し、[Project] を選択します。

90

Page 95: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

2. [Installed] ペインで [Visual C#] の [Lambda Project] テンプレートを選択します。

選択可能なプロジェクトには 2 つのタイプがあります。• AWS Lambda プロジェクトは、個々の Lambda 関数を開発およびデプロイするためのプロジェクト

です。• AWS Serverless Applications プロジェクトは、サーバーレス AWS CloudFormation テンプレートで

Lambda 関数を作成するためのプロジェクトです。AWS サーバーレスアプリケーションでは、関数以上のものを定義できます。たとえば、データベースの作成や IAM ロールの追加などを、サーバーレスデプロイと同時に追加できます。AWS サーバーレスアプリケーションでは、一度に複数の関数をデプロイすることもできます。

3. [AWS Serverless Application with Tests (.NET Core)] を選択して Blogger という名前を付けます。[Select Blueprint] ページが表示され、複数の Lambda 関数テンプレートが表示されます。

91

Page 96: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

4. [Blog API using |DDB| blueprint] を選択し、[Finish] を選択して Visual Studio プロジェクトを作成します。

サーバーレスアプリケーション内のファイルの詳細Blog.cs

Blog.cs は Amazon DynamoDB に保存されたブログアイテムを表すための単純なクラスです。

Functions.cs

Functions.cs は C# 関数を Lambda 関数としてエクスポーズできるように定義します。ブログプラットフォームを管理するために定義された関数が 4 つあります。

• GetBlogsAsync はブログの一覧を取得するための関数です。• GetBlogAsync は、クエリパラメータ ID または URL リソースパスに追加された ID をもとに、ブログ

を 1 つ取得するための関数です。• AddBlogAsync は DynamoDB テーブルにブログを追加するための関数です。• RemoveBlogAsync は DynamoDB テーブルからブログを削除するための関数です。

これらの各関数は APIGatewayProxyRequest オブジェクトを受け取り、APIGatewayProxyResponse オブジェクトを返します。

Amazon API Gateway を使用して、これらの Lambda 関数を HTTP API としてエクスポーズします。APIGatewayProxyRequest には HTTP リクエストのすべての情報が含まれます。GetBlogAsyncタスクはリソースパスまたはクエリ文字列に含まれるブログ ID を検出します。

public async Task GetBlogAsync(APIGatewayProxyRequest request, ILambdaContext context){ string blogId = null;

92

Page 97: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

if (request.PathParameters != null && request.PathParameters.ContainsKey(ID_QUERY_STRING_NAME)) blogId = request.PathParameters[ID_QUERY_STRING_NAME]; else if (request.QueryStringParameters != null && request.QueryStringParameters.ContainsKey(ID_QUERY_STRING_NAME)) blogId = request?.QueryStringParameters[ID_QUERY_STRING_NAME]; ...}

このクラスのデフォルトのコンストラクタは、ブログを環境変数として格納する DynamoDB テーブルの名前を渡します。この環境変数は Lambda が関数をデプロイするときに設定されます。

public Functions(){ // Check if a table name was passed in through environment variables and, if so, // add the table mapping var tableName = System.Environment.GetEnvironmentVariable(TABLENAME_ENVIRONMENT_VARIABLE_LOOKUP); if(!string.IsNullOrEmpty(tableName)) { AWSConfigsDynamoDB.Context.TypeMappings[typeof(Blog)] = new Amazon.Util.TypeMapping(typeof(Blog), tableName); }

var config = new DynamoDBContextConfig { Conversion = DynamoDBEntryConversion.V2 }; this.DDBContext = new DynamoDBContext(new AmazonDynamoDBClient(), config);}

serverless.template

serverless.template は前述の 4 つの関数をデプロイするために使用される AWS CloudFormationテンプレートです。テンプレートのパラメータを使用して、DynamoDB テーブルの名前を設定したり、DynamoDB のテーブルを作成するか、テーブルがすでに作成されていると仮定するかを選択することができます。

テンプレートは AWS::Serverless::Function 型の 4 つのリソースを定義します。これは、AWS SAMの仕様の一部として定義される特別なメタリソースです。仕様とは、DynamoDB の一部としてテンプレートに適用される変換です。この変換の結果、メタリソースタイプが展開され、AWS::Lambda::Functionや AWS::IAM::Role のような、より具体的なリソースに変換されます。変換は次のように、テンプレートファイルの上部に記述されます。

{ "AWSTemplateFormatVersion" : "2010-09-09", "Transform" : "AWS::Serverless-2016-10-31",

...

}

GetBlogs の宣言は関数宣言に似ています。

"GetBlogs" : { "Type" : "AWS::Serverless::Function", "Properties": { "Handler": "Blogger::Blogger.Functions::GetBlogsAsync", "Runtime": "dotnetcore1.0", "CodeUri": "", "Description": "Function to get a list of blogs", "MemorySize": 256, "Timeout": 30,

93

Page 98: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

"Role": null, "Policies": [ "AWSLambdaFullAccess" ], "Environment" : { "Variables" : { "BlogTable" : { "Fn::If" : ["CreateBlogTable", {"Ref":"BlogTable"}, { "Ref" : "BlogTableName" } ] } } }, "Events": { "PutResource": { "Type": "Api", "Properties": { "Path": "/", "Method": "GET" } } } }}

フィールドの多くは、Lambda プロジェクトのデプロイのフィールドに類似しています。Environmentプロパティでは、DynamoDB テーブルの名前が環境変数として渡されます。この CodeUri プロパティを通して、アプリケーションバンドルが Amazon S3 のどこに格納されているかが DynamoDB に伝えられます。このプロパティは空白のままにします。デプロイの際、アプリケーションバンドルを S3 にアップロード後に、ツールキットにより自動的に補完されます (ディスク上のテンプレートファイルは変更されません)。Lambda 関数の HTTP バインドは Events セクションで定義されます。関数に必要な APIGateway のセットアップは以上です。このセクションでは、他の種類のイベントソースもセットアップします。

AWS CloudFormation でデプロイ管理を行うことの利点の 1 つは、テンプレート内のアプリケーションが必要とするあらゆる AWS リソースの追加と構成が行えること、そしてリソースの作成や削除をDynamoDB で行えることです。

94

Page 99: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

サーバーレスアプリケーションのデプロイプロジェクトを右クリックし、[Publish to AWS Lambda] を選択して、サーバーレスアプリケーションをデプロイします。

この結果デプロイウィザードが起動します。そして、serverless.template ですべての Lambda 設定が完了したことで、次の手順によりファイルの供給が可能になります。

• テンプレートで宣言されているすべてのリソースのコンテナである CloudFormation スタックの名前。• アプリケーションバンドルをアップロードする S3 バケット。

これらは同じ AWS リージョンに存在する必要があります。

95

Page 100: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

サーバーレステンプレートにはパラメータが設定できるため、パラメータの値を指定できる別ページがウィザードに表示されます。BlogTableName プロパティを空白のままにすることで、CloudFormation が自動的に、テーブルに一意の名前を付けることができます。ShouldCreateTable の値を true に設定することで、DynamoDB はテーブルを作成します。既存のテーブルを使用するには、テーブル名を入力してShouldCreateTable パラメータの値を false に設定します。その他のフィールドはデフォルト値のままにして、[Publish] を選択します。

96

Page 101: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

公開ステップが完了すると、AWS Explorer に CloudFormation スタックビューが表示されます。ビューには、サーバーレステンプレートで宣言されているすべてのリソースの、作成の進行状況が表示されます。

スタックの作成が完了すると、API Gateway のルート URL がページに表示されます。このリンクをクリックすると、テーブルにブログを追加していないため、空の JSON 配列が返されます。テーブルにブログを追加するには、この URL に対して HTTP PUT メソッドを作成して、ブログを表す JSON ドキュメントを渡します。この操作はコードを書くことでも、任意のツールで行うこともできます。この例ではPostman ツールと呼ばれる、Chrome ブラウザの拡張機能で行いますが、任意のツールを使用することができます。このツールで、URL を設定し、メソッドを PUT に変更します。[Body] タブでサンプルコンテンツを配置します。HTTP コールを行うとブログ ID が返されます。

97

Page 102: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda でのサー

バーレスアプリケーションの構築とテスト

AWS Serverless URL のリンクからブラウザに戻ると、先ほど投稿したブログが返されています。

AWS Serverless Application テンプレートを使用して、Lambda 関数のコレクションとアプリケーションの他の AWS リソースの管理が行えます。また、AWS SAM の仕様により、簡素化された構文を使用して、DynamoDB テンプレートのサーバーレスアプリケーションを宣言できます。

98

Page 103: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル : Amazon Rekognition

Lambda アプリケーションの作成

チュートリアル : Amazon Rekognition Lambda アプリケーションの作成このチュートリアルでは、Amazon Rekognition を使用して、検出ラベルのタグを Amazon S3 オブジェクトに付ける Lambda アプリケーションを作成する方法を示します。

AWS Toolkit for Visual Studio のセットアップの詳細と前提条件については、「Using the AWS LambdaTemplates in the AWS Toolkit for Visual Studio (p. 82)」を参照してください。

Visual Studio の .NET Core Lambda Image Rekognition プロジェクトを作成する1. Visual Studio を開き、[File] メニューで [New] を選択し、[Project] を選択します。2. [Installed] ペインで、[Visual C#] の [AWS Lambda Project] テンプレートを選択します。[AWS Lambda

Project with Tests (.NET Core)] を選択し、プロジェクトに ImageRekognition と名前を付け、[OK] を選択します。

3. プロジェクトタイプを選択した後、設計図を選択します。設計図では、Lambda 関数の記述に役立つサンプルコードが提供されます。この例では、[Detect Image Labels] 設計図を選択します。

この設計図には Amazon S3 イベントをリッスンするためのコードがあり、Amazon Rekognition を使用してラベルを検出し、それらを Amazon S3 オブジェクトにタグとして追加できます。

99

Page 104: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル : Amazon Rekognition

Lambda アプリケーションの作成

4. 開発する Lambda 関数の種類を選択し、[Finish] を選んで、Visual Studio プロジェクトを作成します。

完了すると、2 つのプロジェクトを備えたソリューションができます。Lambda にデプロイするためのLambda 関数コードを含むソースプロジェクト、および関数をローカルでテストするために xUnit を使用するテストプロジェクトです。

プロジェクトを初めて作成したときに、Visual Studio で NuGet の参照が一部見つからないことがあります。これは、これらの設計図で必要な依存関係を、NuGet から取得する必要があるからです。新しいプロジェクトが作成されたとき、Visual Studio はローカル参照だけを取り込み、NuGet からリモート参照を取

100

Page 105: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル : Amazon Rekognition

Lambda アプリケーションの作成

り込みません。この問題は、使用する参照を右クリックし、[Restore Packages] を選択すると簡単に解決できます。

ファイルを検証する1. 1Function.cs ファイルを開き、設計図に付属するコードを確認します。コードの最初のセグメント

のは assembly 属性で、ファイルの先頭に追加されます。

// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.[assembly: LambdaSerializerAttribute(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]

デフォルトでは、Lambda はタイプ System.IO.Stream の戻り値型と入力パラメータのみを受け入れます。入力パラメータや戻り値型で型付きのクラスを使用するには、シリアライザーを登録する必要があります。この assembly 属性は、Lambda JSON シリアライザーを登録しています。これはNewtonsoft.Json を使用してストリームを型付きクラスに変換します。シリアライザーをアセンブリまたはメソッドレベルで設定できます。

このクラスには、2 つのコンストラクタがあります。1 つ目は、デフォルトコンストラクタで、Lambdaがユーザーの関数を呼び出すときに使用されます。このコンストラクタは S3 と Rekognition サービスクライアントを作成し、クライアントに対する AWS 認証情報を IAM ロールから取得します。このロールは、クライアントをデプロイするときに、関数に割り当てるものです。クライアントに対するAWS リージョンは、Lambda 関数が実行されているリージョンに設定されます。この設計図で必要なのは、Rekognition サービスでラベルに対する信頼が最小レベルである場合、S3 オブジェクトにタグを追加することだけです。このコンストラクタは環境変数 MinConfidence をチェックして、許容できる信頼レベルを決定します。この環境変数は、Lambda 関数をデプロイするときに、設定できます。

public Function(){ this.S3Client = new AmazonS3Client(); this.RekognitionClient = new AmazonRekognitionClient();

var environmentMinConfidence = System.Environment.GetEnvironmentVariable(MIN_CONFIDENCE_ENVIRONMENT_VARIABLE_NAME); if(!string.IsNullOrWhiteSpace(environmentMinConfidence)) { float value; if(float.TryParse(environmentMinConfidence, out value)) { this.MinConfidence = value; Console.WriteLine($"Setting minimum confidence to {this.MinConfidence}"); } else { Console.WriteLine($"Failed to parse value {environmentMinConfidence} for minimum confidence. Reverting back to default of {this.MinConfidence}"); } } else { Console.WriteLine($"Using default minimum confidence of {this.MinConfidence}"); }}

テスト用に 2 番目のコンストラクタを使用できます。テストプロジェクトでは、独自の S3 およびRekognition クライアントを構成して、渡します。

101

Page 106: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル : Amazon Rekognition

Lambda アプリケーションの作成

public Function(IAmazonS3 s3Client, IAmazonRekognition rekognitionClient, float minConfidence){ this.S3Client = s3Client; this.RekognitionClient = rekognitionClient; this.MinConfidence = minConfidence;}

FunctionHandler は、インスタンスの作成後に Lambda が呼び出すメソッドです。入力パラメータは S3Event 型で Stream ではないことに注意してください。これができるのは、登録された LambdaJSON シリアライザーのためです。S3Event には Amazon S3 でトリガーされたイベントに関するすべての情報が含まれています。関数は、イベントの一部であるすべての S3 オブジェクトをループし、Rekognition に対しラベルの検出を指示します。ラベルが検出された後、それらは S3 オブジェクトにタグとして追加されます。

public async Task FunctionHandler(S3Event input, ILambdaContext context){ foreach(var record in input.Records) { if(!SupportedImageTypes.Contains(Path.GetExtension(record.S3.Object.Key))) { Console.WriteLine($"Object {record.S3.Bucket.Name}:{record.S3.Object.Key} is not a supported image type"); continue; }

Console.WriteLine($"Looking for labels in image {record.S3.Bucket.Name}:{record.S3.Object.Key}"); var detectResponses = await this.RekognitionClient.DetectLabelsAsync(new DetectLabelsRequest { MinConfidence = MinConfidence, Image = new Image { S3Object = new Amazon.Rekognition.Model.S3Object { Bucket = record.S3.Bucket.Name, Name = record.S3.Object.Key } } });

var tags = new List(); foreach(var label in detectResponses.Labels) { if(tags.Count < 10) { Console.WriteLine($"\tFound Label {label.Name} with confidence {label.Confidence}"); tags.Add(new Tag { Key = label.Name, Value = label.Confidence.ToString() }); } else { Console.WriteLine($"\tSkipped label {label.Name} with confidence {label.Confidence} because maximum number of tags reached"); } }

await this.S3Client.PutObjectTaggingAsync(new PutObjectTaggingRequest { BucketName = record.S3.Bucket.Name,

102

Page 107: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル : Amazon Rekognition

Lambda アプリケーションの作成

Key = record.S3.Object.Key, Tagging = new Tagging { TagSet = tags } }); } return;}

コードには Console.WriteLine() の呼び出しが含まれていることに注意してください。Lambda で関数が実行されている場合、すべての Console.WriteLine() の呼び出しを Amazon CloudWatchLogs にリダイレクトします。

2. 設計図が作成した aws-lambda-tools-defaults.json ファイルを開きます。このファイルには、設計図で設定されたデフォルト値が含まれます。これはデプロイウィザードの一部のフィールドを事前設定するのに役立ちます。また、新しい .NET Core CLI と統合するときのコマンドラインオプション設定にも役立ちます。これを使用するには、関数のプロジェクトディレクトリに移動し、dotnet lambdahelp と入力します。

重要なフィールドは FunctionHandler です。これは、起動しようとしている関数に対応したコードでの呼び出しメソッドを Lambda に示します。このフィールドの形式は <assembly-name>::<full-type-name>::<method-name> です。型名に名前空間を必ず含めるようにしてください。

関数をデプロイする1. Lambda プロジェクトを右クリックし、[Publish to AWS Lambda] を選択します。デプロイウィザード

が起動します。多くのフィールドがすでに設定されていることに注意してください。これらの値は前に説明した aws-lambda-tools-defaults.json ファイルから取得されます。

2. 関数名を入力します。この例では、ImageRekognition を使用し、[Next] を選択します。

103

Page 108: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル : Amazon Rekognition

Lambda アプリケーションの作成

3. [Advanced Function Details] ページで、S3 と Rekognition にアクセスするコードに対してアクセス権限を付与する IAM ロールを選択します。この設定を短縮するには、[Power User managed policy] を選択します。ツールはこのポリシーに基づいてロールを作成します。

4. 最後に、環境変数 MinConfidence を 60 に設定し、[Upload] を選択します。

これにより Lambda プロジェクトをビルド、パッケージ化するデプロイプロセスが起動され、Lambda関数が作成されます。公開が完了すると、[Function] ビューが [AWS Explorer] ウィンドウに表示されます。ここから、テスト関数を呼び出し、関数の CloudWatch Logs を表示し、イベントソースを設定できます。

104

Page 109: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル : Amazon Rekognition

Lambda アプリケーションの作成

5. 関数がデプロイされたら、Amazon S3 を設定してそのイベントを新しい関数に送信するようにする必要があります。[Event Sources] タブで、[Add] を選択します。自分の Lambda 関数に接続する AmazonS3 とバケットを選択します。バケットは、Lambda 関数がデプロイされるリージョンと同じリージョンに存在する必要があります。

関数をテストするこれで、関数がデプロイされ、イベントのソースとして S3 バケットが関数に対して設定されたので、S3バケットブラウザを [AWS Explorer] から、選択したバケットに対して開きます。次に、いくつかのイメージをアップロードします。

アップロードが完了すると、使用する関数のビューからログを調べることで、関数が実行されたことを確認できます。または、バケットブラウザ内のイメージを右クリックし、[Properties] を選択します。[Tags]タブで、使用するオブジェクトに適用されたタグを表示できます。

105

Page 110: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドチュートリアル: AWS Lambda で Amazon Logging

Frameworks を使用してアプリケーションログを作成する

チュートリアル: AWS Lambda で Amazon LoggingFrameworks を使用してアプリケーションログを作成するAmazon CloudWatch Logs を使用して、アプリケーションのログのモニタリング、保存、アクセスを行うことができます。CloudWatch Logs でログデータを取得するには、AWS SDK を使うか、またはCloudWatch Logs エージェントをインストールして、特定のログフォルダをモニタリングします。今日では、CloudWatch Logs とよく使われるいくつかの .NET ログ記録フレームワークの統合により、.NET アプリケーションでの CloudWatch Logs の使用がより容易になりました。

サポートされる .NET ログ記録フレームワークは、NLog、Log4net、および新たに組み込まれた ASP.NETCore ログ記録フレームワークです。各フレームワークでは、適切な NuGet パッケージを追加して、出力ソースとして CloudWatch Logs を追加するだけで、通常と同じようにログ記録ライブラリを使用できます。

たとえば、NLog を使った .NET アプリケーションで CloudWatch Logs を使用するには、AWS.Logger.NLog NuGet パッケージを追加し、NLog.config ファイルに AWS ターゲットを追加します。以下の例は、ログメッセージを CloudWatch Logs とコンソールの両方に出力する NLog.configファイルを示します。

<?xml version="1.0" encoding="utf-8" ?><nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="true"> <targets>

106

Page 111: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイド.NET Core CLI を使用して AWS

Lambda プロジェクトをデプロイする

<target name="aws" type="AWSTarget" logGroup="NLog.ConfigExample" region="us-east-1"/> <target name="logfile" xsi:type="Console" layout="${callsite} ${message}" /> </targets> <rules> <logger name="*" minlevel="Info" writeTo="logfile,aws" /> </rules></nlog>

以上の手順の実行後に、アプリケーションを実行すると、NLog を使って書き込まれるログメッセージはCloudWatch Logs に送信されます。ほぼリアルタイムで、CloudWatch Logs コンソールにアプリケーションのログメッセージを表示できます。CloudWatch Logs コンソールから、アプリケーションのログメッセージに基づくメトリクスとアラームをセットアップすることもできます。

これらのログ記録プラグインは、すべて AWS SDK for .NET 上に構築されており、AWS 認証情報を検索するために、SDK で使用されているものと同じ動作を使用します。ログ記録プラグインで使用される認証情報は、CloudWatch Logs にアクセスするために、次のアクセス許可を必要とします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ]}

AWS .NET ログ記録プラグインは、GitHub での新しいオープンソースプロジェクトです。プラグインに関する、サンプルや、サポートされる各 .NET ログ記録フレームワークのための CloudWatch Logs の設定手順などの、さまざまな情報があります。

.NET Core CLI を使用して AWS Lambda プロジェクトをデプロイする

AWS Toolkit for Visual Studio には Visual Studio 用の AWS Lambda .NET Core プロジェクトテンプレートが含まれています。.NET Core for Windows および Toolkit for Visual Studio をインストールする前に、Visual Studio 2015 Update 3 のインストールを完了している必要があります。.NET コアコマンドラインインターフェース (CLI) を使用して、Visual Studio に組み込まれた Lambda 関数をデプロイできます。

Note

Visual Studio で Lambda 関数を作成する方法については、「lambda」を参照してください。Microsoft .NET Core の詳細については、「.NET Core」を参照してください。Lambda 関数の詳細については、「AWS Lambda とは」を参照してください。

トピック• CLI を使用して使用可能な Lambda コマンドを一覧表示する (p. 108)• .NET Core CLI から .NET Core Lambda プロジェクトを発行する (p. 108)

107

Page 112: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイドCLI を使用して使用可能な Lambda コマンドを一覧表示する

CLI を使用して使用可能な Lambda コマンドを一覧表示する.NET Core CLI を使って使用できるさまざまな Lambda コマンドがあります。

1. コマンドプロンプトを開いて、Visual Studio の .NET Core Lambda プロジェクトが含まれるフォルダに移動します。

2. dotnet lambda --help と入力します。

C:\Lambda\AWSLambda1\AWSLambda1>dotnet lambda --help AWS Lambda Tools for .NET Core functions Project Home: https://github.com/aws/aws-lambda-dotnet . Commands to deploy and manage |LAM| functions: . deploy-function Deploy the project to |LAM| invoke-function Invoke the function in |LAM| with an optional input list-functions List all of your |LAM| functions delete-function Delete a |LAM| function get-function-config Get the current runtime configuration for a |LAM| function update-function-config Update the runtime configuration for a |LAM| function . Commands to deploy and manage AWS Serverless applications using |CFNlong|: . deploy-serverless Deploy an AWS Serverless application list-serverless List all of your AWS Serverless applications delete-serverless Delete an AWS Serverless application . Other Commands: . package Package a |LAM| project into a .zip file ready for deployment . To get help on individual commands execute:

dotnet lambda help <command>

.NET Core CLI から .NET Core Lambda プロジェクトを発行する次の手順では、Visual Studio で AWS Lambda .NET Core 関数を作成したと想定しています。

1. コマンドプロンプトを開いて、Visual Studio の .NET Core Lambda プロジェクトが含まれるフォルダに移動します。

2. dotnet lambda deploy-function と入力します。

#. プロンプトが表示されたら、デプロイする関数の名前を入力します。新しい名前または既存の関数の名前を入力できます。

1. プロンプトが表示されたら、AWS リージョン (Lambda 関数がデプロイされるリージョン) を入力します。

2. プロンプトが表示されたら、関数が実行されるときに Lambda が継承する IAM ロールを選択または作成します。

3. 正常に完了すると、[New Lambda function created] のメッセージが表示されます。

108

Page 113: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイド.NET Core CLI から .NET Core

Lambda プロジェクトを発行する

C:\Lambda\AWSLambda1\AWSLambda1>dotnet lambda deploy-functionExecuting publish command... invoking 'dotnet publish', working folder 'C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish'... publish: Publishing AWSLambda1 for .NETCoreApp,Version=v1.0... publish: Project AWSLambda1 (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing... publish: Compiling AWSLambda1 for .NETCoreApp,Version=v1.0... publish: Compilation succeeded.... publish: 0 Warning(s)... publish: 0 Error(s)... publish: Time elapsed 00:00:01.2479713... publish:... publish: publish: Published to C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish... publish: Published 1/1 projects successfullyZipping publish folder C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish to C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\AWSLambda1.zipEnter Function Name: (AWS Lambda function name)DotNetCoreLambdaTestEnter AWS Region: (The region to connect to AWS services)us-west-2Creating new Lambda functionSelect IAM Role that Lambda will assume when executing function: 1) lambda_exec_LambdaCoreFunction 2) *** Create new IAM Role ***1New Lambda function created

既存の関数をデプロイする場合は、AWS リージョンの入力のみを求められます。

C:\Lambda\AWSLambda1\AWSLambda1>dotnet lambda deploy-functionExecuting publish commandDeleted previous publish folder... invoking 'dotnet publish', working folder 'C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish'... publish: Publishing AWSLambda1 for .NETCoreApp,Version=v1.0... publish: Project AWSLambda1 (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.... publish: publish: Published to C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish... publish: Published 1/1 projects successfullyZipping publish folder C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish to C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\AWSLambda1.zipEnter Function Name: (AWS Lambda function name)DotNetCoreLambdaTestEnter AWS Region: (The region to connect to AWS services)us-west-2Updating code for existing function

Lambda 関数はデプロイされると、使用できる状態になっています。「AWS Lambda の使用方法の例」を参照してください。

Lambda は Lambda 関数を自動的にモニタリングし、Amazon CloudWatch を使ってメトリクスを報告します。Lambda 関数のモニタリングおよびトラブルシューティングを行うには、「Amazon CloudWatch を使用した AWS Lambda 関数のトラブルシューティングとモニタリング」を参照してください。

109

Page 114: AWS Toolkit for Visual Studio - ユーザーガイド · AWS Toolkit for Visual Studio ユーザーガイド Amazon's trademarks and trade dress may not be used in connection with

AWS Toolkit for Visual Studio ユーザーガイド

ドキュメント履歴以下の表は、『Toolkit for Visual Studio User Guide』の前回リリース以降の重要な変更点をまとめたものです。

文書の最終更新日: 2018 年 6 月 18 日

変更 説明 リリース日

ASP.NET Core Details が追加されました

AWS Elastic Beanstalk デプロイウィザードで ASP.NET Coreアプリケーションをサポートするようになりました。詳細については、「Deploying anASP.NET Core Application toElastic Beanstalk (p. 23)」を参照してください。

2016 年 7 月 25 日

デプロイウィザードが修正されました

新しい Publish to ElasticBeanstalk ウィザードが導入されました。詳細については、「Deploying to ElasticBeanstalk (p. 18)」を参照してください。この新しいウィザードの導入により、[Publish toAmazon Web Services] ウィザードがレガシーステータスに移動されました。詳細については、「Elastic Beanstalk へのデプロイ (レガシー) (p. 31)」と「AWSCloudFormation へのデプロイ(レガシー) (p. 36)」を参照してください。

2014 年 12 月 17 日

Amazon VPC のサポート Amazon Virtual Private Cloud のサポートが追加されました。

2013 年 4 月 4 日

新規リリース これは、『Toolkit for VisualStudio User Guide』バージョン3.0 です。

2012 年 6 月 8 日

110