[Create a service (サービスを作成)] - AWS Proton

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

[Create a service (サービスを作成)]

AWS Proton でアプリケーションをデプロイするには、あなたは開発者としてサービスを作成し、次の情報を入力します。

  1. プラットフォームチームによってパブリッシュされる AWS Proton サービステンプレートの名前。

  2. サービスの名前。

  3. デプロイする必要があるサービスインスタンスの数。

  4. 使用したい環境の選択。

  5. サービスパイプラインを含むサービステンプレートを使用している場合、コードリポジトリへの接続 (オプション)。

サービスには何が含まれていますか?

AWS Proton サービスを作成するとき、2 種類のサービステンプレートのいずれかを選択できます。

  • サービスパイプラインを含むサービステンプレート (デフォルト)。

  • サービスパイプラインを含まないサービステンプレート (デフォルト)。

サービスを作成する際には 1 つのサービスインスタンスを作成する必要があります。

サービスインスタンスとオプションのパイプラインはサービスに関連付けられています。パイプラインインスタンスを作成または削除できるのは、サービスの作成および削除アクションのコンテキスト内のみに限られます。サービスからインスタンスを追加および削除する方法については、「サービスを編集する」を参照してください。

注記

あなたの環境は、AWS プロビジョニングまたはセルフマネージドプロビジョニングのいずれかに設定されています。 AWS Proton は環境で使用されているプロビジョニング方法で、環境内のサービスをプロビジョニングします。サービスインスタンスの作成や更新をする開発者は設定の違いを認識できず、どちらの場合も行うことは同じです。

プロビジョニングの方法については、「AWS Proton ではどのようにしてインフラストラクチャがプロビジョニングされるのか」を参照してください。

サービステンプレート

サービステンプレートのメジャーバージョンとマイナーバージョンの両方を使用できます。コンソールを使用する際には、サービステンプレートの最新の Recommended メジャーバージョンとマイナーバージョンを選択します。AWS CLI を使用してサービステンプレートのメジャーバージョンのみを指定する際には、暗黙的にその最新の Recommended マイナーバージョンを指定します。

以下では、メジャーとマイナーのテンプレートバージョンの違いと、その使用方法について説明します。

  • テンプレートの新しいバージョンは、プラットフォームチームのメンバーによって承認されるとすぐに Recommended になります。つまり、そのバージョンを使用して新しいサービスが作成され、既存のサービスを新しいバージョンに更新するように求められます。

  • AWS Proton を通して、プラットフォームチームは、サービスインスタンスを新しいマイナーバージョンのサービステンプレートに自動的に更新できます。マイナーバージョンは下位互換でなければなりません。

  • メジャーバージョンでは、更新プロセスの一環として新しい入力を提供する必要があるので、サービスをそのサービステンプレートのメジャーバージョンに更新する必要があります。メジャーバージョンは下位互換ではありません

[Create a service (サービスを作成)]

以下の手順は、てサービスパイプラインの有無にかかわらず、AWS Proton コンソールまたは AWS CLI でサービスを作成する方法です。

AWS Management Console
以下の手順に示すように、コンソールで標準サービスを作成します。
  1. AWS Proton コンソールで、[Services (サービス)] を選択します。

  2. [Create service (サービスの作成)] を選択します。

  3. [Choose a service template (サービステンプレートを選択する)] ページでテンプレートを選択して [Configure (設定する)] を選択します。

    有効化したパイプラインを使用したくない場合、サービスについて [Excludes pipeline (パイプラインを除外)] のマークが付いたテンプレートを選択します。

  4. [Configure service (サービスを構成する)] ページで [Service settings (サービス設定)] セクションの [Service name] にサービス名を入力します。

  5. (オプション) サービスの説明を入力します。

  6. [Service repository settings (サービスリポジトリ設定)] セクションで、次のように操作します。
    1. [CodeStar Connection (CodeStar 接続)] でリストから接続を選択します。

    2. [Repository ID (リポジトリ ID)] でソースコードが含まれているリポジトリの名前を選択します。

    3. [Branch name (ブランチ名)] でソースコードが含まれているリポジトリの名前を選択します。

  7. (オプション) [Tags (タグ)] セクションで [Add new tag (新しいタグを追加)] を選択し、キーと値を入力してカスタマーマネージドタグを作成します。

  8. [Next (次へ)] を選択します。

  9. [Configure custom settings (カスタム設定の構成)] ページの [Service instaces (サービスインスタンス)] セクションで [New instance (新しいインスタンス)] を選択します。required パラメータの値を入力する必要があります。optional パラメータの値を入力するか、表示されるデフォルト値を使用します。

  10. [Pipeline inputs (パイプライン入力)] セクションで required パラメータの値を入力する必要があります。optional パラメータの値を入力するか、表示されるデフォルト値を使用します。

  11. [Next (次へ)] を選択して入力を見直します。

  12. [Create (作成)] を選択します。

    サービスの詳細とステータス、ならびにサービスに関する AWS マネージドタグとカスタマーマネージドタグ。

  13. ナビゲーションペインで [Services (サービス)] を選択します。

    新しいページには、ステータスやその他のサービスの詳細とともに、サービスのリストが表示されます。

