在前面一篇我們成功啟動了ec2,並透過 instances connect 與 ec2進行連線,那現在我們就要在那台ec2 肚子裡面安裝docker。
進行docker 安裝 (Amazon Linux )
# 更新系統軟體包
sudo yum update -y
# 使用 yum 安裝 Docker:
sudo yum install -y docker
# 啟動 Docker 服務
# 啟動 Docker 服務並設為開機自啟:
sudo service docker start
sudo systemctl enable docker
# 驗證 Docker 安裝
# 檢查 Docker 是否成功安裝並正在運行:
sudo docker --version
# 添加使用者到 Docker 群組(可選)
# 為了不需要每次都使用 sudo,可以將使用者加入 Docker 群組:
sudo usermod -aG docker $USER
# 然後,重新登入或執行以下命令以使更改生效:
newgrp docker
# 拉取 Nginx 映像檔
docker pull nginx:latest
# 執行 Nginx 容器,對外開放 80 port
docker run -d --name mynginx -p 80:80 nginx:latest
3: 進行ALB綁定
先進入到AWS Ec2 -> Load balancers -> create Application Load balancers 。
選擇internet-facing 的方式進行建置,差別在於 DNS後面綁定的IP是VPC 分配的私有IP,還是公開的 public IP。這裡選擇internet-facing 進行建置。
在Network mapping 選擇我們再前面建置的VPC,在選擇AZ的時候要稍微注意,建議將有資源運行的AZ都選擇起來,目前我們ec2 建置在1a,假如我ALB 沒有選擇1a,會導致ALB 無法與 ec2 進行溝通。
SG建議創建專屬於ALB使用的SG,來進行流量的控管。
在Listeners and routing,我們需要先建立 target group。在畫面中選擇 target group 進行創建,
依照圖中的選擇進行建立,我們TG裡面綁定的目標是ec2,所以選擇instances type,VPC選擇 ec2 所在的VPC
將我們前面建立的ec2 進行綁定。
再回到ALB的畫面,將剛剛建立的TG進行綁定。
4: 測試
我們就可以到ALB自動產生的DNS,進入到我們剛剛建立的NGINX。
以下為成功畫面。
小提醒: 記得需要開通 ec2 SG 與 ALB 的SG ,讓ec2 允許 ALB 流量近來ec2進行連線。
我們就成功在ec2執行了我們第一個container ,但我們還是採用ec2,有虛擬機我們就需要定期的更新,修補漏洞,自動化的災害備援都要額外設定,我們雲原生還可以做得更好,所以後續我們就會將當前的container 把它移動到 AWS ECS/EKS來執行,讓AWS幫我們做更多的事情。