iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
Build on AWS

AWS 雲原生,學起來比泡咖啡還快系列 第 8

DAY8 - Docker:裝進神奇保鮮盒

  • 分享至 

  • xImage
  •  

今天主要任務目標,在EC2 透過 CONTAINER 執行一個簡單的 nginx,並透過 ALB 進行流向的轉導。

在開始前先簡單介紹一下 什麼是 Docker 或是說 什麼是 容器化。

容器化是什麼?

容器化就像是把你的應用程式「打包成一個行李箱」,裡面裝好所有它運作需要的東西(程式碼、工具、設定…),這樣無論你把它搬到哪裡(不同電腦、雲端、作業系統),打開就能用,完全不用擔心少了什麼或跑不起來。

為什麼大家愛用容器化?

可攜性:走到哪都能跑
容器就像打包好的行李箱,想去哪就去哪,不用每次都重新整理。你寫好的應用程式,不管是在你家電腦、公司伺服
器還是雲端都能直接跑起來,不用改來改去。

可擴展性:輕巧又高效率
容器就像快速泡麵,開一個只要幾秒,比傳統「開一個廚房」來煮飯(虛擬機器)快太多。你可以輕鬆在一台機器上開很多個容器,各做各的事,互不干擾。

容錯能力:壞一個不影響整體
如果某個容器壞了,就像一間店關門休息,不會影響整條商店街其他店鋪營業。這樣一來整個應用系統就更穩定、更有彈性。

敏捷性:改程式快又安全
容器就像自己的小隔間,你可以在裡面安心測試、修東西,不會影響到別人。開發人員可以快速更新程式、修 Bug,不用等大工程。

容器化能用在哪些地方?

雲端移轉
有些老舊的應用程式不容易搬到雲端。透過容器化,就像是把舊家具用收納箱裝好,再搬進新家,過程省事又快速。
微服務架構

現代 App(像 Netflix 或 Spotify)是由很多小功能組成的,比如登入、播放、推薦等等。容器可以把這些小功能一個個分開裝好,分工合作又方便管理。

IoT 裝置
物聯網設備(像智慧手錶、感應器)資源有限,更新麻煩。但如果用容器打包程式,更新就像換一整顆記憶卡,一次搞定,快速又安全。

為什麼容器跟雲端這麼契合?

—— 因為它們超合拍,像奶茶配珍珠!

1.雲端要彈性,容器剛好超靈活
雲端的重點是:隨時啟動、隨時關閉、根據需求自動擴展資源。
容器剛好就是這種快啟快用、輕量好搬的單位。

比喻:雲端就像是開放的舞台,而容器是可以立刻登台演出的行動舞者。需要多幾個舞者?秒叫!不需要了?秒退!

2.快速啟動、不浪費資源
在雲端環境裡,資源就是錢。
容器啟動速度快又不佔太多資源,可以有效節省成本。
傳統虛擬機:像等飛機起飛
容器:像打開速食便當,秒開秒吃

  1. 可攜性高,部署超一致
    容器讓你在本地開發的程式碼,100% 原封不動丟上雲端也能跑,減少「本機 OK,雲端出錯」的機會。
    就像你帶便當出門,不管去哪裡打開,裡面都是熟悉的味道。

  2. 非常適合 DevOps 和 CI/CD
    雲端 + 容器的組合是現在 DevOps 團隊的最愛,因為它們支援快速部署、自動測試、自動更新(CI/CD 流程)。
    比喻:容器像 LEGO 積木,開發、測試、部署只要接上去就好,組裝快速又穩定。

  3. 雲平台都愛容器,支援超完整
    AWS、GCP、Azure 等主流雲平台都內建對容器的支援,像是:

  • Amazon ECS / EKS
  • Google Kubernetes Engine (GKE)
  • Azure Kubernetes Service (AKS)

甚至還提供完整的容器註冊中心(像 Docker Hub 或 Amazon ECR)讓你隨時上傳、下載容器映像檔。
雲平台幫你處理容器的部署、擴展、監控,你只管開發就好!

總結一句話:
容器是輕巧的應用包裝盒,雲端是靈活的應用舞台,兩者一拍即合,打造快速、穩定又好擴充的現代應用系統。


我們了解了容器後我們就接著進入實作階段,

1: 進入到ec2。
要與ec2 連線,最常用的大概會有這幾種方式。

SSH 連線

  • 適用於有 Public IP 的 EC2
  • 需要 .pem 金鑰和開啟 port 22
  • 直接使用 SSH 連線到 EC2

Private Instance 連線(跳板機)

  • Private EC2 沒有 Public IP,不能直接連
  • 透過有 Public IP 的跳板機(Bastion Host)先連入,再轉跳進 Private EC2

EC2 Instance Connect

  • AWS 提供的瀏覽器 SSH 連線工具
  • 免管理 SSH 金鑰,透過 AWS Console 直接連線

AWS Systems Manager (SSM) Session Manager

  • 不需 Public IP,也不用開 SSH Port
  • 透過 AWS 內部網路安全連線
  • 適合 Private Instance,並支援審計與管理

我們這裡為了方便採用 EC2 Session Manager 的方式進行連線,如果EC2 是使用 Amazon Linux / ubuntu,預設就會有安裝 Session Manager 的套件,讓你可以透過AWS console 進行連線,如畫面下圖。點右上角connect 可以進入連線畫面
https://ithelp.ithome.com.tw/upload/images/20250910/201454625XGN9AokzZ.png
進行連線,如畫面下圖。點右上角connect 可以進入連線畫面,就可以透過EC2 Session Manager 進行連線。
https://ithelp.ithome.com.tw/upload/images/20250910/20145462vEM6kDEicP.png
成功進入EC2啦!
https://ithelp.ithome.com.tw/upload/images/20250910/20145462GqEMv7h2us.png

小補充: 在實務上滿常使用SSM來進行連線,因使用SSH 還是需要開 22 port 來進行連線,但透過SSM 只需要在 EC2 安裝 SSM agent ,就只需要在 EC2 SG 出的規則加上443 port ,就可以進行連線。


上一篇
DAY7 - EC2 就像雲端電腦開機
下一篇
DAY9 - 第一個容器:NGINX 上雲!
系列文
AWS 雲原生,學起來比泡咖啡還快20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言