AWS CLI の開始方法 - AWS Proton

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

AWS CLI の開始方法

AWS CLI で AWS Proton を開始するには、このチュートリアルに従ってください。このチュートリアルでは、AWS Fargate をベースにした一般向けのロードバランサ― AWS Proton サービスを紹介します。このチュートリアルでは、画像が表示された静的 Web サイトをデプロイする CI/CD パイプラインもプロビジョニングします。

始める前に、正しく設定されていることを確認してください。詳細については、「前提条件」を参照してください。

ステップ 1: 環境テンプレートを作成する

このステップでは、管理者として、Amazon Elastic Container Service (Amazon ECS) クラスターと、2 つのパブリック/プライベートサブネットを持った Amazon Virtual Private Cloud (Amazon VPC) があるサンプル環境テンプレートを登録します。

環境テンプレートを登録する
  1. AWS Proton サンプル CloudFormation テンプレートリポジトリをあなたの GitHub アカウントまたは組織にフォークします。このリポジトリには、このチュートリアルで使用する環境テンプレートとサービステンプレートが含まれます。

    次に、フォークしたあなたのリポジトリを AWS Proton に登録します。詳細については、「あなたのリポジトリのリンクを作成して登録する」を参照してください。

  2. 環境テンプレートを作成します。

    環境テンプレートリソースは環境テンプレートのバージョンを追跡します。

    $ aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
  3. テンプレート同期設定を作成する

    AWS Proton は、あなたのリポジトリと環境テンプレートの同期関係を設定します。次に、DRAFT ステータスのテンプレートバージョン 1.0 を作成します。

    $ aws proton create-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" \ --repository-name "your-forked-repo" \ --repository-provider "GITHUB" \ --branch "your-branch" \ --subdirectory "environment-templates/fargate-env"
  4. 環境テンプレートのバージョンが正常に登録されるまでお待ちください。

    このコマンドが 0 の終了ステータスで戻ると、バージョン登録は完了です。これはスクリプトで次のステップでコマンドを正常に実行できるようにするのに便利です。

    $ aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
  5. 環境テンプレートをパブリッシュして環境作成で使用可能にします。

    $ aws proton update-environment-template-version \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

ステップ 2: サービステンプレートを登録する

このステップでは、あなたは管理者として、ロードバランサーと AWS CodePipeline を使用する CI/CD パイプラインの背後に Amazon ECS Fargate サービスをプロビジョニングするために必要なすべてのリソースを含むサンプルサービステンプレートを登録します。

サービステンプレートを登録する
  1. サービステンプレートを作成します。

    サービステンプレートリソースは、サービステンプレートのバージョンを追跡します。

    $ aws proton create-service-template \ --name "load-balanced-fargate-svc" \ --display-name "Load balanced Fargate service" \ --description "Fargate service with an application load balancer"
  2. テンプレート同期設定を作成する

    AWS Proton は、あなたのリポジトリとサービステンプレート間の同期関係を設定します。次に、DRAFT ステータスのテンプレートバージョン 1.0 を作成します。

    $ aws proton create-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE" \ --repository-name "your-forked-repo" \ --repository-provider "GITHUB" \ --branch "your-branch" \ --subdirectory "service-templates/load-balanced-fargate-svc"
  3. サービステンプレートバージョンが正常に登録されるまでお待ちください。

    このコマンドが 0 の終了ステータスで戻ると、バージョン登録は完了です。これはスクリプトで次のステップでコマンドを正常に実行できるようにするのに便利です。

    $ aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
  4. サービステンプレートをパブリッシュしてサービスの作成で使用可能にします。

    $ aws proton update-service-template-version \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

ステップ 3: 環境をデプロイする

このステップでは、管理者として、あなたは環境テンプレートから AWS Proton 環境をインスタンス化します。