AWS CLI

AWS CLI を使用する際には、サービス入力をソースコードディレクトリ内にある .aws-proton/service.yaml という YAML 形式の spec ファイルで指定します。

CLI で get-service-template-minor-version コマンドを使用して、仕様ファイル内で値を指定するスキーマの必須パラメータとオプションパラメータを表示します。

pipelineProvisioning: "CUSTOMER_MANAGED" を含むサービステンプレートを使用する場合、仕様に pipeline: セクションを含めないことと create-service コマンドに -repository-connection-arn-repository-id、および -branch-name パラメータを含めないことが条件です。

次の手順に示すように、CLI でサービスパイプライン付きのサービスを作成します。

  1. 次の CLI コマンドの例に示すように、パイプラインのサービスロールをセットアップします。

    コマンド:

    $ aws proton update-account-settings \ --pipeline-service-role-arn "arn:aws:iam::123456789012:role/AWSProtonServiceRole"
  2. 以下のリストは、サービステンプレートスキーマに基づいて、サービスパイプラインとインスタンスの入力を含めた仕様の例を示しています。

    仕様:

    proton: ServiceSpec pipeline: my_sample_pipeline_required_input: "hello" my_sample_pipeline_optional_input: "bye" instances: - name: "acme-network-dev" environment: "ENV_NAME" spec: my_sample_service_instance_required_input: "hi" my_sample_service_instance_optional_input: "ho"

    次の CLI コマンドとレスポンスの例に示すように、パイプライン付きでサービスを作成します。

    コマンド:

    $ aws proton create-service \ --name "MySimpleService" \ --branch-name "mainline" \ --template-major-version "1" \ --template-name "fargate-service" \ --repository-connection-arn "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \ --repository-id "myorg/myapp" \ --spec "file://spec.yaml"

    レスポンス:

    { "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "createdAt": "2020-11-18T19:50:27.460000+00:00", "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "myorg/myapp", "status": "CREATE_IN_PROGRESS", "templateName": "fargate-service" } }

次の CLI コマンドとレスポンスの例に示すように、サービスパイプラインなしでサービスを作成します。

以下に示すのは、サービスパイプライン入力を含めない仕様の例です。

仕様:

proton: ServiceSpec instances: - name: "acme-network-dev" environment: "ENV_NAME" spec: my_sample_service_instance_required_input: "hi" my_sample_service_instance_optional_input: "ho"

プロビジョニングされたサービスパイプラインなしでサービスを作成するには、次の CLI コマンドとレスポンスの例に示すように、spec.yaml へのパスを指定し、かつリポジトリパラメータを含めないことです。

コマンド:

$ aws proton create-service \ --name "MySimpleServiceNoPipeline" \ --template-major-version "1" \ --template-name "fargate-service" \ --spec "file://spec-no-pipeline.yaml"

レスポンス:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleServiceNoPipeline", "createdAt": "2020-11-18T19:50:27.460000+00:00", "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00", "name": "MySimpleServiceNoPipeline", "status": "CREATE_IN_PROGRESS", "templateName": "fargate-service-no-pipeline" } }