Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Amazon ECS 的设置

如果您已注册 Amazon Web Services (AWS) 并已在使用 Amazon Elastic Compute Cloud (Amazon EC2),您与使用 Amazon ECS 已近在咫尺。两种服务的设置过程非常相似,因为 Amazon ECS 在集群中使用 EC2 实例。以下指南将帮助您做好使用 Amazon ECS 首次运行向导或 Amazon ECS 命令行界面 (CLI) 启动首个集群的准备。

注意

由于 Amazon ECS 使用 Amazon EC2 的许多组件,因此,您可以将 Amazon EC2 控制台用于这些步骤中的许多步骤。

要开始设置 Amazon ECS,请完成以下任务。如果您已完成以下任何步骤,可以将其跳过并继续安装自定义 AWS CLI。

注册 AWS

在您注册 AWS 时,您的 AWS 账户会自动注册所有服务,包括 Amazon EC2 和 Amazon ECS。您只需为使用的服务付费。

如果您已有一个 AWS 账户,请跳到下一个任务。如果您还没有 AWS 账户,请使用以下步骤创建。

如何创建 AWS 账户

  1. 打开 http://www.amazonaws.cn/,然后选择 Create an AWS Account。

  2. 按照屏幕上的说明进行操作。

    作为注册流程的一部分,您会收到一个电话,需要您使用电话键盘输入一个 PIN 码。

请记住您的 AWS 账户,因为进行下一个任务时需要用到该账户。

创建 IAM 用户

AWS 中的服务(例如 Amazon EC2 和 Amazon ECS)要求您在访问时提供凭证,以便服务可以确定您是否有权限访问其资源。控制台要求您的密码。您可以为您的 AWS 账户创建访问密钥以访问命令行界面或 API。但是,我们不建议您使用 AWS 账户的凭证访问 AWS,而建议您使用 AWS Identity and Access Management (IAM)。创建 IAM 用户,然后将该用户添加到具有管理权限的 IAM 组或授予此用户管理权限。然后您就可以使用特别的 URL 和 IAM 用户的凭证访问 AWS。

如果您已注册 AWS 但尚未为自己创建一个 IAM 用户,则可以使用 IAM 控制台自行创建。

为您自己创建一个 IAM 用户并将该用户添加到管理员组

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Users,然后选择 Add user

  3. 对于 User name,键入用户名,例如 Administrator。名称可包含字母、数字以及以下字符:加号 (+)、等号 (=)、逗号 (,)、句点 (.)、at 符号 (@)、下划线 (_) 和连字符 (-)。名称不区分大小写,且最大长度可为 64 个字符。

  4. 选中 AWS 管理控制台 access 旁边的复选框,选择 Custom password,然后在文本框中键入新用户的密码。您可以选择 Require password reset 以强制用户在下次登录时选择新密码。

  5. 选择 Next: Permissions

  6. Set permissions for user 页面上,选择 Add user to group

  7. 选择 Create group

  8. Create group 对话框中,为新组键入名称。名称可包含字母、数字以及以下字符:加号 (+)、等号 (=)、逗号 (,)、句点 (.)、at 符号 (@)、下划线 (_) 和连字符 (-)。名称不区分大小写,且最大长度可为 128 个字符。

  9. 对于 Filter,选择 Job function

  10. 在策略列表中,选中 AdministratorAccess 的复选框。然后选择 Create group

  11. 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择 Refresh 以在列表中查看该组。

  12. 选择 Next: Review 以查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择 Create user

您可使用此相同的流程创建更多的组和用户,并允许您的用户访问 AWS 账户资源。要了解有关使用策略将用户权限限制到特定 AWS 资源的信息,请转到访问管理管理 AWS 资源的策略示例

要以该新 IAM 用户的身份登录,请从 AWS 控制台退出,然后使用以下 URL,其中 your_aws_account_id 是您的不带连字符的 AWS 账户(例如,如果您的 AWS 账户是 1234-5678-9012,则您的 AWS 账户 ID 是 123456789012):

Copy
https://your_aws_account_id.signin.aws.amazon.com/console/

输入您刚创建的 IAM 用户名和密码。登录后,导航栏显示 your_user_name @ your_aws_account_id

如果您不希望您的登录页面 URL 包含 AWS 账户 ID,可以创建账户别名。从 IAM 控制面板中,选择 Create Account Alias,然后输入一个别名,例如您的公司名称。要在创建账户别名后登录,请使用以下 URL:

Copy
https://your_account_alias.signin.aws.amazon.com/console/

要为您的账户验证 IAM 用户的登录链接,请打开 IAM 控制台并在控制面板的 IAM users sign-in link (IAM 用户登录链接) 下进行检查。

有关 IAM 的更多信息,请参阅 AWS Identity and Access Management 用户指南

为容器实例和服务创建 IAM 角色

