iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
Modern Web

前端來點 AWS 技能樹!系列 第 12 篇

Day12 - 用 Session Manager 連進 EC2,裝好 Docker

  • 分享至 

  • xImage
  •  

昨天開好了第一台 EC2,今天就來連進主機,把 Docker 裝起來ㄅ!

這次使用 Session Manager,它是 AWS 提供的遠端連線工具,讓我們直接在瀏覽器操作 EC2,不需要準備 SSH 金鑰,也不用開放 22 port。

設定 SSM 權限

連線之前,要先讓 EC2 取得使用 Systems Manager(SSM)的權限。接下來會建立一個 IAM role,再把它掛到昨天的主機上。

建立 IAM Role

  1. 使用前幾天建立的 IAM 使用者登入 AWS Console,搜尋並進入 IAM,再點左側的「角色(Roles)」。
    https://ithelp.ithome.com.tw/upload/images/20260926/201797937tcWxJiuho.png
  2. 點擊「建立角色(Create role)」。
  3. 第一步:選取信任的實體 (Trusted entity type)
  • 信任的實體類型 (Trusted entity type) 選 AWS 服務(AWS service)
  • 服務或使用案例 (Service or use case) 選 EC2
    https://ithelp.ithome.com.tw/upload/images/20260926/20179793SfJevKw4pS.png
  1. 權限政策頁面,**許可政策(Permissions policies)**可以想成一份「允許做哪些事」的清單。 把政策加到角色上,就是替這個角色設定權限。
  • 在搜尋欄輸入 AmazonSSMManagedInstanceCore 並勾選,讓主機取得使用 SSM 的基本權限。
  • 「許可範圍」用來限制角色的權限上限,這次維持預設、不另外設定,再按「下一步」。
  1. 角色名稱(Role name)輸入你想要的名稱,下方可以看到剛剛所填的所有設定,確認沒問題後建立。

建立後,回到 IAM → 角色,點擊剛建立的角色名稱,進入角色詳細頁
在「許可(Permissions)」分頁的「許可政策」清單中,確認有 AmazonSSMManagedInstanceCore,就表示政策已成功加到角色上。

掛到昨天的主機

  1. 回到 EC2,確認 Region 是台北(ap-east-2),點擊左側的"執行個體(Instances)",找到昨天建立的 my-app-server。如果已停機,先啟動,等狀態變成執行中(Running)且狀態檢查通過。
  2. 勾選這台主機後點擊右上動作(Actions)→ 安全性(Security)→ 修改 IAM 角色(Modify IAM role)進到 修改 IAM 角色頁面
    https://ithelp.ithome.com.tw/upload/images/20260926/20179793tQI9v5ZU5B.png
  3. 選擇剛剛建的 role 名稱後,點更新 IAM 角色
    這樣就把角色掛到 EC2 上了。接著等待幾分鐘,再來嘗試連線。

用瀏覽器連進主機

這次使用瀏覽器開啟 Session Manager 連線,也就是 AWS 提供讓使用者可以用網頁連線主機終端機的功能,之後也可以透過 AWS CLI 啟動同樣的連線。

  1. 跟剛剛一樣勾選這台主機,點擊右上"連線(Connect)"後會進到「連線至 Linux 執行個體」頁面。
  2. 這裡有兩個分頁:
  • 在 Web 瀏覽器中:直接在 AWS Console 開啟遠端終端機。
  • 在 SSH 用戶端中:使用 SSH 工具連線,例如在自己電腦的終端機執行 ssh 指令。
    這次選「在 Web 瀏覽器中」,再選 SSM Session Manager,透過瀏覽器操作主機。
  1. 點擊右下角的「連線」。瀏覽器出現終端機畫面。
  2. 輸入以下指令,確認目前的使用者與作業系統:
whoami
cat /etc/os-release

whoami 預設會顯示 ssm-user,這是 Session Manager 使用的 Linux 帳號;第二個指令則應該顯示 Amazon Linux 2023 的系統資訊。

看到這些結果,就確認我們已經連進昨天建立的主機了!接下來就來安裝 Docker。

安裝 Docker

Amazon Linux 2023 使用 dnf 管理軟體套件:

sudo dnf install -y docker

其中,sudo 表示以管理權限執行,-y 則是自動同意安裝提示。
安裝完成後,啟動 Docker,並設定以後開機時自動啟動:

sudo systemctl enable --now docker

跑第一個 Container

跟前幾天的 Docker 練習一樣,我們用 hello-world 測試:

sudo docker run --rm hello-world

Docker 會先下載 image,再啟動 Container。看到 Hello from Docker!,就代表 Docker 已經能正常執行容器了!d(・∀・)b
https://ithelp.ithome.com.tw/upload/images/20260926/20179793Rxz1HkUr8o.png
PS.hello-world 印完訊息就會結束,--rm 會自動刪除這個已結束的容器,下載的 image 則會保留下來。

現在 EC2 已經能跑容器了!下一篇就來使用 ECR,把前幾天做好的 Next.js image 搬上雲端,再讓 EC2 拉下來執行ㄅ! d(d'∀')


上一篇
Day11 - 開一台 EC2
下一篇
Day13 - 把 Image 推上 ECR,讓 Next.js 在 AWS 上跑起來
系列文
前端來點 AWS 技能樹! 共 19 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言