の開始方法 AWS CLI - AWS Proton

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

の開始方法 AWS CLI

AWS Proton の使用を開始するには AWS CLI、このチュートリアルに従います。このチュートリアルでは、 に基づくパブリック向けロードバランシング AWS Proton サービスを示します AWS Fargate。このチュートリアルでは、画像が表示された静的 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: サービステンプレートを登録する

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

サービステンプレートを登録する
  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/AWS ProtonServiceRole" \ --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手順の結果として静的イメージサイトを表示するウェブブラウザ

ステップ 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"