要創建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(通過示例)自動創建基礎設施。