首先应该得到AWS凭证(credentials)。
请打开Amazon EC2 Console(https://console.aws.amazon.com/ec2/),在右上角的菜单中点击你的名字,并选择“My Security Credentials”,你将看到使用不同类型凭证的页面。展开Access Keys(Access Key ID和Secret Access Key)部分,并点击“Create New Access Key”按钮。展开Show Access Key部分来查看密钥。
以后你将无法查看这些密钥,所以这是你下载密钥文件的唯一机会。
本章的所有命令都在11-aws.sh文件中(https://gist.github.com/vfarcic/ 03931d011324431f211c4523941979f8)。
我们将把密钥设置为环境变量,本章将探索的工具会用到这些环境变量:
请将[…]替换为实际的值。
我们将安装AWS Command Line Interface(CLI)(https://aws.amazon.com/cli/),并收集你的账户信息。
给Windows用户的说明
我发现在Windows上安装awscli最有效的方法是使用Chocolatey(https:// chocolatey.org/)。下载并安装Chocolatey,然后在管理员命令提示符下运行choco install awscli。在本章的后面,将使用Chocolatey来安装jq、packer和Terraform。
如果你尚未安装AWS命令行接口,请打开Installing the AWS Command Line Interface页面(http://docs.aws.amazon.com/cli/latest/userguide/installing.html),并遵循最适合你的操作系统的安装方法。
完成之后,我们应该通过输出版本信息来确认安装是否成功:
输出如下(在我的笔记本电脑上):
给Windows用户的说明
你可能需要重新打开Git Bash终端,以使对环境变量path的修改生效。
现在安装了CLI,我们就可以获得集群将运行的区域(region)和可用区(availability zone)。
Amazon EC2被托管在世界各地的多个位置。这些位置由区域和可用区组成。每个区域都是一个单独的地理位置,由多个被称为可用区的相互隔离的位置组成。Amazon EC2为你提供了将资源(例如实例和数据)放到多个位置的能力。(www.xing528.com)
在Available Regions页面,你可以看到当前可用的区域(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions)和可用区(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ using-regions-availability-zones.html)。
本章将使用区域us-east-1(US East(N.Virginia))。请将其改为离你最近的区域。
请将区域设置到环境变量AWS_DEFAULT_REGION中:
选择区域后,就可以决定选择哪个可用区来运行集群。
每个区域是完全独立的,由多个可用区组成。区域内的可用区通过低延迟链路被隔离和连接起来。
通常,你应该将集群的所有节点放在一个区域内,并从低延迟链路中获益。这些节点应该分布在多个可用区,所以其中一个可用区的失效并不会导致整个集群的失效。如果你需要跨多个区域运行,那么最好的选择是设置多个集群(每个区域一个);否则,如果建立一个跨多个区域的集群,可能就会遇到延迟问题。
给AWS新用户的说明
如果这是你第一次执行aws,那么将收到一条要求你配置凭证的消息。请运行aws configure命令并按照指示执行。你会被要求提供凭证,使用我们先前生成的证书。请用回车键回答其余的问题。
让我们使用AWS CLI查看所选区域中的可用区:
因为我选择了区域us-east-1,输出如下:
如你看到的那样,us-east-1区域有四个可用区(a、b、d和e)。在你的情况下,所选区域不同,输出可能有所不同。
请选择可用区并将它们放入环境变量中,每个可用区有一台服务器,我们的集群由五台服务器组成:
请随意选择可用区的任何组合。在我的例子中,我决定集群分布在可用区b、d和e之间。
现在具备了在AWS中创建第一个Swarm集群的所有先决条件。由于在本书中大部分时间都使用了Docker Machine,所以它将是我们的第一选择。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。