昨天開好了第一台 EC2,今天就來連進主機,把 Docker 裝起來ㄅ!
這次使用 Session Manager,它是 AWS 提供的遠端連線工具,讓我們直接在瀏覽器操作 EC2,不需要準備 SSH 金鑰,也不用開放 22 port。
連線之前,要先讓 EC2 取得使用 Systems Manager(SSM)的權限。接下來會建立一個 IAM role,再把它掛到昨天的主機上。
IAM Role
AmazonSSMManagedInstanceCore 並勾選,讓主機取得使用 SSM 的基本權限。建立後,回到 IAM → 角色,點擊剛建立的角色名稱,進入角色詳細頁
在「許可(Permissions)」分頁的「許可政策」清單中,確認有 AmazonSSMManagedInstanceCore,就表示政策已成功加到角色上。
ap-east-2),點擊左側的"執行個體(Instances)",找到昨天建立的 my-app-server。如果已停機,先啟動,等狀態變成執行中(Running)且狀態檢查通過。
這次使用瀏覽器開啟 Session Manager 連線,也就是 AWS 提供讓使用者可以用網頁連線主機終端機的功能,之後也可以透過 AWS CLI 啟動同樣的連線。
ssh 指令。whoami
cat /etc/os-release
whoami 預設會顯示 ssm-user,這是 Session Manager 使用的 Linux 帳號;第二個指令則應該顯示 Amazon Linux 2023 的系統資訊。
看到這些結果,就確認我們已經連進昨天建立的主機了!接下來就來安裝 Docker。
Amazon Linux 2023 使用 dnf 管理軟體套件:
sudo dnf install -y docker
其中,sudo 表示以管理權限執行,-y 則是自動同意安裝提示。
安裝完成後,啟動 Docker,並設定以後開機時自動啟動:
sudo systemctl enable --now docker
跟前幾天的 Docker 練習一樣,我們用 hello-world 測試:
sudo docker run --rm hello-world
Docker 會先下載 image,再啟動 Container。看到 Hello from Docker!,就代表 Docker 已經能正常執行容器了!d(・∀・)b
PS.hello-world 印完訊息就會結束,--rm 會自動刪除這個已結束的容器,下載的 image 則會保留下來。
現在 EC2 已經能跑容器了!下一篇就來使用 ECR,把前幾天做好的 Next.js image 搬上雲端,再讓 EC2 拉下來執行ㄅ! d(d'∀')