iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
0
自我挑戰組

AWS架構應用系列 第 8

Amazon Elastic Compute Cloud (EC2) - Day08

  • 分享至 

  • xImage
  •  

Amazon Elastic Compute Cloud (EC2) - Day08

今天的目標是把 WEB 伺服器放到 AWS 的雲端中,如下圖所示:

在 AWS 雲端建立 WEB 伺服器
圖一、在 AWS 雲端建立 WEB 伺服器

而在介紹如何建立 WEB 伺服器前先了解一下AWS的基礎服務架構,圖二是 AWS 的服務堆棧,最底層就是有資料中心所建立的基礎設施:區域、可用區、邊緣站點,一個區域包含數個可用區,AWS的服務是各個區域獨立運行的,舉例來說,北美區域(us-east-1)的 AWS 服務有提供影像識別服務 Amazon rekognition,但有可能亞太區域(ap-east-1)的 AWS 服務卻沒有提供;邊緣站點是用來提供加速存取之用,主要是輔助內容交付網路 (CDN) 服務-Amazon CloudFront。
而雲端服務最重要的三個基礎服務分別為計算、聯網跟儲存,上兩篇所介紹的 VPC 就是屬於聯網的部分,而今天要介紹的 EC2 就是屬於提供計算的服務,當然也會有需要部份的儲存服務

AWS 的服務堆棧
圖二、 AWS 的服務堆棧

EC2 簡介

Amazon EC2 的全稱是 Elastic Compute Cloud。

  • Elastic 如果配置正確,您可以根據應用程式的當前需求,自動增加或減少此應用程式所需的伺服器數量。
  • Compute 計算或伺服器資源。
  • Cloud 這些計算資源實際由雲端託管。

Amazon EC2 目前的應用有以下這些,但不限於這些應用

  • 應用程式伺服器
  • Web 伺服器
  • 資料庫伺服器
  • 遊戲伺服器
  • 郵件伺服器
  • 媒體伺服器
  • 目錄伺服器
  • 檔案伺服器
  • 計算伺服器
  • 代理伺服器

Amazon EC2 主要特色

  • 提供了簡單的網頁操作介面或執行幾行代碼即可啟動和管理的虛擬計算環境(實例)。
  • 支援大多數伺服器作業系統。
  • 創建、保存和重複使用您自己的伺服器映射,稱為 Amazon Machine Image (AMI)。
  • 一次啟動一個實例或啟動整個佇列。
  • 在需要時添加更多實例;在不需要時終止實例。
  • 設定時要注意CPU/GPU、記憶體、硬碟容量、聯網。
  • 使用安全群組來控制進出實例的流量。

Amazon Machine Image (AMI)

AMI 猶如 VMware 與 Virtual Box中的映像檔(image file),當 AMI 啟動並充當使用 Amazon EC2 提供的服務部署的基本單元時,將定義實例啟動時軟體狀態的各個方面,包括:

  • 作業系統 (OS) 及其配置
  • 任何補丁的初始狀態
  • 應用程式或系統軟體
  • 所有 AMI 都基於 X86 作業系統(Linux 或 Windows)。

AMI 生命週期和使用,請參照圖三

  • 創建並註冊 AMI。
  • 使用: 啟動新實例或在相同區域內複製或複製到其他區域。
  • 不再需要時,取消註冊 AMI。

AMI 生命週期和使用
圖三、 AMI 生命週期和使用

AWS 有提供一個 AMI 社群,使用者可以把自己設定好的 AMI 放在上面,也可以直接使用別人設定好的 AMI 來直接使用,以目前最熱門的深度學習為例,使用者就可以直接在 Amazon AMI 社群中,找到已經安裝好的 AMI ,如 python, tensorflow, pytorch 等等的套件,來直接對接到指定的 Amazon EC2 即可直接使用,省去安裝的困擾。

建立 Amazon EC2

首先進入 AWS 管理控制台,登入後選擇 EC2 服務,進入 EC2 主控台,注意是否是 1. 在新加坡地區(必須要跟先前規劃的 VPC 所在區域相同), 2. 按下左手邊的執行個體後, 3. 在按下右手邊的 Launch Instance

啟動 Amazon EC2 實例
圖四、啟動 Amazon EC2 實例

