翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 4: Hello World アプリケーションをデプロイする
ここで、Amazon S3 にアップロードした Hello World サンプルアプリケーションのリビジョンをデプロイします。 AWS CLI または CodeDeploy コンソールを使用してリビジョンをデプロイし、デプロイの進行状況をモニタリングします。アプリケーションリビジョンが正常にデプロイされた後に、その結果を確認します。
でアプリケーションリビジョンをデプロイする CodeDeploy
アプリケーションをデプロイするには、CLI またはコンソールを使用できます。
アプリケーションリビジョン (CLI) をデプロイするには
-
まず、デプロイにはデプロイグループが必要です。ただし、デプロイグループを作成する前に、サービスロール ARN が必要です。サービスロールは、ユーザーに代わってサービスアクセス権限を付与する IAM ロールです。この場合、サービスロールは Amazon EC2 インスタンスにアクセスして Amazon EC2 インスタンスタグを拡張 (読み取り) Amazon EC2する CodeDeploy アクセス許可を付与します。
すでに サービスロールの作成 (CLI) の手順に従ってサービスロールを作成している必要があります。サービスロールの ARN を取得するには、「サービスロール ARN の取得 (CLI) 」を参照してください。
-
ARN を取得したら、create-deployment-group コマンドを呼び出して、
HelloWorld_DepGroup
という名前のアプリケーションと関連付けられるHelloWorld_App
という名前のデプロイグループを作成し、CodeDeployDemo
という名前の Amazon EC2 インスタンスタグと、サービスロールARNと関連付けられるCodeDeployDefault.OneAtATime
という名前のデプロイ設定を使用します。aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-role-arn
serviceRoleARN
注記
create-deployment-group コマンドは、デプロイとインスタンスで指定されたイベントに関する Amazon SNS 通知をトピックサブスクライバーに送信するトリガーの作成をサポートします。このコマンドは、Amazon アラームのしきい値をモニタリングするときにデプロイを自動的にロールバックし、デプロイを停止するように CloudWatch アラームを設定するオプションもサポートしています。このチュートリアルでは、これらのアクションコマンドは含まれていません。
-
デプロイを作成する前に、デプロイグループ内のインスタンスに CodeDeploy エージェントがインストールされている必要があります。 AWS Systems Manager で次のコマンドを使用して、コマンドラインからエージェントをインストールできます。
aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo --parameters action=Install,name=AWSCodeDeployAgent --schedule-expression "cron(0 2 ? * SUN *)"
このコマンドは、Systems Manager ステートマネージャーに関連付けを作成し、 CodeDeploy エージェントをインストールして、毎週日曜日の午前 2 時に更新を試みます。 CodeDeploy エージェントの詳細については、 CodeDeploy 「 エージェントの使用」を参照してください。Systems Manager のさらなる詳細については、「AWS Systems Managerとは」 を参照してください。
-
次に、create-deployment コマンドを呼び出して、
DOC-EXAMPLE-BUCKET
という名前のバケットでHelloWorld_App.zip
という名前のアプリケーションバージョンを使用して、HelloWorld_App
という名前のアプリケーション、CodeDeployDefault.OneAtATime
という名前のデプロイ設定とHelloWorld_DepGroup
という名前のデプロイグループに関連付けられるデプロイを作成します。aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=DOC-EXAMPLE-BUCKET,bundleType=zip,key=HelloWorld_App.zip
アプリケーションリビジョン (コンソール) のデプロイ
-
CodeDeploy コンソールを使用してアプリケーションリビジョンをデプロイする前に、サービスロール ARN が必要です。サービスロールは、ユーザーに代わってサービスアクセス権限を付与する IAM ロールです。この場合、サービスロールは Amazon EC2 インスタンスにアクセスして Amazon EC2 インスタンスタグを拡張 (読み取り) Amazon EC2する CodeDeploy アクセス許可を付与します。
すでに サービスロールの作成 (コンソール) の手順に従ってサービスロールを作成している必要があります。サービスロールの ARN を取得するには、「サービスロール ARN の取得 (コンソール) 」を参照してください。
-
ARN を取得したら、 CodeDeploy コンソールを使用してアプリケーションリビジョンをデプロイできます。
にサインイン AWS Management Console し、https://console.aws.amazon.com/codedeploy
で CodeDeploy コンソールを開きます。 注記
「の開始方法 CodeDeploy」で設定したのと同じユーザーでサインインします。
ナビゲーションペインで Deploy を展開し、Applications を選択します。
-
HelloWorld_App を選択します。
-
[デプロイグループ] タブで、[デプロイグループの作成] を選択します。
-
[Deployment group name] (デプロイグループ名) に「
HelloWorld_DepGroup
」と入力します。 -
[サービスロール] で、サービスロールの名前を選択します。
-
[デプロイタイプ] で、[インプレース] を選択します。
-
[環境設定] で、[Amazon EC2 インスタンス] を選択します。
-
を使用した エージェント設定では AWS Systems Manager、デフォルトのままにします。
-
[Key] (キー) に、「
Name
」と入力します。 -
[値] には「
CodeDeployDemo
」と入力します。 -
デプロイ設定 で、CodeDeployDefault.OneAtATime を選択します。
-
[ロードバランサー] で、[Enable load balancing (ロードバランシングの有効化)] をオフにします。
-
デプロイグループの作成 を選択します。
-
[Create deployment] を選択します。
-
デプロイグループ で、HelloWorld_DepGroup を選択します。
-
[リビジョンタイプ] では [アプリケーションは Amazon S3 に格納されています] を選択し、[リビジョンの場所] では以前に Amazon S3 にアップロードしたサンプルの Hello World アプリケーションリビジョンの場所を入力します。場所の取得
https://console.aws.amazon.com/s3/
でAmazon S3 コンソールを開きます。 -
バケットのリストで、DOC-EXAMPLE-BUCKET (またはアプリケーションリビジョンをアップロードしたバケットの名前) を選択します。
-
オブジェクトのリストで、HelloWorld_App.zip を選択します。
-
[概要] タブで、[パスのコピー] を選択します。
-
CodeDeploy コンソールに戻り、リビジョンロケーション に Link フィールド値を貼り付けます。
-
[リビジョンファイルの種類] で、[.zip] を選択します。
-
(オプション) [デプロイの説明] にコメントを入力します。
-
[Create deployment] を選択します。新しく作成されたデプロイに関する情報は [Deployments] ページに表示されます。
デプロイをモニタリングおよびトラブルシューティングします。
AWS CLI または コンソールを使用して、デプロイのモニタリングとトラブルシューティングを行います。
デプロイ (CLI) をモニタリングおよびトラブルシューティングするには
-
HelloWorld_App
という名前のアプリケーションとHelloWorld_DepGroup
という名前のデプロイグループに対して list-deployments コマンドを呼び出して、デプロイの ID を取得します。aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
-
デプロイ ID を使用して get-deployment コマンドを呼び出します。
aws deploy get-deployment --deployment-id
deploymentID
--query "deploymentInfo.status" --output text -
コマンドはデプロイの全体ステータスを返します。成功すると、値は
Succeeded
になります。全体的なステータスが の場合
Failed
、 list-deployment-instancesや などのコマンドget-deployment-instanceを呼び出してトラブルシューティングを行うことができます。トラブルシューティングの他のオプションについては、「ログファイルの分析によるインスタンスでのデプロイの失敗の調査」を参照してください。
デプロイ (コンソール) をモニタリングおよびトラブルシューティングするには
CodeDeploy コンソールのデプロイページで、ステータス列でデプロイのステータスをモニタリングできます。
特に [Status] 列の値が [Succeeded] 以外の値である場合にデプロイに関する詳細情報を取得するには。
-
[デプロイ] テーブルで、デプロイ ID を選択します。デプロイが失敗したら、失敗の原因を説明するメッセージがデプロイの詳細ページに表示されます。
-
インスタンスのデプロイに関する詳細情報が表示されます。デプロイ失敗後、デプロイが失敗した Amazon EC2 インスタンスおよびステップを特定できる場合があります。
-
より多くのトラブルシューティングを行う場合、View Instance Details のような手法を使用できます。また、Amazon EC2 インスタンスでデプロイログファイルを分析できます。詳細については、「ログファイルの分析によるインスタンスでのデプロイの失敗の調査」を参照してください。
デプロイの確認
デプロイが成功したら、インストールが動作していることを確認します。Amazon EC2 インスタンスのパブリック DNS アドレスを使用して、ウェブブラウザのウェブページを表示します。(Amazon EC2 コンソールでパブリック DNS 値を取得するには、 Amazon EC2 インスタンスを選択して [説明] タブで [パブリック DNS] で値を探します。)
例えば、Amazon EC2 インスタンスのパブリック DNS アドレスが ec2-01-234-567-890.compute-1.amazonaws.com
である場合、次の URL を使用します。
http://ec2-01-234-567-890.compute-1.amazonaws.com
成功すると、Hello World ウェブページが表示されます。