

# Amazon ECS マネージドインスタンスの設計
<a name="ManagedInstances"></a>

Amazon ECS マネージドインスタンスは、Amazon ECS の完全マネージド型のコンピューティングオプションであり、インフラストラクチャ管理を AWS で負荷軽減しながら、コンテナ化されたワークロードをすべての Amazon EC2 インスタンスタイプで実行できます。Amazon ECS マネージドインスタンスでは、AWS が基盤となるインフラストラクチャの割り当て、スケーリング、パッチ適用、メンテナンスを処理している間に、GPU アクセラレーション、特定の CPU アーキテクチャ、高ネットワークパフォーマンス、および特殊なインスタンスタイプなどの特定のコンピューティング機能にアクセスできます。

Amazon ECS マネージドインスタンスを使用する場合、アプリケーションをコンテナにパッケージ化し、コンピューティング要件を指定します。AWS は、ワークロードの要求を満たす最も低コストの汎用 Amazon EC2 インスタンスタイプを自動的に選択します。または、インスタンスタイプ、CPU メーカー、アクセラレーターなどの必要なインスタンス属性を指定できます。Amazon ECS マネージドインスタンスは、スケーリング、パッチ適用、コスト最適化など、インフラストラクチャのあらゆる側面を完全に管理します。AWS 機能や Amazon EC2 統合へのアクセスは完全に保証されます。

Amazon ECS マネージドインスタンスは、プラットフォーム固有の最適化とセキュリティ設定で Linux コンテナに対応しています。デフォルトでは、Amazon ECS マネージドインスタンスは、複数の小さなタスクを大きなインスタンスに配置することでインフラストラクチャの使用率を最適化し、結果として、コストを削減し、タスクの起動時間を改善します。

このトピックでは、Amazon ECS マネージドインスタンスのタスクおよびサービスのさまざまなコンポーネントについて述べ、Amazon ECS で Amazon ECS マネージドインスタンスを使用する際の特別な考慮事項について説明します。

## 開始方法
<a name="managed-instances-walkthrough"></a>

Amazon ECS マネージドインスタンスの使用を開始するには、必要な IAM ロールを作成し、AWS アカウントで Amazon ECS マネージドインスタンスを有効にします。その後、キャパシティプロバイダを作成することで、Amazon ECS マネージドインスタンスキャパシティプロバイダを使用してタスクまたはサービスを起動できます。

開始方法についての詳細な説明については、「スタートガイド」の次の項目を参照してください。
+ [Amazon ECS マネージドインスタンスのタスクの作成方法について説明します。](getting-started-managed-instances.md)
+ [AWS CLI を使用した Amazon ECS マネージドインスタンスのタスクの作成方法について説明します。](getting-started-managed-instances-cli.md)

## キャパシティープロバイダー
<a name="managed-instances-capacity-providers"></a>

Amazon ECS マネージドインスタンスは、キャパシティプロバイダを使用してワークロードのコンピューティングキャパシティを管理します。キャパシティプロバイダーを作成するときは、デフォルトのインスタンス選択を使用するか、`instanceRequirements` を使用してカスタムインスタンス要件を指定できます。

次のキャパシティプロバイダが利用できます。
+ **デフォルトのキャパシティプロバイダ** – ワークロード要件に合わせて、最も低コストの汎用インスタンスタイプを自動的に選択します。
+ **カスタムキャパシティプロバイダ** – vCPU 数、メモリ、CPU メーカー、アクセラレータータイプ、特定のインスタンスタイプなど、属性ベースのインスタンスタイプ選択を使用してインスタンス属性を指定できます。

キャパシティプロバイダ戦略には、次のリストからキャパシティプロバイダタイプを 1 つだけ含めることができます。
+ Amazon ECS マネージドインスタンス
+ Auto Scaling グループ
+ Fargate/Fargate\_SPOT

## インスタンスの選択と最適化
<a name="managed-instances-instance-selection"></a>