啟動 Amazon EC2 實例需要有七個步驟,分別是:

  1. Choose AMI: 可以在不同的市集中選擇適合的作業系統、適用的 CPU 架構(X86/arm)、適合的套件等等(圖五),要注意的是有些 AMI 是要收費的,還有 AMI 會跟接下來的 Instance Type與 Storage 有相關性,因為有些AMI需要較高的性能才有辦法執行。預設選 Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-0b1e534a4ff9019e0 (64-bit x86)
  2. Choose Instance Type: 這跟計算能力有關,所以也反映到收費上,要求的計算能力越高,收費越高。預設選 t2.micro
  3. Configure Instance: 主要就是設定 EC2 實例的內容,有很多細部設定,就不一一說明,主要就是把這個實例放到昨天設定好的公有子網 ithome public subnet 1 中,以下是需要修改的部分,其它的欄位就保持預設值即可(圖六)。

Network : vpc-0bb7004b67556d0da | ithomeVPC
Subnet : subnet-0f1df807467b642f6 | ithome public subnet 1 | ap-southeast-1a
Auto-assign Public IP : Enable

  1. Add Storage: 這相當於選擇硬碟大小,因為是安裝 Amazon Linux ,所需空間不大,保持預設值即可。 8
  2. Add Tags: 可加可不加,通常是用在Cloud watch觀察比較方便,我們先不加。
  3. Configure Security Group: 為提供安全保障,限制進來的連線,因為我們是建置 Web 伺服器,所以打開埠號 22 與 80(圖七) 。

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

  1. Review: 看一下前述的所有設定,確定無誤後就直接按下 Launch

  2. Key pair 設定: 因為安全考量,AWS要求使用者務必要用密鑰對( key pair )的方式來進行連線,因此在啟動 EC2 前會要求建立或選擇密鑰對,下載下來的密鑰對鑰一定要好好保存,遺失後是沒辦法再重新下載的。

Create a new key pair
Key pair name: ithome

AMI 選擇畫面
圖五、AMI 選擇畫面

EC2實例組態設定
圖六、EC2實例組態設定

EC2安全組設定
圖七、EC2安全組設定

EC2 key pair 下載
圖八、EC2 key pair 下載

連線到 Amazon EC2 (Windows)

請參考 AWS 的參考手冊使用 PuTTY 從 Windows 連線至您的 Linux 執行個體,完成下列兩件事:

  1. 下載並安裝 PuTTY。
  2. 將剛下載的 EC2 key pair - ithome.pem 檔案轉換為 Putty 程式讀取的可以 .ppk 檔案

回到 EC2 主控台 選擇執行個體,就可以看到剛剛啟動的 Amazon EC2,找到 IPv4 Public IP 這個欄位,作為Putty連線之用,從圖九我們可以再次確認這個EC2所在的 VPC, Subnet, IPv4 Public IP, Availability zone, Security groups等資訊是否正確。

EC2 實例內容
圖九、EC2 實例內容

現在萬事俱備,有putty遠端連線軟體、Amazon EC2、公有 IP 、以及密鑰,接著要完成的就是進行從本地端登入到雲端的 Amazon EC2,打開Putty,輸入以下資料(圖十):

Host Name( or IP address): ec2-user@13.250.62.21 (前面是登入帳號,@後面是公有IP)
Saved Sessions: ithome

PuTTy 組態設定
圖十、PuTTy 組態設定

接著選擇 Connection -> SSH -> Auth 選項,輸入連線設定(圖十一)

Private key file for Authentication: 請選擇剛剛轉換好的 .ppk 檔

PuTTy 安全連線設定
圖十一、PuTTy 安全連線設定

設定完畢後再選 Session 選項,記得先按 Save 存檔,再按 Open 去進行連線,連線成功後會顯示 PuTTy 的連線警告,按下 Yes 後就可以順利連線。

PuTTy 連線警告
圖十二、PuTTy 連線警告

登入成功後可以看到 Amazon Linux 的歡迎畫面,可以輸入 df -h 檢查一下硬碟大小,應該就是先前設定的8G

PuTTy 登入成功畫面
圖十三、PuTTy 登入成功畫面

接著只要再把另一個Web 伺服器再放到 ithome public subnet 2 這個公有子網2就可以了。


上一篇
Amazon VPC 練習 - Day07
下一篇
Elastic Load Balancing (ELB) - Day09
系列文
AWS架構應用24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言