ステップ 4: Hello World アプリケーションをデプロイする - AWS CodeDeploy

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 4: Hello World アプリケーションをデプロイする

ここで、Amazon S3 にアップロードした Hello World サンプルアプリケーションのリビジョンをデプロイします。 AWS CLI または CodeDeploy コンソールを使用してリビジョンをデプロイし、デプロイの進行状況をモニタリングします。アプリケーションリビジョンが正常にデプロイされた後に、その結果を確認します。

を使用してアプリケーションリビジョンをデプロイする CodeDeploy

または CLIコンソールを使用してアプリケーションをデプロイできます。

アプリケーションリビジョンをデプロイするには (CLI)

  1. まず、デプロイにはデプロイグループが必要です。ただし、デプロイグループを作成する前に、サービスロール が必要ですARN。サービスロールは、ユーザーに代わって行動するアクセス許可をサービスに付与するIAMロールです。この場合、サービスロールは Amazon EC2インスタンスにアクセスして Amazon EC2インスタンスタグを拡張 (読み取り) する CodeDeploy アクセス許可を付与します。

    すでに サービスロールの作成 (CLI) の手順に従ってサービスロールを作成している必要があります。サービスロールARNの を取得するには、「」を参照してくださいサービスロール ARN の取得 (CLI)

  2. ができたのでARN、 create-deployment-group コマンドを呼び出しHelloWorld_DepGroupて、 という名前の Amazon EC2インスタンスタグCodeDeployDemoと という名前のデプロイ設定を使用してHelloWorld_App、 という名前のアプリケーションに関連付けられた という名前のデプロイグループをCodeDeployDefault.OneAtATimeサービスロール で作成しますARN。

    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 アラームを設定するオプションもサポートしています。このチュートリアルでは、これらのアクションコマンドは含まれていません。

  3. デプロイを作成する前に、デプロイグループのインスタンスに 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:00 に更新を試みます。 CodeDeploy エージェントの詳細については、 CodeDeploy 「 エージェントの操作」を参照してください。Systems Manager のさらなる詳細については、「AWS Systems Managerとは」 を参照してください。

  4. 次に、create-deployment コマンドを呼び出して、amzn-s3-demo-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=amzn-s3-demo-bucket,bundleType=zip,key=HelloWorld_App.zip

アプリケーションリビジョン (コンソール) のデプロイ

  1. CodeDeploy コンソールを使用してアプリケーションリビジョンをデプロイする前に、サービスロール が必要ですARN。サービスロールは、ユーザーに代わって行動するアクセス許可をサービスに付与するIAMロールです。この場合、サービスロールは Amazon EC2インスタンスにアクセスして Amazon EC2インスタンスタグを拡張 (読み取り) する CodeDeploy アクセス許可を付与します。

    すでに サービスロールの作成 (コンソール) の手順に従ってサービスロールを作成している必要があります。サービスロールARNの を取得するには、「」を参照してくださいサービスロール ARN の取得 (コンソール)

  2. これでARN、 が完成しました。 CodeDeploy コンソールを使用してアプリケーションリビジョンをデプロイできます。

    にサインイン AWS Management Console し、https://console.aws.amazon.com/codedeploy で CodeDeploy コンソールを開きます。

    注記

    の開始方法 CodeDeploy」で設定したのと同じユーザーでサインインします。

  3. ナビゲーションペインで Deploy を展開し、Applications を選択します。

  4. HelloWorld_App を選択します。

  5. [デプロイグループ] タブで、[デプロイグループの作成] を選択します。

  6. [Deployment group name] (デプロイグループ名) に「HelloWorld_DepGroup」と入力します。

  7. [サービスロール] で、サービスロールの名前を選択します。

  8. [デプロイタイプ] で、[インプレース] を選択します。

  9. 環境設定 で、Amazon EC2インスタンス を選択します。

  10. を使用した エージェント設定 AWS Systems Managerでは、デフォルトのままにします。

  11. [Key] (キー) に、「Name」と入力します。

  12. [値] には「CodeDeployDemo」と入力します。

  13. デプロイ設定 で、 を選択しますCodeDeployDefault。OneAtATime

  14. [ロードバランサー] で、[Enable load balancing (ロードバランシングの有効化)] をオフにします。

  15. デプロイグループの作成 を選択します。

  16. [Create deployment] を選択します。

  17. デプロイグループ で、HelloWorld_DepGroup を選択します。

  18. [リビジョンタイプ] では [アプリケーションは Amazon S3 に格納されています] を選択し、[リビジョンの場所] では以前に Amazon S3 にアップロードしたサンプルの Hello World アプリケーションリビジョンの場所を入力します。場所の取得

    1. で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/s3/

    2. バケットのリストで、amzn-s3-demo-bucket (またはアプリケーションリビジョンをアップロードしたバケットの名前) を選択します。

    3. オブジェクトのリストで、HelloWorld_App.zip を選択します。

    4. [概要] タブで、[パスのコピー] を選択します。

    5. CodeDeploy コンソールに戻り、リビジョンロケーション リンクフィールド値を貼り付けます。

  19. [リビジョンファイルの種類] で、[.zip] を選択します。

  20. (オプション) [デプロイの説明] にコメントを入力します。

  21. [Create deployment] を選択します。新しく作成されたデプロイに関する情報は [Deployments] ページに表示されます。

デプロイをモニタリングおよびトラブルシューティングします。

AWS CLI または コンソールを使用して、デプロイをモニタリングおよびトラブルシューティングします。

デプロイをモニタリングしてトラブルシューティングするには (CLI)

  1. HelloWorld_App という名前のアプリケーションと HelloWorld_DepGroup という名前のデプロイグループに対して list-deployments コマンドを呼び出して、デプロイの ID を取得します。

    aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
  2. デプロイ ID を使用して get-deployment コマンドを呼び出します。

    aws deploy get-deployment --deployment-id deploymentID --query "deploymentInfo.status" --output text
  3. コマンドはデプロイの全体ステータスを返します。成功すると、値は Succeeded になります。

    全体的なステータスが の場合Failedlist-deployment-instancesや などのコマンドget-deployment-instanceを呼び出してトラブルシューティングできます。トラブルシューティングの他のオプションについては、「ログファイルの分析によるインスタンスでのデプロイの失敗の調査」を参照してください。

デプロイ (コンソール) をモニタリングおよびトラブルシューティングするには

CodeDeploy コンソールのデプロイページで、ステータス列でデプロイのステータスをモニタリングできます。

特に [Status] 列の値が [Succeeded] 以外の値である場合にデプロイに関する詳細情報を取得するには。

  1. [デプロイ] テーブルで、デプロイ ID を選択します。デプロイが失敗したら、失敗の原因を説明するメッセージがデプロイの詳細ページに表示されます。

  2. インスタンスのデプロイに関する詳細情報が表示されます。デプロイが失敗すると、デプロイが失敗した Amazon EC2インスタンスとステップを判断できる場合があります。

  3. より多くのトラブルシューティングを行う場合、View Instance Details のような手法を使用できます。Amazon EC2インスタンスのデプロイログファイルを分析することもできます。詳細については、「ログファイルの分析によるインスタンスでのデプロイの失敗の調査」を参照してください。

デプロイの確認

デプロイが成功したら、インストールが動作していることを確認します。Amazon EC2インスタンスのパブリックDNSアドレスを使用して、ウェブブラウザでウェブページを表示します。(パブリックDNS値を取得するには、Amazon EC2コンソールで 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 ウェブページが表示されます。