

サポート終了通知: 2026 年 10 月 7 日に、 AWS はサポートを終了します AWS Proton。2026 年 10 月 7 日以降、 AWS Proton コンソールまたは AWS Proton リソースにアクセスできなくなります。デプロイされたインフラストラクチャはそのまま残ります。詳細については、[AWS Proton 「サービス廃止と移行ガイド](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)」を参照してください。

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

# サービス同期設定
<a name="ag-service-sync-configs"></a>

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

## AWS Proton OPS ファイル
<a name="service-sync-ops"></a>

`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` はサービス名で、`alpha`、`beta`、`gamma`、`prod-one`、`prod-two`、`prod-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"
```

インスタンスが同期されず、同期を試みても引き続き問題が発生する場合は、[https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html](https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html) API を呼び出すと問題を解決できる場合があります。

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

**ブロッカー**

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

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

サービスに関連するブロッカーをすべて取得するには、サービスに関連付けられている `serviceInstance` をそれぞれ順番に実行する必要があります。
+ `serviceName` だけで `getServiceSyncBlockerSummary` API を呼び出します。
+ `serviceName` と `serviceInstanceName` で `getServiceSyncBlockerSummary` API を呼び出します。

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

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

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

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

**Topics**
+ [AWS Proton OPS ファイル](#service-sync-ops)
+ [サービス同期設定を作成する](create-service-sync.md)
+ [サービス同期の設定の詳細が表示されます](get-service-sync.md)
+ [サービス同期設定を編集する](update-service-sync.md)
+ [サービス同期設定を削除する](delete-service-sync.md)

# サービス同期設定を作成する
<a name="create-service-sync"></a>



サービス同期設定は、 コンソールまたは を使用して作成できます AWS CLI。

------
#### [ AWS マネジメントコンソール ]

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

1. [**Configure service (サービスを構成する)**] ページで [**Service details (サービス詳細)**] セクションの [**Service name**] に新しいサービス名を入力します。

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

1. **アプリケーションソースコードリポジトリ**セクション**で、リンクされた Git リポジトリ**を選択して、既にリンクしているリポジトリを選択します AWS Proton。リンクされたリポジトリがまだない場合は、[**別の Git リポジトリをリンク**] を選択し、[[リポジトリへのリンクを作成する](https://docs.aws.amazon.com//proton/latest/userguide/ag-create-repo.html)] の指示に従ってください。

1. [**Repository (リポジトリ)**] であなたのソースコードが保存されているリポジトリの名前を選択します。

1. [**Branch (ブランチ)**] であなたのソースコードが保存されているリポジトリブランチの名前を選択します。

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

1. **[Next (次へ)]** をクリックします。

1. [**サービスインスタンスの設定**] ページの [**サービス定義ソース**] セクションで、[**Git からサービスを同期**] を選択します。

1. [**サービス定義ファイル**] セクションで、あなたの `proton-ops` ファイルを作成する場合は AWS Proton 、[**AWS Proton にファイルを作成させたい**] を選択します。このオプションを使用すると、 は指定した場所に `spec`と `proton-ops` ファイル AWS Proton を作成します。あなた自身の OPS ファイルを作成するには、[**独自のファイルを提供しています**] を選択します。

1. **サービス定義リポジトリ**セクションで、**リンクされた Git リポジトリ**を選択して、既にリンクしているリポジトリを選択します AWS Proton。

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

1. **`proton-ops` ファイルブランチ**の場合、 が OPS と仕様ファイルを配置 AWS Proton するリストからブランチの名前を選択します。

1. [**サービスインスタンス**] セクションでは、`proton-ops` ファイル内の値に基づいて各フィールドが自動的に入力されます。

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

1. **[作成]** を選択します。

------
#### [ AWS CLI ]

**を使用してサービス同期設定を作成する AWS CLI**
+ 以下のコマンドを実行してください。

  ```
  $ aws proton create-service-sync-config \
      --resource "service-arn" \
      --repository-provider "GITHUB" \
      --repository "example/proton-sync-service" \
      --ops-file-branch "main" \
      --proton-ops-file "./configuration/custom-proton-ops.yaml" (optional)
  ```

  レスポンスは次のとおりです。

  ```
  {
      "serviceSyncConfig": {
          "branch": "main",
          "filePath": "./configuration/custom-proton-ops.yaml",
          "repositoryName": "example/proton-sync-service",
          "repositoryProvider": "GITHUB",
          "serviceName": "service name"
      }
  }
  ```

------

# サービス同期の設定の詳細が表示されます
<a name="get-service-sync"></a>

サービス同期の設定詳細データは、コンソールまたは AWS CLIの表示で確認できます。

------
#### [ AWS マネジメントコンソール ]

**コンソールを使用して、サービス同期の設定の詳細を表示します。**

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

1. 詳細データを表示するには、サービス同期設定を作成したサービスの名前を選択します。

1. サービスの詳細ページで [**サービス同期**] タブを選択すると、サービス同期の設定詳細データが表示されます。

------
#### [ AWS CLI ]

** AWS CLI を使用して、同期されたサービスを取得します。**

以下のコマンドを実行してください。

```
$ aws proton get-service-sync-config \
    --service-name "service name"
```

レスポンスは次のとおりです。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**を使用して AWS CLI 、サービス同期ステータスを取得します。**

以下のコマンドを実行してください。

```
$ aws proton get-service-sync-status \
    --service-name "service name"
```

------

# サービス同期設定を編集する
<a name="update-service-sync"></a>

サービス同期設定は、 コンソールまたは を使用して編集できます AWS CLI。



------
#### [ AWS マネジメントコンソール ]

コンソールでテンプレート同期設定を編集します。

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

1. 詳細データを表示するには、サービス同期設定を作成したサービスの名前を選択します。

1. サービス詳細ページで、[**サービス同期タブ**] を選択します。

1. [**Services Sync**] セクションで、[**Edit**] を選択します。

1. [**Edit**] ページで、編集する情報を更新し、[**Save**] を選択します。

------
#### [ AWS CLI ]

**次のコマンドとレスポンスの例は、 AWS CLIを使用してテンプレート同期設定を編集する方法を示します。**

以下のコマンドを実行してください。

```
$ aws proton update-service-sync-config \
    --service-name "service name" \
    --repository-provider "GITHUB" \
    --repository "example/proton-sync-service" \
    --ops-file-branch "main" \
    --ops-file "./configuration/custom-proton-ops.yaml"
```

レスポンスは次のとおりです。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

------

# サービス同期設定を削除する
<a name="delete-service-sync"></a>

サービス同期設定は、 コンソールまたは を使用して削除できます AWS CLI。

------
#### [ AWS マネジメントコンソール ]

**コンソールでサービス同期設定を削除します。**

1. サービスの詳細ページで、[**Service Sync**]タブを選択します。

1. [**サービス同期の詳細**] セクションで、[**Disconnect**] を選択してあなたのリポジトリを切断します。あなたのリポジトリが切断されると、そのリポジトリからのサービスは同期されなくなります。

------
#### [ AWS CLI ]

**次のコマンドとレスポンスの例は、 を使用してサービス同期設定 AWS CLI を削除する方法を示しています。**

以下のコマンドを実行してください。

```
$ aws proton delete-service-sync-config \
    --service-name "service name"
```

レスポンスは次のとおりです。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**注記**  
Service Sync ではサービスインスタンスは削除されません。設定のみを削除します。

------