

# Amazon EC2 ワークロード用の Amazon ECS クラスターを作成する
<a name="create-ec2-cluster-console-v2"></a>

クラスターを作成して、タスクとサービスを実行するインフラストラクチャを定義します。

これを開始する前に、「[Amazon ECS を使用するようにセットアップする](get-set-up-for-amazon-ecs.md)」 の手順を完了し、適切な IAM 許可を割り当てる必要があります。詳細については、「[Amazon ECS クラスターの例](security_iam_id-based-policy-examples.md#IAM_cluster_policies)」を参照してください。Amazon ECS コンソールでは、CloudFormation スタックを作成することで、Amazon ECS クラスターに必要なリソースを簡単に作成できます。

クラスターの作成プロセスをできるだけ簡単にするために、コンソールには、以下で説明する多くの選択肢に対するデフォルトの選択肢があります。コンソール内のほとんどのセクションには、詳細なコンテキストを提供するヘルプパネルもあります。

クラスターの作成時に Amazon EC2 インスタンスを登録することや、作成後のクラスターに対し、追加のインスタンスを登録することもできます。

以下のデフォルトオプションを変更できます。
+ インスタンスを起動するサブネットを変更します。
+ コンテナインスタンスへのトラフィックを制御するために使用されるセキュリティグループを変更します。
+ クラスターに名前空間を追加します。

  名前空間を使用すると、クラスターで作成したサービスを、追加の設定なしで名前空間内の他のサービスに接続できます。詳細については、「[Amazon ECS サービスを相互接続する](interconnecting-services.md)」を参照してください。
+ タスクイベントを有効にして、タスク状態の変更に関する EventBridge 通知を受信します。
+ マネージドストレージに AWS KMS キーを割り当てます。キーの作成方法の詳細については、*AWS Key Management Service ユーザーガイド*の「[KMS キーを作成する](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」を参照してください。
+ Fargate エフェメラルストレージに AWS KMS キーを割り当てます。キーの作成方法の詳細については、*AWS Key Management Service ユーザーガイド*の「[KMS キーを作成する](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」を参照してください。
+ ECS Exec の AWS KMS キーとログ記録を設定します。
+ クラスターを識別しやすいようにタグを追加します。

## Auto Scaling グループオプション
<a name="capacity-providers"></a>

Amazon EC2 インスタンスを使用する場合は、タスクとサービスが実行されるインフラストラクチャを管理するために Auto Scaling グループを指定する必要があります。

新しい Auto Scaling グループの作成を選択すると、自動的に次の動作が設定されます。
+ Amazon ECS は Auto Scaling グループのスケールインアクションとスケールアウトアクションを管理します。
+ Amazon ECS は、タスクを含む Auto Scaling グループ内の Amazon EC2 インスタンスがスケールインアクション中に終了されるのを防ぎます。詳細については、*AWS Auto Scaling ユーザーガイド*の「[インスタンスの保護](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)」を参照してください。

次の Auto Scaling グループプロパティを構成し、グループに対して起動するインスタンスのタイプと数を決定します。
+ Amazon ECS に最適化された AMI。
+ インスタンスタイプ。
+ インスタンスに接続するときに ID を証明する SSH キーペア。SSH キーの作成については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 のキーペアと Linux インスタンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)」を参照してください。
+ Auto Scaling グループに対して起動するインスタンスの最小数。
+ Auto Scaling グループに対して開始されるインスタンスの最大数。

  グループをスケールアウトするには、最大値を 0 より大きくする必要があります。

Amazon ECS は、CloudFormation スタックの一部としてユーザーに代わり Amazon EC2 Auto Scaling 起動テンプレートと Auto Scaling グループを作成します。AMI、インスタンスタイプ、SSH キーペアのために指定した値は、起動テンプレート内に保存されます。テンプレートは `EC2ContainerService-<ClusterName>` プレフィックスが付いているため、識別が容易になります。Auto Scaling グループのプレフィックスは `<ClusterName>-ECS-Infra-ECSAutoScalingGroup` です。

Auto Scaling グループに対して起動されたインスタンスは、起動テンプレートを使用します。

## ネットワークのオプション
<a name="networking-options"></a>

デフォルトでは、インスタンスはリージョンのデフォルトのサブネットで起動されます。コンテナインスタンスへのトラフィックを制御するセキュリティグループは、現在サブネットに関連付けられているものが使用されます。インスタンスのサブネットとセキュリティグループは変更できます。

既存のサブネットを選択できます。既存のセキュリティグループを使用するか、セキュリティグループを新規作成できます。IPv6 のみの設定でタスクを作成するには、IPv6 CIDR ブロックのみを含むサブネットを使用します。

セキュリティグループを新規作成する場合は、少なくとも 1 つのインバウンドルールを指定する必要があります。

インバウンドルールは、コンテナインスタンスに到達できるトラフィックを決定し、以下のプロパティを含みます。
+ 許可するプロトコル
+ 許可するポートの範囲
+ インバウンドトラフィック (送信元)

特定のアドレスまたは CIDR ブロックからのインバウンドトラフィックを許可するには、許可された CIDR で [**送信元**] に [**カスタム**] を使用します。

すべての送信先からのインバウンドトラフィックを許可するには、[**送信元**] に [**すべて**] を使用してください。これにより、これにより、0.0.0.0/0 IPv4 CIDR ブロックと::/0 IPv6 CIDR ブロックが自動的に追加されます。

ローカルコンピューターからのインバウンドトラフィックを許可するには、[**送信元**] に [**ソースグループ**] を使用します。これにより、ローカルコンピュータの現在の IP アドレスが送信元アドレスとして自動的に追加されます。

**新しいクラスターを作成するには (Amazon ECS コンソール)**

開始する前に、適切な IAM アクセス許可を割り当ててください。詳細については、「[Amazon ECS クラスターの例](security_iam_id-based-policy-examples.md#IAM_cluster_policies)」を参照してください。

1. コンソール ([https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)) を開きます。

1. ナビゲーションバーから、使用するリージョンを選択します。

1. ナビゲーションペインで **[Clusters]** (クラスター) を選択してください。

1. **[Clusters]** (クラスター) ページで、**[Create Cluster]** (クラスターの作成) を選択します。

1. **[クラスター設定]** で以下を設定します。
   + **[クラスター名]** に一意の名前を入力します。

     名前には、最大 255 文字 (大文字と小文字)、数字、およびハイフンを含めることができます。
   + (オプション) Service Connect に使用する名前空間をクラスター名と別のものにするには、**[Service Connect のデフォルト]** の **[名前空間]** で、名前空間名を選択または入力します。共有名前空間を使用するには、名前空間 ARN を選択または入力します。共有名前空間の使用について詳しくは、「[共有 AWS Cloud Map 名前空間を使用した Amazon ECS Service Connect](service-connect-shared-namespaces.md)」を参照してください。

1. Amazon EC2 インスタンスをクラスターに追加するには、**[インフラストラクチャ]** を展開し、次に **[Fargate インスタンスとセルフマネージドインスタンス]** を選択します。

   次に、キャパシティープロバイダーとして機能する Auto Scaling グループを設定します。

   1. 既存の Auto Scaling グループを使用するには、**[Auto Scaling group (ASG)]** (Auto Scaling グループ) からグループを選択します。

   1. Auto Scaling グループを作成するには、**Auto Scaling group(ASG)** (Auto Scaling グループ) から、**[Create new group]** (新しいグループの作成) を選択し、グループに関する以下の詳細情報を入力します。
      + **[プロビジョニングモデル]** で、**[オンデマンド]**インスタンスと**[スポット]**インスタンスのどちらを使用するかを選択します。
      + スポットインスタンスを使用する場合は、**[割り当て戦略]** で、インスタンスに使用するスポットキャパシティプール (インスタンスタイプおよびアベイラビリティーゾーン) を選択します。

        ほとんどのワークロードでは、**[料金キャパシティ最適化]** を選択できます。

        詳細については、「*Amazon EC2 ユーザーガイド*」の「[スポットインスタンスの配分戦略](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-allocation-strategy.html)」を参照してください。
      + **コンテナインスタンスの Amazon マシンイメージ (AMI)** で、Auto Scaling グループインスタンスの [Amazon ECS 最適化 AMI] を選択します。
      + **[EC2 instance type]** (EC2 インスタンスタイプ) を使用する場合、ワークロードのインスタンスタイプを選択します。

         マネージドスケーリングは、Auto Scaling グループが同じインスタンスタイプまたは類似のインスタンスタイプを使用している場合に最適です。
      + **[EC2 インスタンスロール]**では、既存のコンテナインスタンスロールを選択するか、新しいコンテナインスタンスロールを作成できます。

        詳細については、「[Amazon ECS コンテナインスタンスの IAM ロール](instance_IAM_role.md)」を参照してください。
      + **[Capacity]** (キャパシティー) には、Auto Scaling グループで起動するインスタンスの最小数と最大数を入力します。
      + **[SSH key pair]** (SSH キーペア) を使用する場合、インスタンスに接続する際に ID を証明するペアを選択してください。
      + より大きなイメージとストレージを許容するには、**[ルート EBS ボリュームサイズ]** に単位 GiB で値を入力します。

1. (オプション) VPC とサブネットを変更するには、**[Amazon EC2 インスタンスのネットワーキング]** で、次のいずれかの操作を実行します。
   + サブネットを削除するには、**[Subnets]** (サブネット) で、削除するサブネットごとに **[X]** を選択します。
   + **デフォルト** VPC 以外の VPC に変更するには、**[VPC]** で既存の **VPC** を選択し、**[サブネット]** でサブネットを選択します。IPv6 のみの設定の場合は、IPv6 CIDR ブロックを持つ VPC と IPv6 CIDR ブロックのみを持つサブネットを選択します。
   + セキュリティグループを選択します。[**セキュリティグループ**] で、次のいずれかのオプションを選択します。
     + 既存のセキュリティグループを選択するには、[**既存のセキュリティグループの選択**] を選択してから、セキュリティグループを選択します。
     + 新しいセキュリティグループを作成するには、[**新しいセキュリティグループの作成**] を選択します。その後、各インバウンドルールについて [**ルールの追加**] を選択します。

       インバウンドルールの詳細については、「[ネットワークのオプション](#networking-options)」を参照してください。
   + Amazon EC2 コンテナインスタンスにパブリック IP アドレスを自動的に割り当てるには、**[パブリック IP の自動割り当て]** で以下のいずれかのオプションを選択します。
     + **サブネット設定を使用** — インスタンスが起動するサブネットがパブリックサブネットの場合、パブリック IP アドレスをインスタンスに割り当てます。
     + **オンにする** — インスタンスにパブリック IP アドレスを割り当てます。

1. (オプション) Container Insights を使用して **モニタリング** を展開し、次のいずれかのオプションを選択します。
   + オブザーバビリティが強化された推奨の Container Insights を使用するには、**[オブザーバビリティが強化された Container Insights]** を選択します。
   + Container Insights を使用するには、**[Container Insights]** を選択します。

1. (オプション) タスクイベントを有効にするには、**[タスクイベント]** を展開し、**[タスクイベントを有効化]** をオンにします。

   タスクイベントを有効にすると、Amazon ECS はタスク状態変更イベントを EventBridge に送信します。これにより、タスクライフサイクルの変更を自動的にモニタリングして対応できます。

1. (オプション) ECS Exec を使用してクラスター内のタスクをデバッグするには、**[トラブルシューティング設定]** を展開し、以下を設定します。
   + (オプション) **[ECS Exec の AWS KMS キー]** には、ECS Exec セッションデータの暗号化に使用する AWS KMS キーの ARN を入力します。
   + (オプション) **[ECS Exec ログ記録]** で、ログの送信先を選択します。
     + CloudWatch Logs にログを送信するには、**[Amazon CloudWatch]** を選択します。
     + Amazon S3 にログを送信するには、**[Amazon S3]** を選択します。
     + ログ記録を無効にするには、**[なし]** を選択します。

1. (オプション)

   ランタイムのモニタリングを手動オプションで使用していて、このクラスターを GuardDuty でモニタリングしたい場合は、**[タグを追加]** を選択して次の操作を行います。
   + **[キー]** で「**guardDutyRuntimeMonitoringManaged**」と入力します。
   + **[Value]** (値) に「**true**」と入力します。

1. (オプション) マネージドストレージのデータを暗号化します。**[暗号化]** の **[マネージドストレージ]** に、マネージドストレージデータの暗号化に使用する AWS KMS キーの ARN を入力します。

1. (オプション) クラスタータグを管理するには、**[Tags]** (タグ) を展開し、次のいずれかのオペレーションを実行します。

   [タグの追加] [**タグの追加**] を選択して、以下を実行します。
   + [**キー**] にはキー名を入力します。
   + [**値**] にキー値を入力します。

   [タグを削除] タグのキーと値の右側にある [**削除**] を選択します。

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

## 次のステップ
<a name="ec2-cluster-next-steps"></a>

クラスターを作成したら、アプリケーションのタスク定義を作成し、スタンドアロンタスク、またはサービスの一部として実行できます。詳細については次を参照してください:
+ [Amazon ECS のタスク定義](task_definitions.md)
+ [Amazon ECS タスクとしてのアプリケーションの実行](standalone-task-create.md)
+ [Amazon ECS のローリング更新デプロイの作成](create-service-console-v2.md)