设置 AWS EC2 实例
如果您还没有 AWS 账户,可以按照 https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-awsaccount/ 上的说明创建一个。您还必须创建一个 AWS IAM 用户组。有关说明可在 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_create.html 上找到。您需要一个 AWS IAM 用户,并按照 AWS 的官方文档在 AWS 账户中创建一个 IAM 用户,网址是 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html 。
我们还需要以下 AWS 资源来完成 EC2 设置:
-
AWS EC2 密钥对
-
IAM 实例配置文件
为什么需要 EC2 实例?它将作为我们的远程服务器。您可以将其视为在云中运行的主机。我们将使用该服务器托管我们的 Docker 容器,以运行和服务我们的应用程序:

正如您从图中看到的,它将几乎充当您本地开发环境的复制品。正如我们在 第 3 章使用 Docker 容器设置开发环境 中所讨论的,这是使用容器的一大好处。
请按照以下步骤创建 EC2 实例:
-
登录 AWS 控制台并在 服务 搜索栏中搜索 EC2 以转到 EC2 仪表板。
-
在 EC2 仪表板中,单击 启动实例 按钮:
Figure 2. Figure 10.2 – The Launch instance button您将看到 启动实例 向导。
-
在 Name 字段中,输入
tddphp-instance1
。这个名字标签将非常重要。我们将在本章后面的 CodeDeploy 应用程序中使用此标签:Figure 3. Figure 10.3 – Instance name tag -
接下来,在 应用程序和操作系统映像 (Amazon 系统映像) 区域中,选择 Amazon Linux 2 AMI:
Figure 4. Figure 10.4 – Amazon Linux 2 AMI -
接下来,您可以选择 EC2 实例类型。在本例中,您可以选择 t2.micro 实例,因为该类型符合免费层的要求。您也可以选择更强大的实例配置—这完全取决于您:
Figure 5. Figure 10.5 – t2.micro instance type -
您将需要一个密钥对才能通过 SSH 连接到该计算机实例。如果您还没有设置,只需单击 “创建新密钥对” 链接即可;将出现一个弹出窗口,供您创建新的密钥对:
Figure 6. Figure 10.6 – Creating a new key pair -
创建配对密钥后,可以将其分配到 EC2 实例向导中的配对密钥字段。
-
接下来,在网络设置部分,允许所有 HTTP 和 HTTPs 流量。这样我们就可以通过浏览器轻松访问网络应用程序:
Figure 7. Figure 10.7 – Network settings; allow HTTP and HTTPS -
接下来,在 "高级详细信息" 部分,如果还没有 IAM 实例配置文件,可以点击 "创建新的 IAM 配置文件" 链接轻松创建一个:
Figure 8. Figure 10.8 – Creating a new IAM profile link -
您将被重定向到 IAM 向导。输入要使用的任何 IAM 角色名称;然后,在 "受信任实体类型" 部分选择 "自定义信任策略" 选项:
Figure 9. Figure 10.9 – Custom trust policy text area -
在文本区域中,使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
由于我在澳大利亚,所以通常使用悉尼 ap-southeast-2 区域。您可以将其替换为您喜欢的任何区域。
-
单击 "下一步" 按钮继续。
-
在 "添加权限" 部分,搜索以下策略,并勾选策略名称前的复选框:
-
AmazonEC2FullAccess
-
AmazonS3FullAccess
-
AWSCodeDeployFullAccess
-
-
选择这些策略后,单击 “下一步”。
在创建角色之前,请确保这些策略显示在 IAM 向导审核屏幕中:
Figure 10. Figure 10.10 – Access policies -
接下来,单击创建角色按钮,然后返回 EC2 实例向导。您现在可以从 "高级详细信息" 部分选择刚刚创建的 IAM 角色:
Figure 11. Figure 10.11 – Newly created IAM instance profile -
就是这样 – 滚动到页面的最底部,然后单击 “启动实例” 按钮。AWS 需要几分钟时间才能启动您的新 EC2 实例。几分钟后,回到仪表板;您现在应该看到您的 EC2 实例正在运行:
Figure 12. Figure 10.12 – Amazon Linux 2 instance running
现在我们有了一个正在运行的 Amazon Linux 2 实例;我们将使用该实例来运行我们的容器。在继续进行 CodeDeploy 设置之前,我们需要创建一个 S3 bucket。我们的 Bitbucket 管道和 CodeDeploy 应用程序都将使用这个存储桶:
-
在 AWS 控制台中,搜索 S3 并单击 S3 服务项:
Figure 13. Figure 10.13 – S3 service您将被重定向到 Amazon S3 面板。
-
点击 "创建水桶" 按钮:
Figure 14. Figure 10.14 – The Create bucket button -
为桶使用任何您想要的唯一名称,并选择与您的 EC2 实例所使用的相同区域。对我来说,是 ap-southeast-2:
Figure 15. Figure 10.15 – Creating an S3 bucket -
您可以保留所有默认设置不变,然后单击 “创建存储桶” 按钮。
就是这样。我们现在可以继续创建 CodeDeploy 应用程序。CodeDeploy 应用程序将使用我们刚刚创建的 EC2 实例和 S3 存储桶。