サービス同期設定 - AWS Proton

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

サービス同期設定

サービス同期を使用すると、Git を使用して AWS Proton サービスを設定およびデプロイできます。サービス同期を使用して、Git リポジトリで定義された設定を使用して、 AWS Proton サービスへの初期デプロイと更新を管理できます。Git では、バージョントラッキングやプルリクエストなどの機能で、あなたのサービスの設定、管理、デプロイができます。サービス同期は、 AWS Proton と Git を組み合わせて、 AWS Proton テンプレートを通じて定義および管理される標準化されたインフラストラクチャをプロビジョニングするのに役立ちます。Service sync を利用すれば、あなたの Git リポジトリ内のサービス定義が管理され、ツールの切り替え回数を減らすことができます。Git のみを使用する場合と比較して、 テンプレートの標準化と での AWS Proton デプロイは、インフラストラクチャの管理に費やす時間を短縮するのに役立ちます。 AWS Proton また、 は、開発者チームとプラットフォームチームの両方により高い透明性と監査可能性を提供します。

AWS Proton OPS ファイル

proton-ops ファイルは、 がサービスインスタンスの更新に使用される仕様ファイル AWS Proton を見つける場所を定義します。また、サービスインスタンスを更新する順序と、あるインスタンスから別のインスタンスに変更をプロモートするタイミングも定義されます。

この proton-ops ファイルでは、あなたのリンク先のリポジトリにある仕様ファイルまたは複数の仕様ファイルで、サービスインスタンスを同期できます。これを行うには、次の例のように proton-ops ファイルに同期ブロックを定義します。

例 ./configuration/proton-ops.yaml:

sync: services: frontend-svc: alpha: branch: dev spec: ./frontend-svc/test/frontend-spec.yaml beta: branch: dev spec: ./frontend-svc/test/frontend-spec.yaml gamma: branch: pre-prod spec: ./frontend-svc/pre-prod/frontend-spec.yaml prod-one: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml prod-two: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml prod-three: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml

前の例では、frontend-svc はサービス名で、alphabetagammaprod-oneprod-twoprod-three はインスタンスです。

spec ファイルは、すべてのインスタンスでも、proton-ops ファイル内で定義されているインスタンスのサブセットでもかまいません。ただし、少なくとも、ブランチ内で定義されたインスタンスと同期元の仕様が必要です。インスタンスが特定のブランチと spec ファイルの場所で proton-ops ファイルに定義されていないと、Service Sync ではそれらのインスタンスの作成や更新はできません。

以下の例は、spec がどのようになるかを示します。proton-ops ファイルはこれらの spec ファイルから同期されることに注意してください。

./frontend-svc/test/frontend-spec.yaml

proton: "ServiceSpec" instances: - name: "alpha" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "beta" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

./frontend-svc/pre-prod/frontend-spec.yaml

proton: "ServiceSpec" instances: - name: "gamma" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

./frontend-svc/prod/frontend-spec-second.yaml

proton: "ServiceSpec" instances: - name: "prod-one" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "prod-two" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "prod-three" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

インスタンスが同期されず、同期を試みても引き続き問題が発生する場合は、GetServiceInstanceSyncStatus API を呼び出すと問題を解決できる場合があります。

注記

サービス同期を使用しているお客様は、引き続き AWS Proton 制限の対象となります。

ブロッカー

サービス同期を使用して AWS Proton サービスを同期することで、サービス仕様を更新し、Git リポジトリからサービスインスタンスを作成および更新できます。ただし、 AWS Management Console または を使用してサービスまたはインスタンスを手動で更新する必要がある場合があります AWS CLI。

AWS Proton は、サービスインスタンスの更新やサービスインスタンスの削除など AWS CLI、 AWS Management Console または を通じて行った手動の変更を上書きしないようにします。その場合、手動による変更を検出すると Service Sync は無効になり、 AWS Proton はサービス同期ブロッカーを自動的に作成します。

サービスに関連するブロッカーをすべて取得するには、サービスに関連付けられている serviceInstance をそれぞれ順番に実行する必要があります。

  • serviceName だけで getServiceSyncBlockerSummary API を呼び出します。

  • serviceNameserviceInstanceNamegetServiceSyncBlockerSummary API を呼び出します。

これにより、最新のブロッカーとそれに関連するステータスのリストが返されます。ACTIVE とマークされているブロッカーがある場合は、blockerIdresolvedReason でそれぞれに AND を指定して UpdateServiceSyncBlocker API を呼び出して解決する必要があります。

サービスインスタンスを手動で更新または作成する場合、 はサービスインスタンスにサービス同期ブロッカー AWS Proton を作成します。 は他のすべてのサービスインスタンスの同期 AWS Proton を続行しますが、ブロッカーが解決されるまでこのサービスインスタンスの同期を無効にします。サービスからサービスインスタンスを削除すると、 はサービスにサービス同期ブロッカー AWS Proton を作成します。これにより AWS Proton 、ブロッカーが解決されるまで、 はサービスインスタンスを同期できなくなります。

アクティブなブロッカーがすべて揃ったら、blockerIdresolvedReason でアクティブなブロッカーごとに、 UpdateServiceSyncBlocker API を呼び出して問題をあなたが解決する必要があります。

を使用して AWS Management Console、 に移動 AWS Proton してサービス同期タブを選択すると、サービス同期が無効になっているかどうかを判断できます。サービスやサービスインスタンスがブロックされている場合は、[有効化] ボタンが表示されます。サービス同期を有効にするには、[有効化] を選択します。