Amazon ECS は、次のいずれかの方法で、Amazon ECS マネージドインスタンスワークロードのインスタンスタイプを選択します。
+ **自動選択** – デフォルトのキャパシティプロバイダを使用する場合、Amazon ECS は、タスク定義で指定された CPU とメモリの要件を満たす、最も低コストの汎用インスタンスタイプを自動的に選択します。
+ **属性ベースの選択** – カスタムキャパシティプロバイダを使用する場合、vCPU 数、メモリサイズ、CPU メーカー、アクセラレータータイプ、特定のインスタンスタイプなどのインスタンス属性を指定できます。Amazon ECS は、指定した属性に一致するすべてのインスタンスタイプから選択します。

Amazon ECS マネージドインスタンスは、インフラストラクチャの使用率とコストを、いくつかのメカニズムを使用して最適化します。
+ マルチタスク配置 – デフォルトでは、Amazon ECS は複数の小さなタスクを大きなインスタンスに配置して、使用率を最大化することによってコストを削減します。
+ アクティブなワークロード統合 – Amazon ECS は、アプリケーションの可用性やデプロイのパフォーマンスに影響を与える可能性のある早期停止を回避しながら、コンテナインスタンスが完全にアイドル状態になるタイミングを特定します。システムは、サービスに設定されたタスクの最小数と最大数、スタートビフォーストップ動作、およびタスク保護動作を尊重します。
+ 適切なサイズ設定 – ワークロード要件が変更されると、Amazon ECS は現時点の要求に合った適切なサイズの代替インスタンスを起動します。

Amazon ECS は Amazon EC2 イベントウィンドウを使用して、都合の良い期間にメンテナンスアクティビティをスケジュールします。イベントウィンドウを使用すると、AWS がインスタンス上でメンテナンスを実施できる定期的な期間を定義できるため、メンテナンスを運用スケジュールに合わせて調整することで、ワークロードの中断を最小限に抑えることができます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスの予定されているイベント](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html)」を参照してください。

厳重な分離が必要な場合は、Amazon ECS マネージドインスタンスを、VM レベルのセキュリティ分離境界を持つ個別のインスタンスで各タスクを実行するように設定することができます。

## タスク定義
<a name="managed-instances-task-definitions"></a>

Amazon ECS マネージドインスタンスを使用するタスクは、ほとんどの Amazon ECS タスク定義パラメータに対応しています。Amazon ECS マネージドインスタンスは、プラットフォームバージョン 1.4.0 を使用している既存の Fargate タスク定義と互換性があるため、移行が簡単になります。

Amazon ECS マネージドインスタンスを使用するには、`requiresCompatibilities` タスク定義パラメータに `MANAGED_INSTANCES` を含めます。タスク定義では、Fargate と Amazon ECS マネージドインスタンス双方の互換性を指定して、デプロイオプションに柔軟性を持たせることができます。

## オペレーティングシステムと CPU アーキテクチャ
<a name="welcome-operating-system"></a>

以下のオペレーティングシステムがサポートされています。
+ Bottlerocket

Amazon ECS タスク定義には、ARM と X86\_64 の 2 つのアーキテクチャを使用できます。

Amazon ECS マネージドインスタンスで Linux コンテナを実行する場合、ARM ベースのアプリケーションに X86\_64 CPU アーキテクチャ、または ARM64 アーキテクチャを使用できます。

## 主な特徴
<a name="managed-instances-key-features"></a>

Amazon ECS マネージドインスタンスの主な特徴を以下に挙げます。
+ アプリケーションの要件に合わせて特定の EC2 インスタンスタイプを選択することで、GPU アクセラレーテッドコンピューティング、特定の CPU 機能、大きなメモリサイズなどの特殊なハードウェア機能にアクセスできます。
+ 独自の分離された環境で各タスクを実行する Fargate とは異なり、デフォルトで 1 つのインスタンスで複数のタスクを実行してリソースの使用率とコストを最適化します。
+ セキュリティコンプライアンスを確保し、インスタンスパッチ適用を定期的に実行します。ECS マネージドインスタンスは、14 日後にインスタンスドレイニングを開始し、サービスベースのタスクを新しいインスタンスに自動的に置き換えます。
+ CAP\_NET\_ADMIN、CAP\_SYS\_ADMIN、CAP\_BPF などの特権 Linux 機能を使用して、コンテナ内での高度なネットワーキングとシステム管理機能を有効にします。

