今天主要任務目標,在EC2 透過 CONTAINER 執行一個簡單的 nginx,並透過 ALB 進行流向的轉導。
在開始前先簡單介紹一下 什麼是 Docker 或是說 什麼是 容器化。
容器化就像是把你的應用程式「打包成一個行李箱」,裡面裝好所有它運作需要的東西(程式碼、工具、設定…),這樣無論你把它搬到哪裡(不同電腦、雲端、作業系統),打開就能用,完全不用擔心少了什麼或跑不起來。
可攜性:走到哪都能跑
容器就像打包好的行李箱,想去哪就去哪,不用每次都重新整理。你寫好的應用程式,不管是在你家電腦、公司伺服
器還是雲端都能直接跑起來,不用改來改去。
可擴展性:輕巧又高效率
容器就像快速泡麵,開一個只要幾秒,比傳統「開一個廚房」來煮飯(虛擬機器)快太多。你可以輕鬆在一台機器上開很多個容器,各做各的事,互不干擾。
容錯能力:壞一個不影響整體
如果某個容器壞了,就像一間店關門休息,不會影響整條商店街其他店鋪營業。這樣一來整個應用系統就更穩定、更有彈性。
敏捷性:改程式快又安全
容器就像自己的小隔間,你可以在裡面安心測試、修東西,不會影響到別人。開發人員可以快速更新程式、修 Bug,不用等大工程。
雲端移轉
有些老舊的應用程式不容易搬到雲端。透過容器化,就像是把舊家具用收納箱裝好,再搬進新家,過程省事又快速。
微服務架構
現代 App(像 Netflix 或 Spotify)是由很多小功能組成的,比如登入、播放、推薦等等。容器可以把這些小功能一個個分開裝好,分工合作又方便管理。
IoT 裝置
物聯網設備(像智慧手錶、感應器)資源有限,更新麻煩。但如果用容器打包程式,更新就像換一整顆記憶卡,一次搞定,快速又安全。
—— 因為它們超合拍,像奶茶配珍珠!
1.雲端要彈性,容器剛好超靈活
雲端的重點是:隨時啟動、隨時關閉、根據需求自動擴展資源。
容器剛好就是這種快啟快用、輕量好搬的單位。
比喻:雲端就像是開放的舞台,而容器是可以立刻登台演出的行動舞者。需要多幾個舞者?秒叫!不需要了?秒退!
2.快速啟動、不浪費資源
在雲端環境裡,資源就是錢。
容器啟動速度快又不佔太多資源,可以有效節省成本。
傳統虛擬機:像等飛機起飛
容器:像打開速食便當,秒開秒吃
可攜性高,部署超一致
容器讓你在本地開發的程式碼,100% 原封不動丟上雲端也能跑,減少「本機 OK,雲端出錯」的機會。
就像你帶便當出門,不管去哪裡打開,裡面都是熟悉的味道。
非常適合 DevOps 和 CI/CD
雲端 + 容器的組合是現在 DevOps 團隊的最愛,因為它們支援快速部署、自動測試、自動更新(CI/CD 流程)。
比喻:容器像 LEGO 積木,開發、測試、部署只要接上去就好,組裝快速又穩定。
雲平台都愛容器,支援超完整
AWS、GCP、Azure 等主流雲平台都內建對容器的支援,像是:
甚至還提供完整的容器註冊中心(像 Docker Hub 或 Amazon ECR)讓你隨時上傳、下載容器映像檔。
雲平台幫你處理容器的部署、擴展、監控,你只管開發就好!
總結一句話:
容器是輕巧的應用包裝盒,雲端是靈活的應用舞台,兩者一拍即合,打造快速、穩定又好擴充的現代應用系統。
我們了解了容器後我們就接著進入實作階段,
1: 進入到ec2。
要與ec2 連線,最常用的大概會有這幾種方式。
我們這裡為了方便採用 EC2 Session Manager 的方式進行連線,如果EC2 是使用 Amazon Linux / ubuntu,預設就會有安裝 Session Manager 的套件,讓你可以透過AWS console 進行連線,如畫面下圖。點右上角connect 可以進入連線畫面
進行連線,如畫面下圖。點右上角connect 可以進入連線畫面,就可以透過EC2 Session Manager 進行連線。
成功進入EC2啦!
小補充: 在實務上滿常使用SSM來進行連線,因使用SSH 還是需要開 22 port 來進行連線,但透過SSM 只需要在 EC2 安裝 SSM agent ,就只需要在 EC2 SG 出的規則加上443 port ,就可以進行連線。