Amazon ECS 代理必须先知道要使用的账户凭证,然后才能将容器实例注册到集群中。您可以创建一个 IAM 角色,该角色可让代理知道应向哪个账户注册容器实例。当您使用 Amazon 通过此角色提供的经 Amazon ECS 优化的 AMI 启动实例时,代理会自动将容器实例注册到默认集群中。

Amazon ECS 容器代理还会代表您调用 Amazon EC2 和 Elastic Load Balancing API,以便在负载均衡器中注册和取消注册容器实例。您必须在启动您的服务前先为其创建一个 IAM 角色,然后才能将负载均衡器附加到 Amazon ECS 服务。此要求适用于您计划用于负载均衡器的任意 Amazon ECS 服务。

注意

在控制台首次运行体验中,将自动创建 Amazon ECS 实例和服务角色,因此,如果您打算使用 Amazon ECS 控制台,则可以跳到下一个部分。如果您不打算使用 Amazon ECS 控制台,而是计划使用 AWS CLI,请在启动容器实例或将 Elastic Load Balancing 负载均衡器用于服务之前完成 Amazon ECS 容器实例 IAM 角色Amazon ECS 服务计划程序 IAM 角色中的过程。

创建密钥对

Linux 实例(例如,Amazon ECS 容器实例)没有用于 SSH 访问的密码;您使用密钥对安全登录您的实例。您可以在启动容器实例时指定密钥对的名称,然后提供私有密钥(使用 SSH 登录时)。

如果您尚未创建密钥对,则可以通过 Amazon EC2 控制台自行创建。请注意,如果您计划在多个区域启动实例,则需要在每个区域中创建密钥对。有关区域的更多信息,请参阅Amazon EC2 用户指南(适用于 Linux 实例) 中的区域和可用区

创建密钥对

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 从导航栏中,选择密钥对区域。您可以选择对您可用的任意区域,无论您的位置如何;但是,密钥对是特定于区域的。例如,如果您计划在美国东部(俄亥俄州)区域中启动实例,则必须在相同区域中为实例创建密钥对。

  3. 在导航窗格中选择 Key Pairs

  4. 选择 Create Key Pair

  5. Create Key Pair 对话框的 Key pair name 字段中输入新密钥对的名称,然后选择 Create。选择一个容易记住的名称,例如,您的 IAM 用户名,后跟 -key-pair 加区域名称。例如,me-key-pair-useast2

  6. 您的浏览器会自动下载私有密钥文件。基本文件名是您为密钥对指定的名称,文件扩展名为 .pem。将私有密钥文件保存在安全位置。

    重要

    这是您保存私有密钥文件的唯一机会。当您启动实例时,您将需要提供密钥对的名称;当您每次连接到实例时,您将需要提供相应的私有密钥。

  7. 如果您将在 Mac 或 Linux 计算机上使用 SSH 客户端连接到您的 Linux 实例,请使用以下命令设置您私有密钥文件的权限,以确保只有您可以读取它。

    Copy
    $ chmod 400 your_user_name-key-pair-region_name.pem

有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EC2 密钥对

使用密钥对连接到实例

要从运行 Mac 或 Linux 的计算机连接到 Linux 实例,需要使用 -i 选项对 SSH 客户端指定 .pem 文件和私有密钥的路径。若要从运行 Windows 的计算机连接到 Linux 实例,可以使用 MindTerm 或 PuTTY。如果您计划使用 PuTTY,则将需要安装它并遵循以下步骤将 .pem 文件转换为 .ppk 文件。

(可选) 准备使用 PuTTY 从 Windows 连接到 Linux 实例

  1. http://www.chiark.greenend.org.uk/~sgtatham/putty/ 下载并安装 PuTTY。确保安装整个套件。

  2. 启动 PuTTYgen(例如,在 Start 菜单中,选择 All Programs, PuTTY, and PuTTYgen)。

  3. Type of key to generate 下,选择 SSH-2 RSA

  4. 选择 Load。默认情况下,PuTTYgen 仅显示扩展名为 .ppk 的文件。要找到您的 .pem 文件,请选择显示所有类型的文件的选项。

  5. 选择您在上一个过程中创建的私有密钥文件,然后选择 Open。选择 OK 关闭确认对话框。

  6. 选择 Save private key。PuTTYgen 显示一条关于在没有口令的情况下保存密钥的警告。选择

  7. 指定与密钥对相同的密钥名称。PuTTY 自动添加 .ppk 文件扩展名。

创建 Virtual Private Cloud

Amazon Virtual Private Cloud (Amazon VPC) 允许您在已定义的虚拟网络内启动 AWS 资源。强烈建议您在 VPC 中启动您的容器实例。

注意

Amazon ECS 控制台首次运行时会为您的群集创建 VPC,因此,如果您打算使用 Amazon ECS 控制台,则可以跳到下一个部分。