## IAM ロール
<a name="managed-instances-iam-roles"></a>

Amazon ECS マネージドインスタンスには 2 つの IAM ロールが必要です。
+ *インフラストラクチャロール*: このロールにより、AWS はユーザーに代わって Amazon ECS マネージドインスタンスを管理できます。
+ *インスタンスプロファイル*: インスタンスプロファイルは、IAM ロールを Amazon ECS マネージドインスタンスに渡すために使用します。このプロファイルは、次の目的で使用されます。
  + コンテナワークロードを実行する Amazon ECS マネージドインスタンスの IAM アクセス許可を定義します。
  + AWS がユーザーに代わってこれらのインスタンスを管理できるようにします。
  + プロファイルで定義されたアクセス許可に従って、インスタンスが AWS サービスにアクセスできるようにします。

## セキュリティとコンプライアンス
<a name="managed-instances-security"></a>

Amazon ECS マネージドインスタンスは、ワークロードを保護するために複数のセキュリティレイヤーを実装しています。
+ **安全な設定** – Amazon ECS マネージドインスタンスは、SSH アクセス禁止、変更不可能なルートファイルシステム、SELinux 経由のカーネルレベルの必須アクセスコントロールなど、AWS セキュリティのベストプラクティスに従います。
+ **自動パッチ適用** – AWS は、設定したメンテナンスウィンドウを尊重して、最新のセキュリティパッチで Amazon ECS マネージドインスタンスを定期的に更新します。
+ **インスタンス存続期間の制限** – ECS が 14 日後にインスタンスドレイニングを自動的に開始して、最新のセキュリティパッチが適用され、適切に構成されたインスタンスでアプリケーションが実行されることを確実にします。
+ **特権機能** – ネットワークモニタリングやオブザーバビリティソリューションなど、特権 Linux 機能を必要とするワークロードに対して、それらの機能をオプションで有効にできます。

Amazon ECS マネージドインスタンスは、PCI-DSS、HIPAA、FedRAMP など、Amazon ECS と同じコンプライアンスプログラムに対応しています。サポートされているリージョンでは、キャパシティプロバイダーレベルで FIPS エンドポイントを設定して、FedRAMP コンプライアンスを実現できます。

## ネットワーク
<a name="managed-instances-networking"></a>

Amazon ECS マネージドインスタンスは、`awsvpc` および `host` ネットワークモードに対応しています。`awsvpc` ネットワークモードは、VPC 内で独自の Elastic Network Interface とプライベート IP アドレスを各タスクに提供します。これにより、タスクレベルでのきめ細かなセキュリティグループとネットワーク ACL 制御が可能になります。`host` ネットワークモードでは、タスクはホストの Amazon ECS マネージドインスタンスネットワーク名前空間を共有します。Amazon ECS マネージドインスタンスでのタスクネットワーキングの詳細については、「[Amazon ECS マネージドインスタンスの Amazon ECS タスクネットワーキング](managed-instance-networking.md)」を参照してください。

## インスタンスストレージ
<a name="managed-instances-storage"></a>

Amazon ECS マネージドインスタンスは、インスタンスに付加されている Amazon EBS データボリュームのサイズ設定に対応しています。このストレージは、インスタンスで実行されるすべてのタスク間で共有され、バインドマウントに使用できます。このボリュームは、タスク定義内で `volumes`、`mountPoint`、および `volumesFrom` パラメータを使用しているコンテナ間で共有およびマウントが可能です。

 ボリュームはインスタンスの作成時に付加されます。`storageConfiguration` パラメータを使用して Amazon ECS マネージドインスタンスのキャパシティプロバイダを作成するときに、ボリュームのサイズを GiB 単位で指定できます。

