今天的目標是把 WEB 伺服器放到 AWS 的雲端中,如下圖所示:
圖一、在 AWS 雲端建立 WEB 伺服器
而在介紹如何建立 WEB 伺服器前先了解一下AWS的基礎服務架構,圖二是 AWS 的服務堆棧,最底層就是有資料中心所建立的基礎設施:區域、可用區、邊緣站點,一個區域包含數個可用區,AWS的服務是各個區域獨立運行的,舉例來說,北美區域(us-east-1)的 AWS 服務有提供影像識別服務 Amazon rekognition,但有可能亞太區域(ap-east-1)的 AWS 服務卻沒有提供;邊緣站點是用來提供加速存取之用,主要是輔助內容交付網路 (CDN) 服務-Amazon CloudFront。
而雲端服務最重要的三個基礎服務分別為計算、聯網跟儲存,上兩篇所介紹的 VPC 就是屬於聯網的部分,而今天要介紹的 EC2 就是屬於提供計算的服務,當然也會有需要部份的儲存服務
圖二、 AWS 的服務堆棧
Amazon EC2 的全稱是 Elastic Compute Cloud。
Amazon EC2 目前的應用有以下這些,但不限於這些應用
Amazon EC2 主要特色
AMI 猶如 VMware 與 Virtual Box中的映像檔(image file),當 AMI 啟動並充當使用 Amazon EC2 提供的服務部署的基本單元時,將定義實例啟動時軟體狀態的各個方面,包括:
AMI 生命週期和使用,請參照圖三
圖三、 AMI 生命週期和使用
AWS 有提供一個 AMI 社群,使用者可以把自己設定好的 AMI 放在上面,也可以直接使用別人設定好的 AMI 來直接使用,以目前最熱門的深度學習為例,使用者就可以直接在 Amazon AMI 社群中,找到已經安裝好的 AMI ,如 python, tensorflow, pytorch 等等的套件,來直接對接到指定的 Amazon EC2 即可直接使用,省去安裝的困擾。
首先進入 AWS 管理控制台,登入後選擇 EC2 服務,進入 EC2 主控台,注意是否是 1. 在新加坡地區(必須要跟先前規劃的 VPC 所在區域相同), 2. 按下左手邊的執行個體後, 3. 在按下右手邊的 Launch Instance
圖四、啟動 Amazon EC2 實例
啟動 Amazon EC2 實例需要有七個步驟,分別是:
Network : vpc-0bb7004b67556d0da | ithomeVPC
Subnet : subnet-0f1df807467b642f6 | ithome public subnet 1 | ap-southeast-1a
Auto-assign Public IP : Enable
Assign a security group: Create a new security group
Security group name: ithome_web_SG
Description: ITHOME Web server Security Group
Type: SSH, HTTP
Source: Anywhere, Anywhere
Review: 看一下前述的所有設定,確定無誤後就直接按下 Launch
Key pair 設定: 因為安全考量,AWS要求使用者務必要用密鑰對( key pair )的方式來進行連線,因此在啟動 EC2 前會要求建立或選擇密鑰對,下載下來的密鑰對鑰一定要好好保存,遺失後是沒辦法再重新下載的。
Create a new key pair
Key pair name: ithome
圖五、AMI 選擇畫面
圖六、EC2實例組態設定
圖七、EC2安全組設定
圖八、EC2 key pair 下載
請參考 AWS 的參考手冊使用 PuTTY 從 Windows 連線至您的 Linux 執行個體,完成下列兩件事:
回到 EC2 主控台 選擇執行個體,就可以看到剛剛啟動的 Amazon EC2,找到 IPv4 Public IP 這個欄位,作為Putty連線之用,從圖九我們可以再次確認這個EC2所在的 VPC, Subnet, IPv4 Public IP, Availability zone, Security groups等資訊是否正確。
圖九、EC2 實例內容
現在萬事俱備,有putty遠端連線軟體、Amazon EC2、公有 IP 、以及密鑰,接著要完成的就是進行從本地端登入到雲端的 Amazon EC2,打開Putty,輸入以下資料(圖十):
Host Name( or IP address): ec2-user@13.250.62.21 (前面是登入帳號,@後面是公有IP)
Saved Sessions: ithome
圖十、PuTTy 組態設定
接著選擇 Connection -> SSH -> Auth 選項,輸入連線設定(圖十一)
Private key file for Authentication: 請選擇剛剛轉換好的 .ppk 檔
圖十一、PuTTy 安全連線設定
設定完畢後再選 Session 選項,記得先按 Save 存檔,再按 Open 去進行連線,連線成功後會顯示 PuTTy 的連線警告,按下 Yes 後就可以順利連線。
圖十二、PuTTy 連線警告
登入成功後可以看到 Amazon Linux 的歡迎畫面,可以輸入 df -h 檢查一下硬碟大小,應該就是先前設定的8G
圖十三、PuTTy 登入成功畫面
接著只要再把另一個Web 伺服器再放到 ithome public subnet 2 這個公有子網2就可以了。