環境をデプロイするには
  1. 登録した環境テンプレートのサンプル仕様ファイルを入手してください。

    このファイル environment-templates/fargate-env/spec/spec.yaml は、テンプレートサンプルリポジトリからダウンロードできます。または、リポジトリ全体をローカルで取得し、その environment-templates/fargate-env ディレクトリから create-environment コマンドを実行することもできます。

  2. 環境を作成します。

    AWS Proton は、あなたの環境仕様から入力値を読み取り、環境テンプレートと組み合わせ、AWS Proton サービスロールで、あなたの AWS アカウントの環境リソースをプロビジョニングします。

    $ aws proton create-environment \ --name "fargate-env-prod" \ --template-name "fargate-env" \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::123456789012:role/AWSProtonServiceRole" \ --spec "file://spec/spec.yaml"
  3. 環境が正常にデプロイされるまでお待ちください。

    $ aws proton wait environment-deployed --name "fargate-env-prod"

ステップ 4: サービスをデプロイする [アプリケーション開発者]

前のステップでは、管理者がサービステンプレートを登録してパブリッシュし、環境をデプロイしました。これで、アプリケーション開発者は、AWS Proton サービスを作成して AWS Proton 環境にデプロイできます。

サービスをデプロイする
  1. 管理者が登録したサービステンプレートのサンプル仕様ファイルを入手してください。

    このファイル service-templates/load-balanced-fargate-svc/spec/spec.yaml はテンプレートサンプルリポジトリからダウンロードできます。または、リポジトリ全体をローカルで取得し、その service-templates/load-balanced-fargate-svc ディレクトリから create-service コマンドを実行することもできます。

  2. AWS Proton サンプルサービスリポジトリをあなたの GitHub アカウントまたは組織にフォークします。このリポジトリには、このチュートリアルで使用するアプリケーションソースコードが含まれています。

  3. サービスを作成する

    AWS Proton は、あなたのサービス仕様から入力値を読み取り、あなたのサービステンプレートと組み合わせ、仕様で指定されている環境で、あなたの AWS アカウントのサービスリソースをプロビジョニングします。AWS CodePipeline パイプラインは、コマンドで指定したリポジトリからあなたのアプリケーションコードをデプロイします。

    $ aws proton create-service \ --name "static-website" \ --repository-connection-arn \ "arn:aws:codestar-connections:us-east-1:123456789012:connection/your-codestar-connection-id" \ --repository-id "your-GitHub-account/aws-proton-sample-services" \ --branch-name "main" \ --template-major-version 1 \ --template-name "load-balanced-fargate-svc" \ --spec "file://spec/spec.yaml"
  4. サービスが停止するのを待ちます。

    $ aws proton wait service-created --name "static-website"
  5. 出力を取得し、あなたの新しい Web サイトを表示します。

    次のコマンドを実行します。

    $ aws proton list-service-instance-outputs \ --service-name "static-website" \ --service-instance-name load-balanced-fargate-svc-prod

    コマンドの出力は、次のようになります。

    { "outputs": [ { "key": "ServiceURL", "valueString": "http://your-service-endpoint.us-east-1.elb.amazonaws.com" } ] }

    ServiceURL インスタンス出力の値は、あなたの新しいサービス Web サイトのエンドポイントです。あなたのブラウザを使用してそのサイトに移動します。では、次のタイプのパラメータを使用できます。

    
              CLI 手順を実行した結果のスタティックイメージサイトを表示する Web ブラウザ

ステップ 5: クリーンアップする (オプション)

このステップでは、このチュートリアルの一部として作成した AWS リソースの確認が終わり、これらのリソースに関連するコストを節約するために、リソースを削除します。

チュートリアルのリソースを削除する
  1. サービスを消去するには、次のコマンドを実行します。

    $ aws proton delete-service --name "static-website"
  2. 環境を削除するには、次のコマンドを実行します 。

    $ aws proton delete-environment --name "fargate-env-prod"
  3. テンプレートを削除するには、次のコマンドを実行します。

    $ aws proton delete-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE" $ aws proton delete-service-template --name "load-balanced-fargate-svc"
  4. 環境テンプレートを削除するには、次のコマンドを実行します。

    $ aws proton delete-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" $ aws proton delete-environment-template --name "fargate-env"