10.1.2 在AWS中创建Redis集群

隐身守侯 提交于 2019-12-06 09:59:05
 
    要创建Redis集群,我们将要使用亚马逊的ElastiCache服务。ElastiCache允许开发人员使用Redis或Memcached构建内存中的数据缓存。对于EagleEye服务,我们将把在Docker中运行的Redis服务器迁移到ElastiCache。
    先回到AWS控制台的主页(点击页面左上角的橙色立方体),然后点击ElastiCache链接。
    在ElastiCache控制台中,选择Redis链接(页面的左侧),然后点击页面顶部的蓝色创建按钮。这将启动ElastiCache/Redis创建向导。
    图10-6展示了Redis创建界面。
 

 
图10-6 只需通过几次点击就可以创建一个Redis集群,该集群的基础设施是由亚马逊管理的
    在填完所有数据后,点击“Create”按钮。ElastiCache将开始Redis集群创建过程(这将需要几分钟的时间)。
 
图10-6创建了名称为spmia-tmx-redis-dev的redis集群。
 
ElastiCache将在最小的亚马逊服务器实例上构建一个单节点的Redis服务器。一旦点击按钮,就会看到Redis集群正在创建。创建完集群之后,点击集群的名称,进入详情页面,该页面显示集群中使用的端点。图10-7展示了Redis集群创建后的细节。
 

 
图10-7 Redis端点是服务连接到Redis所需的关键信息
    许可证服务是唯一一个使用Redis的服务,因此如果读者将本章中的代码示例部署到自己的亚马逊实例中,一定要确保适当地修改许可证服务的Spring Cloud Config文件。
    10.1.3 创建ECS集群
    部署EagleEye服务之前的最后一步是创建ECS集群。建立一个ECS集群以供应要用于托管Docker容器的Amazon机器。要做到这一点,我们将再次访问AWS控制台。在这里,我们将点击Amazon EC2 Container Service链接。
    我们将进入主EC2容器服务页面,在这里,应该会看到一个“Getting Started”按钮。
    点击“Start”按钮,进入如图10-8所示的“Select options to configure”页面。
 

图10-8 ECS提供了一个向导来引导一个新的服务容器(我们不会用到这个向导)
    取消勾选屏幕上的两个复选框,然后点击“Cancel”按钮。ECS提供了一个向导,它基于一组预定义模板来创建ECS容器。我们不打算使用这个向导。一旦取消了ECS创建向导,应该会看到ECS主页上的“Clusters”选项卡。图10-9展示了这个界面。点击“Create Cluster”按钮开始创建ECS集群的过程。

 
图10-9 开始创建一个ECS集群的过程
    现在,我们将看到一个名为“Create Cluster”的界面,它有3个主要部分。第一部分将定义基本的集群信息。在这里需要输入以下信息:
    (1)ECS集群的名称;
    (2)运行该集群的Amazon EC2虚拟机的大小;
    (3)集群中运行的实例数;
 
    (4)分配给集群中的每个节点的弹性块存储(Elastic Block Storage,EBS)的磁盘空间量。
    图10-10展示了我为本书中的测试示例填写的界面。

图10-10 在“Create Cluster”界面设定用于托管Docker 集群的EC2实例的大小
 
注意
    
    在创建Amazon账户时,首先要做的一件事是定义一个密钥对,用于使用SSH进入启动的EC2服务器中。本章不会介绍创建密钥对,但是如果读者以前从未这样做过,建议读者看看亚马逊有关这方面的说明书。
    接下来,我们将要为ECS集群创建网络配置。图10-11展示了Networking界面以及正在配置的值。

 
图10-11 创建好服务器后配置网络/AWS安全组来访问它们
    首先要注意的是,选择ECS集群将运行的亚马逊的Virtual Private Cloud(VPC)。默认情况下,ECS设置向导将创建一个新的VPC。我已经选择在我的默认VPC中运行ECS集群。默认的VPC包含数据库服务器和Redis集群。在亚马逊云中,亚马逊管理的Redis服务器只能由与Redis服务器处于同一个VPC的服务器访问。
    接下来,我们必须在VPC中选择要为 ECS 集群提供访问权限的子网。因为每个子网对应于一个AWS可用区域,所以我通常选择VPC中的所有子网,以使集群可用。
    最后,我们必须选择创建一个新的安全组,或者选择已创建的现有Amazon安全组,以应用于新的ECS集群。因为我们正在运行Zuul,并且希望所有的通信都通过单一端口(5555)。我们将要配置由ECS向导创建的新安全组,以允许来自外界的入站通信(0.0.0.0/0是整个因特网的网络掩码)。
    在表单中必须填写的最后一步是,为在服务器上运行的ECS容器代理创建Amazon IAM角色。ECS代理负责与Amazon就服务器上运行的容器的状态进行通信。我们将允许ECS向导创建一个名为ecsInstanceRole的IAM角色。图10-12展示了这个配置步骤。

图10-12 配置容器IAM角色
    此时,读者应该能看到一个集群创建跟踪状态的界面。创建完集群之后,应该在界面上看到一个蓝色的名为“View Cluster”按钮。点击这个“View Cluster”按钮后出现的界面。

 
图10-13 ECS集群正在运行
    此时,我们已经具备了成功部署EagleEye微服务所需的所有基础设施。
    
关于基础设施的创建和自动化
    读者现在正通过AWS控制台执行所有操作。在真实环境中,读者可以使用亚马逊的CloudFormation脚本DSL(领域特定语言)或HashCorp的Terraform这样的云基础设施脚本工具创建所有这些基础设施。不过,这是一个完整的主题,它远远超出了本书的范围。如果读者使用亚马逊云,那么可能已经熟悉CloudFormation。如果读者是亚马逊云的新手,那么我建议读者花一些时间去了解它,然后再通过AWS控制台创建核心基础设施。
    我想向读者再次提及Michael和Andreas Wittig撰写的Amazon Web Servicesin Action。在这本书中,他们介绍了大多数亚马逊Web服务,并演示了如何使用CloudFormation(通过示例)自动创建基础设施。
 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!