如果您有默认 VPC,也可以跳过此部分并进入下一个任务,即 创建安全组。要确定您是否具有默认 VPC,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EC2 控制台中支持的平台。否则,您可以使用以下步骤在账户中创建非默认 VPC。

重要

如果您的账户在某个区域中支持 Amazon EC2 Classic,则您在该区域没有默认 VPC。

创建非默认 VPC

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 从导航栏中,为 VPC 选择区域。VPC 特定于某一区域,因此您应选择已创建密钥对的区域。

  3. 在 VPC 控制面板上,选择 Start VPC Wizard

  4. Step 1: Select a VPC Configuration 页面上,确保选中 VPC with a Single Public Subnet,然后选择 Select

  5. Step 2: VPC with a Single Public Subnet (步骤 2: 带有单个公有子网的 VPC) 页面上,在 VPC name (VPC 名称) 字段中为您的 VPC 输入友好名称。保留其他默认配置设置,然后选择 Create VPC。在确认页面上,请选择 OK

有关 Amazon VPC 的更多信息,请参阅 Amazon VPC 是什么? (在 Amazon VPC 用户指南 中)。

创建安全组

安全组用作相关容器实例的防火墙,可在容器实例级别控制入站和出站流量。您可以向安全组添加规则,以便使用 SSH 从您的 IP 地址连接到容器实例。您还可以添加允许来自任意位置的入站和出站 HTTP 和 HTTPS 访问的规则。向任务所需的开放端口添加任意规则。

注意

Amazon ECS 控制台首次运行时会为您的实例创建安全组并根据您使用的任务定义创建负载均衡器,因此,如果您打算使用 Amazon ECS 控制台,则可以跳到下一个部分。

请注意,如果您计划在多个区域中启动容器实例,则需要在每个区域中创建安全组。有关区域的更多信息,请参阅Amazon EC2 用户指南(适用于 Linux 实例) 中的区域和可用区

提示

您需要本地计算机的公有 IP 地址,可以使用服务获得该地址。例如,我们提供以下服务:http://checkip.amazonaws.com/。要查找另一项可提供您的 IP 地址的服务,请使用搜索短语“what is my IP address”。如果您正通过 Internet 服务提供商 (ISP) 连接或者在不使用静态 IP 的情况下从防火墙后面连接,则您需要找出客户端计算机使用的 IP 地址范围。

为您的 VPC 创建具有最小特权的

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 从导航栏中选择安全组的区域。安全组特定于某一区域,因此您应选择已创建密钥对的区域。

  3. 在导航窗格中,选择 Security Groups

  4. 选择 Create Security Group

  5. 输入新安全组的名称和描述。选择一个您容易记住的名称,例如 ecs-instances-default-cluster

  6. VPC 列表中,确保选择您的默认 VPC;它标有星号 (*)。

    注意

    如果您的账户支持 Amazon EC2 Classic,请选择您在上一个任务中创建的 VPC。

  7. Amazon ECS 容器实例不需要打开任何入站端口。但您可能需要添加 SSH 规则,以便登录容器实例并使用 Docker 命令检查任务。如果您希望容器实例托管运行 Web 服务器的任务,也可以添加适用于 HTTP 和 HTTPS 的规则。完成以下步骤可添加这些可选的安全组规则。

    Inbound 选项卡上,创建以下规则 (为每个新规则选择 Add Rule),然后选择 Create

    • Type 列表中选择 HTTP,确保 Source 设置为 Anywhere (0.0.0.0/0)。

    • Type 列表中选择 HTTPS,确保 Source 设置为 Anywhere (0.0.0.0/0)。

    • Type 列表中选择 SSH。在 Source 字段中,确保选中 Custom IP,然后采用 CIDR 表示法指定您计算机或网络的公有 IP 地址。要采用 CIDR 表示法指定单个 IP 地址,请添加路由前缀 /32。例如,如果您的 IP 地址是 203.0.113.25,请指定 203.0.113.25/32。如果您的公司要分配同一范围内的地址,请指定整个范围,例如 203.0.113.0/24

      重要

      出于安全原因,我们不建议您允许从所有 IP 地址 (0.0.0.0/0) 对您的实例进行 SSH 访问(以测试为目的的短暂访问除外)。

安装 AWS CLI

可以在 AWS 管理控制台中使用 Amazon ECS 手动管理所有操作。但是,您可以在本地桌面上安装 AWS CLI 或开发人员工具包并生成脚本,以便在 Amazon ECS 中自动执行常见管理任务。

要将 AWS CLI 与 Amazon ECS 结合使用,请安装最新版本的 AWS CLI。有关安装 AWS CLI 或升级到最新版本的信息,请参阅 AWS Command Line Interface 用户指南 中的安装 AWS 命令行界面