```
{
...

    "managedInstancesProvider": {
        "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile",
            "networkConfiguration": {
                "subnets": [
                    "subnet-abcdef01234567",
                    "subnet-bcdefa98765432"
                ],
                "securityGroups": [ 
                    "sg-0123456789abcdef"
                ]
            },
            "storageConfiguration": {
                "storageSizeinGiB" : 100

            }
        }
    }
 ... 
}
```

このボリュームの最小サイズは 30 GiB、最大サイズは 16,384 GiB です。デフォルトでは、ボリュームのサイズは 80 GiB です。

タスクで、取り込み、圧縮、および非圧縮されたコンテナイメージは、このボリュームに格納されます。タスクがバインドマウントに使用すべきインスタンスストレージの総量を判断するには、タスクに割り当てられているインスタンスのストレージの総量から、コンテナイメージが使用するストレージの容量を差し引く必要があります。



Amazon ECS マネージドインスタンスに付加された Amazon EBS ボリュームのパフォーマンスは、「*Amazon EC2 ユーザーガイド*」の「[Amazon EBS 最適化インスタンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)」ドキュメントで説明されているように、対応する Amazon EC2 インスタンスのパフォーマンスと一致します。

ボリュームのスナップショットを作成して、セキュリティ問題の法的分析を実行、もしくはアプリケーションのデバッグができます。Amazon EBS ボリュームのスナップショット作成の詳細については、「*Amazon EBS ユーザーガイド*」の「[Amazon EBS スナップショット](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html)」を参照してください。Amazon EBS 暗号化がデフォルトで有効になっている場合、ボリュームはデフォルトで暗号化用に指定された AWS KMS キーで暗号化されます。デフォルトでの EBS 暗号化の詳細については、「*Amazon EBS ユーザーガイド*」の「[Amazon EBS 暗号化をデフォルトで有効にする](https://docs.aws.amazon.com/ebs/latest/userguide/encryption-by-default.html)」を参照してください。

インスタンスに付加されたデータボリュームを使用するだけでなく、Amazon ECS マネージドインスタンス上で実行されるタスクごとにデータボリュームを設定することもできます。タスクレベルストレージの詳細については、「[Amazon ECS タスクのストレージオプション](using_data_volumes.md)」を参照してください。

## ローカルストレージ
<a name="managed-instances-local-storage"></a>

[Amazon EC2 インスタンスストア](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)は Amazon EC2 インスタンス用に一時的なブロックレベルストレージを提供します。Amazon EC2 インスタンスストアが提供するストレージは、ホストに物理的にアタッチされたディスクからアクセスできます。コンテナインスタンスで実行されているタスクのデータボリュームとしてインスタンスストアを使用するように Amazon ECS マネージドインスタンスを設定できます。ローカルストレージを有効にし、インスタンスにインスタンスストアボリュームがある場合、Amazon ECS は Amazon EBS データボリュームをプロビジョニングする代わりにインスタンスストアボリュームを使用します。これにより、ストレージコストを削減し、レイテンシーの影響を受けやすいワークロードの I/O パフォーマンスを向上させることができます。Amazon ECS マネージドインスタンスでのインスタンスストアボリュームの使用には、追加料金はかかりません。

インスタンスに複数のインスタンスストアボリュームがある場合、Amazon ECS はそれらを自動的に 1 つの RAID 0 ボリュームに結合し、タスク用の連続ストレージとして表示します。インスタンスにインスタンスストアボリュームがない場合、またはローカルストレージが無効になっている場合、Amazon ECS は `storageSizeGiB` で指定されたサイズで Amazon EBS データボリュームをプロビジョニングします。インスタンスストアボリュームはエフェメラルです。インスタンスストアボリュームのデータは、インスタンスが停止または終了したとき、またはハードウェアに障害が発生したときに失われます。永続化する必要があるデータには、インスタンスストアを使用しないでください。

ローカルストレージを有効にするには、`localStorageConfiguration` パラメータを使用して[新しいキャパシティプロバイダーを作成](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-capacity-provider-managed-instances.html)し、`useLocalStorage` を `true` に設定します。`instanceRequirements` パラメータを使用して、プロビジョニングされたインスタンスに特定のサイズのローカルストレージが含まれるようにすることもできます。

**注記**  
AWS マネジメントコンソール を使用してクラスターを作成する場合、Amazon ECS が作成するデフォルトのマネージドインスタンスキャパシティプロバイダーには `localStorageConfiguration` は含まれません。

次の例は、ローカルストレージが有効になっているキャパシティプロバイダー設定と、最小で 50 GiB の SSD ベースのインスタンスストアを指定するインスタンス要件を示しています。

```
{
...
    "managedInstancesProvider": {
        "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile",
            "networkConfiguration": {
                "subnets": [
                    "subnet-abcdef01234567",
                    "subnet-bcdefa98765432"
                ],
                "securityGroups": [
                    "sg-0123456789abcdef"
                ]
            },
            "storageConfiguration": {
                "storageSizeGiB": 50
            },
            "localStorageConfiguration": {
                "useLocalStorage": true
            },
            "instanceRequirements": {
                "vCpuCount": {
                    "min": 0
                },
                "memoryMiB": {
                    "min": 0
                },
                "localStorage": "REQUIRED",
                "totalLocalStorageGB": {
                    "min": 50
                },
                "localStorageTypes": ["ssd"]
            }
        }
    }
}
```

`instanceRequirements` 設定を省略すると、Amazon ECS はデフォルトで `localStorage` から `INCLUDED` になります。この場合、Amazon ECS はインスタンスストアボリュームの有無にかかわらず、インスタンスをプロビジョニング用と見なします。インスタンスストアボリュームを持つインスタンスはデータボリュームにインスタンスストアを使用し、インスタンスストアボリュームを持たないインスタンスは Amazon EBS データボリュームを使用します。`totalLocalStorageGB` が指定されていない場合、Amazon ECS は利用可能なすべてのインスタンスストレージを使用し、最小サイズは適用されません。

`storageConfiguration` の `storageSizeGiB` 値は Amazon EBS データボリュームサイズのみを定義し、インスタンスストレージが利用できない場合に使用されます。`instanceRequirements` の `totalLocalStorageGB` 値は、プロビジョニングされたインスタンスに必要な最小インスタンスストレージサイズを制御します。すべてのインスタンスでローカルストレージが使用されるようにするには、`localStorage` を `REQUIRED` に設定し、`totalLocalStorageGB` を使用して最小サイズを指定します。

特定のプロビジョニングされたコンテナインスタンスがローカルストレージを使用しているかどうかを確認するには、コンテナインスタンスの `ecs.capability.storage.local-storage-enabled` 属性を確認します。

## サービスの負荷分散
<a name="managed-instances-load-balancing"></a>

Amazon ECS マネージドインスタンスを使用する Amazon ECS サービスは、Elastic Load Balancing を使用してサービス内のタスク全体にトラフィックを均等に分散するよう設定できます。

Amazon ECS マネージドインスタンス上の Amazon ECS サービスは、Application Load Balancer、Network Load Balancer、および Gateway Load Balancer の各ロードバランサータイプに対応しています。Application Load Balancer は HTTP/HTTPS (レイヤー 7) のトラフィックをルーティングし、Network Load Balancer は TCP または UDP (レイヤー 4) のトラフィックをルーティングします。

また、このようなサービスのターゲットグループを作成する場合は、ターゲットタイプとして `instance` ではなく、`ip` を選択する必要があります。これは、`awsvpc` ネットワークモードを使用するタスクは、直接 Amazon EC2 インスタンスではなく、Elastic Network Interface に関連付けられているためです。

## モニタリングとオブザーバビリティ
<a name="managed-instances-monitoring"></a>

Amazon ECS マネージドインスタンスは、CloudWatch メトリックおよびオブザーバビリティツールとの統合を通じて包括的なモニタリング機能を提供します。
+ **CloudWatch メトリック** – タスクレベルとインスタンスレベルの両方で CPU、メモリ、ネットワーク、およびストレージの使用率をモニタリングします。
+ **Container Insights** – コンテナ化されたアプリケーションの詳細なパフォーマンスメトリックとログを取得します。
+ **サードパーティーの統合** – 特権機能を有効にすると、高いレベルの Linux アクセス許可を必要とする高度なモニタリングおよびオブザーバビリティソリューションを実行できます。

## 料金とコストの最適化
<a name="managed-instances-pricing"></a>

Amazon ECS マネージドインスタンスでは、タスクを実行している Amazon EC2 インスタンス全体に対して課金されます。料金は、ワークロード用に選択されたインスタンスタイプによって異なります。

Amazon ECS マネージドインスタンスでは、いくつかのコスト最適化機能が提供されています。
+ **マルチタスクの最適化** – 適切なサイズに設定されたインスタンスで複数のタスクを実行することにより、インスタンスの使用率を最大化します。

Compute and Instance Savings Plans は、Amazon ECS マネージドインスタンスワークロードにも適用されます。

## Service Quotas
<a name="managed-instances-service-quotas"></a>

Amazon ECS マネージドインスタンスワークロードには、Amazon EC2 オンデマンドインスタンス Service Quotas が適用されます。Amazon ECS マネージドインスタンスを使用する Amazon ECS サービスには、Amazon ECS Service Quotas が適用されます。

Service Quotas の詳細については、次の資料を参照してください。
+ 「*Amazon Web Services 全般のリファレンス*」の「[Amazon EC2 エンドポイントとクオータ](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html)」
+ [Amazon ECS の Service Quotas](service-quotas.md)

## 移行に関する考慮事項
<a name="managed-instances-migration"></a>

Amazon ECS マネージドインスタンスへの移行は、ほとんどのワークロードで簡単に行えます。
+ **Fargate から** – キャパシティプロバイダの設定変更と再デプロイのみが必要です。プラットフォームバージョン 1.4.0 を使用している既存のタスク定義には完全な互換性があります。
+ **EC2 から** – Fargate への移行と同様ですが、特定のインスタンスタイプなどの Amazon EC2 機能へのアクセスは保持されます。

移行を計画する際には、次の点を考慮してください。
+ アプリケーションは、14 日間のインスタンス存続期間と計画されたメンテナンスウィンドウに対応できる必要があります。
+ 長期間実行されるタスク (14 日以上) は、Amazon ECS マネージドインスタンスには適していません。
+ カスタム AMI はサポートされていません – Amazon ECS マネージドインスタンスは、AWS が管理するセキュリティ最適化 AMI を使用します。

## 制約事項と考慮事項
<a name="managed-instances-limitations"></a>

Amazon ECS マネージドインスタンスには、次の制限が適用されます。
+ カスタム AMI – AMI は AWS によって所有および管理されます
+ インスタンスの存続期間 – セキュリティパッチ適用とコンプライアンスを確実にするため、インスタンスあたりの最大ランタイムは 14 日です。
+ SSH アクセス – セキュリティ上の理由から使用できません。Amazon ECS Exec を使用してデバッグとトラブルシューティングを行います。管理オペレーションは Amazon ECS API 経由のみで可能です。

## 組織コントロール
<a name="managed-instances-organization-controls"></a>

組織コントロールには、Amazon ECS マネージドインスタンスの正しい動作を妨げる可能性があるものもあります。その場合は、これらのコントロールを更新して、Amazon ECS がユーザーに代わって EC2 インスタンスを管理するために必要な許可を得られるようにする必要があります。

Amazon ECS は、Amazon ECS マネージドインスタンスを支える EC2 インスタンスの起動にインフラストラクチャロールを使用します。このインフラストラクチャロールは、Amazon ECS がユーザーに代わって Amazon ECS マネージドインスタンスを管理できるようにする [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)であり、アカウント内に作成されます。サービスロールで実行されるアクションには、[サービスコントロールポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) (SCP) が常に適用されます。このため、SCP は Amazon ECS マネージドインスタンスの運用を阻止できます。最も一般的なケースは、SCP を使用して起動できる Amazon マシンイメージ (AMI) を制限する場合です。Amazon ECS マネージドインスタンスを機能させるには、Amazon ECS マネージドインスタンス AMI アカウントからの AMI の起動を許可するように SCP を変更します。

[EC2 が許可された AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) 機能を使用し、他のアカウントで AMI の可視性を制限することもできます。この機能を使用する場合は、イメージ基準の範囲を拡大して、対象リージョン内の Amazon ECS マネージドインスタンス AMI アカウントも範囲に含まれるようにする必要があります。

### Amazon ECS マネージドインスタンス AMI 以外のすべての AMI をブロックする SCP の例
<a name="example-scp-managed-instances"></a>

以下の SCP は、AMI が us-west-2 または us-east-1 の Amazon ECS マネージドインスタンス AMI アカウントに属している場合を除き、`ec2:RunInstances` の呼び出しを阻止します。

**注記**  
`ec2:Owner` コンテキストキーを使用**しない**ことが重要です。Amazon は Amazon ECS マネージドインスタンス AMI アカウントを所有しており、このキーの値は常に `amazon` になります。`ec2:Owner` が `amazon` の場合に AMI の起動を許可する SCP を構築すると、Amazon ECS マネージドインスタンス用の AMI だけでなく、Amazon が所有する任意の AMI も起動できます。

```
{
  "Version":"2012-10-17",		 	 	                                 
  "Statement": [
    {
      "Sid": "DenyAMI",
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": "arn:*:ec2:*::image/ami-*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "187296253231",
            "260073348889"
          ]
        }
      }
    }
  ]
}
```

### Amazon ECS マネージドインスタンス AMI アカウント
<a name="managed-instances-ami-accounts"></a>

リージョンによって異なる AWS アカウントが Amazon ECS マネージドインスタンスのパブリック AMI をホストします。


| AWS リージョン | アカウント | 
| --- | --- | 
| af-south-1 | 070957084703 | 
| ap-east-1 | 587573215167 | 
| ap-northeast-1 | 679336465495 | 
| ap-northeast-2 | 309903600357 | 
| ap-northeast-3 | 384570461223 | 
| ap-south-1 | 062344138989 | 
| ap-south-2 | 624198668379 | 
| ap-southeast-1 | 832199679391 | 
| ap-southeast-2 | 552073033681 | 
| ap-southeast-3 | 368903466070 | 
| ap-southeast-4 | 696793786439 | 
| ap-southeast-5 | 003457290689 | 
| ap-southeast-6 | 465836752572 | 
| ap-southeast-7 | 622515864387 | 
| ca-central-1 | 853167153192 | 
| ca-west-1 | 899469777611 | 
| eu-central-1 | 832570432258 | 
| eu-central-2 | 041659148495 | 
| eu-north-1 | 851563870067 | 
| eu-south-1 | 766433696616 | 
| eu-south-2 | 003380494496 | 
| eu-west-1 | 986619735082 | 
| eu-west-2 | 591706807364 | 
| eu-west-3 | 108582616801 | 
| il-central-1 | 009537862704 | 
| me-central-1 | 540883425316 | 
| me-south-1 | 181438624895 | 
| mx-central-1 | 210749644920 | 
| sa-east-1 | 591338347621 | 
| us-east-1 | 260073348889 | 
| us-east-2 | 292185169523 | 
| us-west-1 | 187296253231 | 
| us-west-2 | 491085424538 | 