翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 3: 「Hello, World!」をアップロードする Amazon S3 へのアプリケーション
次に、ソースコンテンツを準備し、デプロイ CodeDeploy できる場所にアップロードします。次の手順では、Amazon S3 バケットをプロビジョニングしてバケット用のアプリケーションリビジョンのファイルを準備し、リビジョンのファイルをバンドルしてから、そのリビジョンをバケットにプッシュする方法を示します。
注記
このチュートリアルでは説明していませんが、 CodeDeploy を使用して GitHub リポジトリからインスタンスにアプリケーションをデプロイできます。詳細については、「 CodeDeploy との統合 GitHub」を参照してください。
トピック
Amazon S3 バケットをプロビジョニングします
ストレージコンテナあるいは Amazon S3 バケット を作成、または既存のバケットを使用します。リビジョンをバケットにアップロードでき、デプロイで使用される Amazon EC2インスタンスがバケットからリビジョンをダウンロードできることを確認してください。
AWS CLI、Amazon S3 コンソール、または Amazon S3 を使用して Amazon S3 バケットAPIsを作成できます。バケットを作成したら、必ずバケットとユーザーにアクセス許可を付与してください CodeDeploy。
注記
バケット名は、すべての AWS アカウントで Amazon S3 全体で一意である必要があります。amzn-s3-demo-bucket
を使用できない場合、amzn-s3-demo-bucket
の後にダッシュと自分の名前のイニシャル、または他の一意な識別子など別のバケット名を試してください。このチュートリアル全体で、バケット名を amzn-s3-demo-bucket
に置き換えます。
Amazon S3 バケットは、ターゲット Amazon EC2インスタンスが起動されるのと同じ AWS リージョンに作成する必要があります。例えば、米国東部 (バージニア北部) リージョンでバケットを作成する場合、ターゲット Amazon EC2インスタンスは米国東部 (バージニア北部) リージョンで起動する必要があります。
Amazon S3 バケットを作成するには (CLI)
mb コマンドを呼び出して、amzn-s3-demo-bucket
という名前の Amazon S3 バケットを作成します。
aws s3 mb s3://amzn-s3-demo-bucket --region
region
Amazon S3 バケット (コンソール) の作成
-
で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/s3/
。 -
Amazon S3 コンソールで [バケットの作成] を選択します。
-
[Bucket name] ボックスで、バケットの名前を入力します。
-
[Region] リストで、ターゲットリージョンを選択し、[Create] を選択します。
Amazon S3 バケットと AWS アカウントに許可を付与する
Amazon S3 バケットへのアップロードには、許可が必要です。Amazon S3 バケットポリシーで、これらのアクセス許可を指定できます。例えば、次の Amazon S3 バケットポリシーでは、ワイルドカード文字 (*) を使用すると、 AWS アカウント111122223333
は という名前の Amazon S3 バケット内の任意のディレクトリにファイルをアップロードできますamzn-s3-demo-bucket
。
{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "111122223333" ] } } ] }
AWS アカウント ID を表示するには、AWS 「アカウント ID の検索」を参照してください。
これで、Amazon S3 バケットが参加する各 Amazon EC2インスタンスからのダウンロードリクエストを許可することを確認する良いタイミングです。Amazon S3 バケットポリシーで、これを指定できます。例えば、次の Amazon S3 バケットポリシーでは、ワイルドカード文字 (*) を使用すると、 を含むIAMインスタンスプロファイルがアタッチされた Amazon EC2インスタンスが、 という名前の Amazon S3 バケット内の任意のディレクトリからファイルARNarn:aws:iam::444455556666:role/CodeDeployDemo
をダウンロードできるようになりますamzn-s3-demo-bucket
。 Amazon S3
{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }
Amazon S3 バケットポリシーを生成しアタッチする方法の詳細については、「バケットポリシーの例」を参照してください。
で作成した CodeDeploy 管理ユーザーには、Amazon S3 バケットにリビジョンをアップロードするアクセス許可もステップ 1: セットアップ必要です。これを指定する 1 つの方法は、ユーザーのアクセス許可セットに追加するIAMポリシー、またはIAMロール (ユーザーに引き受けさせる) を使用することです。次のIAMポリシーでは、 という名前の Amazon S3 バケット内の任意の場所にリビジョンをアップロードできますamzn-s3-demo-bucket
。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":["s3:PutObject"], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
IAM ポリシーの作成方法については、「 ユーザーガイド」のIAM「ポリシーの作成」を参照してください。 IAM アクセス権限セットにポリシーを追加する方法については、「AWS IAM Identity Center ユーザーガイド」の「アクセス権限セットを作成します。」を参照してください。
バケットのアプリケーションファイルを準備する
ウェブページ、 AppSpec ファイル、スクリプトが次のように開発マシンに整理されていることを確認します。
c:\ |-- temp\ |--HelloWorldApp\ |-- appspec.yml |-- before-install.bat |-- index.html
アプリケーションのファイルを 1 つのアーカイブファイルにバンドルし、アーカイブファイルをプッシュする
ファイルをアーカイブファイル (アプリケーションリビジョンとも呼ばれる) にバンドルします。
注記
バケットにオブジェクトを保存したり、バケットの内外にアプリケーションのリビジョンを転送したりする場合に課金されることがあります。詳細については、「Amazon S3 の料金
-
開発マシンで、ファイルが保存されたフォルダに切り替えます。
cd c:\temp\HelloWorldApp
注記
このフォルダに切替わらなければ、ファイルのバンドルは現在のフォルダで起動されます。例えば、現在のフォルダが
c:\temp
ではなくc:\temp\HelloWorldApp
である場合、バンドルは、c:\temp
サブフォルダ以上を含む可能性のあるHelloWorldApp
フォルダ内のファイルとサブフォルダから開始します。 -
create-application コマンドを呼び出して、
HelloWorld_App
という名前の新しいアプリケーションを に登録します CodeDeploy。aws deploy create-application --application-name HelloWorld_App
-
CodeDeploy プッシュコマンドを呼び出してファイルをバンドルし、Amazon S3 にリビジョンをアップロードし、アップロードされたリビジョン CodeDeploy に関する情報を に登録します。これらはすべて 1 つのアクションで実行できます。
aws deploy push --application-name HelloWorld_App --s3-location s3://amzn-s3-demo-bucket/HelloWorld_App.zip --ignore-hidden-files
このコマンドは、現在のディレクトリ (非表示ファイルを除く) のファイルを という名前の単一のアーカイブファイルにバンドルし
HelloWorld_App.zip
、リビジョンをamzn-s3-demo-bucket
バケットにアップロードし、アップロードされたリビジョン CodeDeploy に関する情報を に登録します。