

# 为 Amazon ECS 托管实例创建集群
<a name="create-cluster-managed-instances"></a>

创建一个集群来定义要在其上运行任务和服务的基础设施。

当您为 Amazon ECS 托管实例创建集群时，默认情况下，您可以访问 `FARGATE_MANAGED_INSTANCE` 容量提供程序。此容量提供程序会自动为您的工作负载选择成本最优化的实例类型。如果您需要特定的实例属性或类型，还可以创建自定义容量提供程序。

为了使集群创建过程尽可能简单，控制台为许多选项提供了原定设置选项。
+ 在 AWS Cloud Map 中创建与集群名称相同的默认命名空间。命名空间允许您在集群中创建的服务无需额外配置即可连接到命名空间中的其他服务。

  有关更多信息，请参阅 [互连 Amazon ECS 服务](interconnecting-services.md)。

您可以修改以下选项：
+ 更改与集群关联的默认命名空间。

  命名空间允许您在集群中创建的服务无需额外配置即可连接到命名空间中的其他服务。默认命名空间与集群名称相同。有关更多信息，请参阅 [互连 Amazon ECS 服务](interconnecting-services.md)。
+ 为托管存储分配 AWS KMS 密钥。有关如何创建密钥的信息，请参阅《*AWS Key Management Service 用户指南*》中的 [Create a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。
+ 添加标签以帮助您识别集群。

## 先决条件
<a name="create-cluster-managed-instances-prerequisites"></a>

开始之前，请确保您已完成 [设置以使用 Amazon ECS](get-set-up-for-amazon-ecs.md) 中的步骤，然后分配相应的 IAM 权限。有关更多信息，请参阅 [Amazon ECS 集群示例](security_iam_id-based-policy-examples.md#IAM_cluster_policies)。

创建集群的用户必须具有以下附加权限：`iam:CreateServiceLinkedRole`。

默认情况下，Amazon ECS 会根据任务定义中指定的要求选择实例类型。这是默认容量提供程序。如果需要特定的实例属性或类型，请注意所有要求。您需要使用自定义容量提供程序，然后指定实例要求。

了解如何选择实例。有关更多信息，请参阅 [Amazon ECS 托管实例的实例选择最佳实践](managed-instances-instance-selection-best-practices.md)。

您拥有 Amazon ECS 托管实例所需的 IAM 角色。这包括：
+ **基础设施角色**：允许 Amazon ECS 代表您调用 AWS 服务来管理 Amazon ECS 托管实例基础设施。

  有关更多信息，请参阅 [Amazon ECS 基础设施 IAM 角色](infrastructure_IAM_role.md)。
+ **实例配置文件**：为在托管实例上运行的 Amazon ECS 容器代理和 Docker 进程守护程序提供权限。

  有关更多信息，请参阅 [Amazon ECS 托管实例实例配置文件](managed-instances-instance-profile.md)。

## 控制台过程
<a name="create-cluster-managed-instances-console"></a>

**要创建新集群（Amazon ECS 控制台）**

1. 在 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2) 打开控制台。

1. 从导航栏中，选择要使用的区域。

1. 在导航窗格中，选择**集群**。

1. 在 **Clusters**（集群）页面上，选择 **Create cluster**（创建集群）。

1. 在**集群配置**下，配置以下内容：
   + 对于**集群名称**，输入唯一的名称。

     该名称最多可以包含 255 个字母（大小写字母）、数字和连字符。
   + （可选）要使用于 Service Connect 的命名空间与集群名称不同，请在**命名空间**中输入一个唯一的名称。

1. 对于**自定义容量提供程序**，请执行以下操作：
   + 对于**选择获取 EC2 容量的方法**，选择 **Amazon ECS 托管实例**。
   + 对于“实例配置文件”，请选择实例配置文件角色。
   + 对于基础设施角色，请选择该基础设施角色。
   + 要使用自定义容量提供程序，对于**实例选择**，请选择**使用自定义**。然后，对于每个属性，请输入**属性值**。

1. （可选）使用 Container Insights 时，请展开**监控**，然后选择下列选项之一：
   + 要按照建议使用具有增强型可观测性的 Container Insights，请选择**具有增强型可观测性的 Container Insights**。
   + 要使用 Container Insights，请选择 **Container Insights**。

1. （可选）加密托管存储上的数据。在**加密**下，对于**托管存储**，输入要用于加密托管存储数据的 AWS KMS 密钥的 ARN。

1. （可选）为了帮助识别您的集群，请展开**标签**，然后配置您的标签。

   [添加标签] 选择 **Add tag**（添加标签），然后执行以下操作：
   + 对于 **Key**（键），输入键名称。
   + 对于**值**，输入键值。

1. 选择**创建**。

## AWS CLI 过程
<a name="create-cluster-managed-instances-cli"></a>

您可以使用 AWS CLI 为 Amazon ECS 托管实例创建集群。使用最新版本的 AWS CLI。有关如何升级到最新版本的更多信息，请参阅[安装或更新到最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

**注意**  
您可以使用双堆栈服务端点通过 IPv4 和 IPv6 从 AWS AWS CLI、SDK 和 Amazon ECS API 与 Amazon ECS 进行交互。有关更多信息，请参阅 [使用 Amazon ECS 双堆栈端点](dual-stack-endpoint.md)。

**创建新集群（AWS CLI）**

1. 使用以下命令创建具有唯一名称的集群：

   ```
   aws ecs create-cluster --cluster-name managed-instances-cluster
   ```

   输出：

   ```
   {
       "cluster": {
           "status": "ACTIVE", 
           "defaultCapacityProviderStrategy": [], 
           "statistics": [], 
           "capacityProviders": [], 
           "tags": [], 
           "clusterName": "managed-instances-cluster", 
           "settings": [
               {
                   "name": "containerInsights", 
                   "value": "disabled"
               }
           ], 
           "registeredContainerInstancesCount": 0, 
           "pendingTasksCount": 0, 
           "runningTasksCount": 0, 
           "activeServicesCount": 0, 
           "clusterArn": "arn:aws:ecs:region:aws_account_id:cluster/managed-instances-cluster"
       }
   }
   ```

1. （可选）要启用 Container Insights 以增强集群的可观测性，请使用以下命令：

   ```
   aws ecs put-account-setting --name containerInsights --value enhanced
   ```

1. （可选）要向您的集群添加标签，请使用下面的命令：

   ```
   aws ecs tag-resource --resource-arn arn:aws:ecs:region:aws_account_id:cluster/managed-instances-cluster --tags key=Environment,value=Production
   ```

## 后续步骤
<a name="cluster-next-steps-managed-instances"></a>

为 Amazon ECS 托管实例创建任务定义。有关更多信息，请参阅 [使用控制台创建 Amazon ECS 任务定义](create-task-definition.md)。

将应用程序作为独立任务或服务的一部分运行。有关更多信息，请参阅下列内容：
+ [将应用程序作为 Amazon ECS 任务运行](standalone-task-create.md)
+ [创建 Amazon ECS 滚动更新部署](create-service-console-v2.md)