Leo Yeh's Blog

AWS 基礎設施 (1)

教學目標

初步了解 AWS 資料庫移轉服務之最佳實務的基本概念。

重點概念

首先雲端基礎設施非常重要,世界各地的公司已經開轉向雲端基礎設施,提高 IT 靈活性、獲得無限的可擴展性、提高可靠性和降低成本,同時更期望能夠彈性地快速擴展其營運,而無須再擔心設定新的 IT 基礎架構,並且最大限度地減少延遲、資料傳輸所需的時間,以利提高客戶體驗。此外客戶更能夠輕鬆的支援任何特定國家和地區的資料主權要求,這代表需要有多樣化的資料中心地理區域可供選擇,以利彈性地選擇其應用程式之工作負載的部署位置,而 AWS 雲端平台遍及全球 22 個地理區域 (Regions),並且有 69 個可用區域 (Available Zones),所謂可用區域是基礎設施架構的核心,其構成了提供給客戶非常可靠的營運基礎,其中可用區域專為實體硬體進行冗餘設計,並且提供彈性,即使遇到停電、網際網路暫停服務、洪水和其他自然災害,也能實現不間斷的效能。

接著 AWS 雲端平台提供 Amazon CloudFront 雲端服務主要使用位於 31 個國家和地區、70 個城市總共 188 個全球網路節點將使用者的靜態內容副本暫存至離使用者較近的節點位置上的快取中,以利縮短使用者下載資料時的延遲,使得資料傳輸的過程更快速且穩定,以最低的延遲將資料內容交付給使用者。而在 188 個全球網路節點中有 177 個節點位置和 11 個區域節點快取,若是網站使用 Amazon CloudFront 雲端服務中節點位置 (Edge Locations) 所提供的快取內容,將能夠更快速地向全球任何國家和地區的任何使用者傳送網站內容,至於區域節點快取 (Regional Edge Caches) 主要是讓更多熱門的內容更接近使用者。此外網站應用程式通常需要在活動高峰期間應付流量高峰,此時透過 Amazon CloudFront 雲端服務將能夠在全球網路節點中取得相關資料內容的快取,並且僅在需要時從伺服器中擷取內容來減少伺服器的工作負載,以利將伺服器工作負載降低,有助於提高應用程式可用性。更進一步 Amazon CloudFront 雲端服務也允許我們設定多個伺服器,讓我們的後端架構能夠進行備援,並且使用 Amazon CloudFront 雲端服務中的本機原始伺服器容錯移轉功能,在無法使用主要伺服器時自動從備用伺服器提供內容,為伺服器容錯移轉所設定的備用伺服器。

再來 Amazon CloudFront 雲端服務是如何交付資料內容給使用者呢?以下就是使用者請求檔案時會發生的情況:

  1. 使用者存取網站或應用程式,並且請求一或多個檔案,像是影像檔案和網頁檔案。
  2. DNS 會將請求路由至能為請求提供最佳服務的節點位置,其通常是延遲最小、距離最近的節點位置,然後將請求路由至該節點。
  3. Amazon CloudFront 會檢查其快取中是否有所請求的檔案,若檔案在快取中,則將檔案的資料內容傳回給使用者,但若檔案不在快取中,則 Amazon CloudFront 會將檔案請求轉送至原始伺服器,以利取得對應的檔案類型,像是影像檔案的 Amazon S3 儲存庫和網頁檔案的 HTTP 伺服器,再從原始伺服器將檔案的資料內容傳送回給節點位置,當來自原始伺服器的第一個位元送達時,則 Amazon CloudFront 就會開始將檔案轉送至使用者,同時也會將檔案新增至節點中的快取,以提供後續請求直接使用快取中的檔案內容。

至於區域節點快取則是在節點位置和原始伺服器中間,在節點位置中 Amazon CloudFront 將會檢查其快取中是否有所請求的檔案,若檔案在快取中,則將傳回給使用者,但若檔案不在快取中,則節點位置將會移至最近的區域節點快取擷取檔案的資料內容,而在區域節點快取中 Amazon CloudFront 再次檢查其快取中所請求的檔案,若是檔案在快取中,則 Amazon CloudFront 會將檔案轉發到請求的節點位置中,一旦來自區域節點快取的第一個位元送達時,則 Amazon CloudFront 就會開始將檔案轉送至使用者,並且 Amazon CloudFront 也會將檔案新增至節點位置中的快取,以供後續某人請求這些檔案,若未在節點位置和區域節點快取找到對應的檔案資料內容,則 Amazon CloudFront 才會再將請求轉送至原始伺服器。

最後針對網路和應用程式層級的攻擊提供保護,此時 Amazon CloudFront 雲端服務除了能夠跨多個節點位置 (Multiple Edge Locations) 分配流量和過濾請求之外,更能夠確保僅將有效的 HTTP(S) 請求轉發到後端主機,並且支援地理阻止來防止來自特定地理位置的請求被提供,以利阻擋多種類型的攻擊,包括網路和應用程式層級的分散式阻斷服務 (DDoS) 攻擊。因此 Amazon CloudFront 雲端服務做為應用程式和基礎設施的前門,等於讓主要攻擊面遠離關鍵內容、數據、程式碼、基礎設施。因此在 AWS 雲端平台的基礎架構中有地理區域 (Regions)、可用區域 (Available Zones)、區域節點快取 (Regional Edge Caches)、多個節點位置 (Multiple Edge Locations)、節點位置 (Edge Locations),其中節點位置和多個節點位置的差別為何呢?如同上述所提到此時 Amazon CloudFront 雲端服務能夠跨多個節點位置 (Multiple Edge Locations) 阻擋多種類型的攻擊,像是網路和應用程式層級的分散式阻斷服務 (DDoS) 攻擊,但若是僅有節點位置 (Edge Locations) 則就會需要與 AWS Shield、AWS Web Application Firewall (AWS WAF)、Amazon Route 53、Elastic Load Balancing、Amazon Virtual Private Cloud (VPC) 等產品服務的搭配使用建立分層的安全保護,才能夠阻擋多種類型的攻擊,像是網路和應用程式層級的分散式阻斷服務 (DDoS) 攻擊。

總結使用者會從節點位置或多個節點位置開始存取資料內容,主要看哪一個延遲時間較短,並且檢查節點位置的快取中是否有對應的資料內容,若是沒有才會轉送至區域快取節點,再次檢查節點位置的快取中是否有對應的資料內容是否有對應的資料內容,若是沒有才會轉送至指定地理區域和可用區域中的伺服器處理請求,再回傳給資料內容使用者。

相關資源

⬅️ Go back