1. 程式人生 > >一臺ECS伺服器,部署多(兩)應用,且應用配置不同域名

一臺ECS伺服器,部署多(兩)應用,且應用配置不同域名

場景

產品環境伺服器有兩臺,前後端各分配一臺伺服器。現在在不增加機器的情況下,需要增加部署一套服務給臺北地區服務。

現有的前端部署方案。

產品環境部署方案詳解

實現

配置NAT步驟

  • ECS配置多網絡卡,以及網絡卡繫結私有IP。參考
  • 建立NAT閘道器。
  • 建立兩個EIP。
  • 配置DNAT。2 3 4步可以參考

配置好DNAT,將ECS 例項的兩個內網ip和公網ip連線之後,這樣,就可以用兩個公網ip訪問這臺例項了。

題外話,關於費用

電話諮詢阿里雲客服,阿里雲NAT費用3121/年。
EIP的費用按流量計是:裝置工時費0.02¥/時, 流量0.8¥/GB。暫時這種方案,前期使用較少,流量較少,而且用流量包,先用著看看費用增長情況。
EIP包年的費用:5M -> 1000多¥/年, 10M -> 8000多¥/年, 50M -> 3.8萬¥/年
參考一下,一臺ECS例項:5M半年下來費用1.3萬。

Docker container 繫結不同ip。

從程式碼中拷貝出來的一段

docker run --name $CONTAINER_NAME -v $(pwd)/web-desktop:/usr/share/nginx/html:ro -d -p $PRIVATE_IP:80:8081 -p $PRIVATE_IP:9000:9000 customize-nginx

$PRIVATE_IP可以指定主機以哪一個IP與container連線。

關於Mac電腦怎麼新增加一個ip,參考

一些t絮i絮p叨s叨

jenkins config

jenkins不同環境部署是通過slave方式部署的。生產環境因為是一臺機器部署兩套應用,比較特殊。前面已經介紹了一臺ECS例項通過NAT配置兩個公網IP(這是一種很常見的方式,官網上的應用場景和這裡很類似,官網有提到:“例項高利用率如果您的伺服器託管多個應用,您可以在彈性網絡卡上分配多個輔助私網IP地址,提升例項的利用率,每個應用對外呈現一個獨立的服務IP地址。”)
以下列的tips只是針對產品環境的。

  • slave 節點host ip配置:產品環境的部署通過兩個slave節點執行,兩個slave節點分別配置為產品環境ECS例項的不同公網ip。
  • slave 節點credentials配置:需要用不同的credentials進行ssh連線。雖然兩節點看似連線兩個環境ip,實際上是一臺ECS例項,如果都用root使用者進行ssh遠端控制檯登陸,配置的環境變數就沒法區分。
  • slave 節點remote root directory配置也需要配置為不同的。
  • 節點環境變數配置