蔡瑋詳
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    本篇筆記參考官方AWS Cloud Practitioner Essentials之教材內容,並整理考試可能會需要用到的內容。 AWS CLF-C02為AWS雲端初階的證照,其課程內容對於未接觸過雲端的人員算是很好入門的一門課。 2024/03/02取得證照,認真準備時間大約1個月左右。 自己如何準備考試: 1. 官方教材唸完一輪 2. 官方考試指南: https://d1.awsstatic.com/zh_TW/training-and-certification/docs-cloud-practitioner/AWS-Certified-Cloud-Practitioner_Exam-Guide.pdf **(一定要看!!!官方很貼心,在考試指南裡有列出會在考試範圍內的服務,務必大概要了解各個服務在做什麼事,P.S.很多服務官方教材沒有提到!)** 4. Examtopics考古題 **(一定要做!!!命中率超過80%,但只有英文版)** 內容若有錯誤或有建議調整的地方,也歡迎告知 ~ --- # **Chapter 1 Amazon Web Services簡介** ## **雲端運算** ### **雲端運算的部署模型** 在選擇雲端策略時,公司必須考量的因素包括必備雲端應用程式元件、偏好的資源管理工具,以及任何舊版 IT 基礎設施需求等。 雲端運算的三種部署模型分別為**雲端**、**內部部署**和**混合**。 * 以**雲端**為基礎進行部署 1. 在雲端中執行完整的應用程式。 2. 將現有的應用程式遷移至雲端。 3. 在雲端中設計和建立新的應用程式。 在以雲端為基礎的部署模型中,您可以將現有的應用程式遷移至雲端,或在雲端中設計和建立新的應用程式。您可在低層級基礎設施上建置此類應用程式,且需要IT職員加以管理。或者,您也可以使用較高層級的服務來建置此類服務,以減少核心基礎設施的管理、架構和擴充需求。 例如,公司可能會建立由虛擬伺服器、資料庫以及完全以雲端為基礎之網路元件組成的應用程式。 * **內部部署**之部署方式 1. 透過虛擬化和資源管理工具來部署資源。 2. 運用應用程式管理和虛擬化技術提高資源使用率。 內部部署亦稱為私有雲端部署。在此模型中,資源會透過虛擬化和資源管理工具部署於內部部署。 例如,您可能有應用程式仰賴完全保存於內部部署資料中心的技術。雖然此模型與傳統IT基礎設施非常相似,但其結合應用程式管理和虛擬化技術,可協助提高資源使用率。 * **混合部署** 1. 將雲端資源連接到內部部署基礎設施。 2. 整合雲端資源與傳統IT應用程式。 在混合部署中,雲端資料會連接到內部部署基礎設施。在幾種情況下,建議您使用此方法。例如,您的舊版應用程式能在內部部署中獲得更好的維護,或者政府法規要求您的企業保存特定內部部署紀錄。 例如,假設公司想要使用可自動化批次資料處理和分析的雲端服務。但是,該公司有數個舊版應用程式,較適用於內部部署,不會遷移至雲端。透過混合部署,該公司將可在內部部署中保存舊版應用程式,同時享有執行在雲端中的資料和分析服務之優勢。 ### **雲端運算的優勢** (必考) 在解決業務需求時,請先思考公司可能需要選擇採取特定雲端運算方法的原因。 * **將預付成本轉變成變動成本**:預付成本是指資料中心、實體伺服器及其他您在使用前就需要預先投資的資源。變動成本表示您僅須為所使用的運算資源付費,而非大量投資於資料中心和伺服器後,才知道您將如何加以使用。透過採取提供變動成本優勢的雲端運算方法,許多公司得以實作創新解決方案,同時還能節省成本。 * **停止將資金花費在執行和維護資料中心上**:在資料中心執行雲端運算,通常需要花費更多金錢和時間來管理基礎設施和伺服器。採用雲端運算的優勢即是可讓您減少在這類工作上花費的力氣,並將更多關注放在應用程式和客戶上。 * **無需猜測容量**:透過雲端運算,您不必須先評估需要多少基礎設施容量,就能開始部署應用程式。舉例來說,您可在有需要時再啟動Amazon EC2執行個體,且僅需支付所用運算時間的費用。您不必為了未使用的資源而增加開銷,或以受限的容量處理工作,而可以僅存取所需的容量。您也可以根據需求縮減規模或向外擴展。 * **受益於大範圍規模經濟**:使用雲端運算的可變成本比自行建立的可變成本還低。因為數以萬計的客戶用量會在雲端中彙總,所以AWS等供應商可達到更大的規模經濟。而這樣的規模則可轉化為較低廉的實支實付價格。 * **提升速度和敏捷性**:雲端運算的彈性可讓您更輕鬆地開發和部署應用程式。這種彈性可讓您有更多時間進行實驗和創新。資料中心的運算作業可能需要數周才能取得所需的新資源。相較之下,雲端運算可讓您在幾分鐘內就能忖取新資源。 * **快速進入全球市場**:AWS雲端遍及全球,因此,您不僅能快速向全球各地的客戶部署應用程式,還能降低延遲。也就是說,即使您與客戶身處世界的兩端,客戶仍能以極小的延遲存取您的應用程式。 # **Chapter 2 雲端中的運算** ## **Amazon Elastic Compute Cloud (Amazon EC2)** **Amazon Elastic Compute Cloud (Amazon EC2)** 可在雲端以Amazon EC2伺服器執行個體的形式提供安全、可調整大小的運算容量。 假設您負責公司用於支援新網站的資源及需求架構。使用傳統的內部部署資源時,您必須完成下列動作: * 預先支出金錢購買硬體。 * 等候伺服器交付給您。 * 在實體資料中心安裝伺服器。 * 進行所有必要組態。 相比之下,使用Amazon EC2執行個體,您就可以透過虛擬伺服器在AWS雲端中執行應用程式。 * 您可以在幾分鐘內就完成佈建和啟動Amazon EC2執行個體。 * 完成工作負載的執行後,您可以停止使用執行個體。 * 您只需按執行個體的執行所用的運算時間付費,而非執行個體停用或終止時付費。 * 僅為所需伺服器容量付費可幫助您節省成本。 ## **Amazon EC2執行個體類型** **Amazon EC2執行個體**類型已針對不同任務完成最佳化。選取執行個體類型時,請考量工作負載和應用程式的特定需求。這可能包括對運算、記憶體或儲存功能的需求。 ### **一般用途執行個體** 一般用途執行個體可平衡運算、記憶體與連網資源。您可以將這類執行個體用於各種工作負載,例如: * 應用程式伺服器 * 遊戲伺服器 * 企業應用程式專用後端伺服器 * 小型及中型資料庫 假設您應用程式中的運算、記憶體和網路功能資源需求大致相同,建議您不妨在一般用途執行個體上執行工作負載,因為應用程式不需要在任何單一資源區域進行最佳化。 ### **運算最佳化執行個體** 運算最佳化執行個體非常適合可透過高效能處理器而受益的運算密集型應用程式。與一般用途的執行個體一樣,您可以針對網路、應用程式和遊戲伺服器等工作負載使用運算最佳化執行個體。 不過,在兩者的差別於、運算最佳化應用程式非常適合高效能Web伺服器、運算密集的應用程式伺服器和專用遊戲伺服器。在需要處理單一群組中有多筆交易的批次處理工作負載時,您也可以使用運算最佳化執行個體。 ### **記憶體最佳化執行個體** 記憶體最佳化執行個體的設計目的,在於為記憶體內處理大型資料集的工作負載提供快速效能。在運算中,記憶體是暫時儲存區。它會保留中央處理單元(CPU)完成動作所需的所有資料和指令。在電腦程式或應用程式執行之前,CPU會從儲存體載入記憶體。這項預先載入程序可讓CPU直接存取電腦程式。 假設您的工作負載需要在執行應用程式之前預先載入大量資料。此種情況可能是高效能資料庫,或者需要執行大量非結構化資料即時處理的工作負載。在這類使用案例中,建議使用記憶體最佳化執行個體。記憶體最佳化執行個體可讓您在執行高記憶體需求的工作負載時獲得優異的效能。 ### **加速運算執行個體** 加速運算執行個體使用硬體加速器或協同處理器來提高執行某些功能的效率,其效果更勝在CPU上執行軟體的可行效率。舉例來說,這類功能包括浮點數量計算、圖形處理和資料模式比對。 在運算中,硬體加速器是一種可以加速資料處理的元件。加速運算執行個體非常適合圖形應用程式、遊戲串流和應用程式串流等工作負載。 ### **儲存最佳化執行個體** 儲存最佳化執行個體專為需要對本機儲存體上的超大型資料及進行高序列讀取及寫入存取工作負載所設計。適合儲存最佳化執行個體的工作負載包括分散式檔案系統、資料倉儲應用程式、以及高頻率線上交易處理(OLTP)系統。 在運算中,「每秒輸入/輸出操作(IOPS)」一詞是衡量儲存裝置效能的指標。這個指標指出了裝置在一秒內可執行的不同輸入或輸出操作數量。儲存最佳化執行個體專為應用程式提供每秒數萬次低延遲的隨機I/O操作(IOPS)而設計。 您可以將輸入操作視為將資料放入系統,例如輸入到資料庫中的紀錄。輸出操作是伺服器產生的資料。系統對資料庫中的記錄執行分析,即是一種輸出的例子。如果您的應用程式具有高IOPS需求,則比起其他未針對此類使用案例最佳化的執行個體類型,儲存最佳化個體可提供更好的效能。 ## **Amazon EC2定價** 使用Amazon EC2時,您只需按使用的運算時間付費。Amazon EC2針對不同的使用案例提供各種定價選項。例如,如果您的使用案例可以承受中斷,則可以使用Spot執行個體進行儲存。您也可以使用預留執行個體,透過提前承諾並鎖定最低用量層級來節省費用。 若需了解有關Amazon EC2定價的詳情,請分別選擇以下五個類別。 ### **隨需** 隨需執行個體適用於不可中斷的短期不定期工作負載。無需隨付成本或最低合約。這種執行個體會持續進行,直至您主動停止,您只需按照使用的運算時間付費。 隨需執行個體的使用範圍包括開發和測試應用程式,以及執行使用模式無法預測的應用程式。隨需執行個體不適合使用於持續一年或以上的工作負載,因為這類工作負載透過預留執行個體還可以節省更多成本。 ### **預留執行個體** 預留執行個體是一種計費折扣方式,依您帳戶中的隨需執行個體用量而定。有兩種可用的預留執行個體類型: * **標準預留執行個體** * **可轉換預留執行個體** 您可以購買為期**1年**或**3年**的標準預留和可轉換預留執行個體。您藉由3年期選項節省更多成本。 Standard Reserved Instance:如果您知道穩定狀態應用程式所需的EC2執行個體類型和大小,以及計劃在哪個AWS區域執行這些執行個體,則此選項很適合。預留執行個體需要您說明以下資格: * 執行個體類型和大小:例如,m5.xlarge * 平台描述(作業系統):例如,Microsoft Windows Server或Red Hat Enterprise Linux * 租用:預設租用或專用租用 您可以選擇為EC2預留執行個體指定可用區域。如果您制定此規格,您將獲得EC2容量預留。如此可確保在需要時使用所需EC2執行個體數量。 可轉換預留執行個體:如果您需要在不同可用區域或不同執行個體類型中執行EC2執行個體,則可能適合使用可轉換預留執行個體。注意:需要靈活性以執行EC2執行個體時,您能以更高折扣交易。 在預留執行個體期限結束時,您可以繼續使用Amazon EC2執行個體而不會中斷。不過必須支付隨需費率,除非執行以下任一動作: * **終止執行個體** * **購買符合執行個體屬性(執行個體系列和大小、區域、平台和租用)的新預留執行個體** ### **EC2執行個體 Savings Plans** AWS 提供數種運算服務的 Savings Plans,包括 Amazon EC2。您對執行個體系列和區域做出 **1 年期** 或 **3 年期** 的每小時支出承諾時,EC2 執行個體 Savings Plans 可降低 EC2 執行個體成本。與隨需費率相比,此長期承諾產品最多可節省 **72%** 的費用。到達承諾的用量都依照 Savings Plans 折扣費率計費 (例如,每小時 10 USD)。超出承諾的任何用量都會以一般隨需費率計費。 如果您在承諾期限內需要在 Amazon EC2 用量上擁有靈活性,EC2 執行個體 Savings Plans 會是不錯的選擇。無論可用區域、執行個體大小、作業系統或租用為何,您都可以在所選區域的 EC2 執行個體系列 (例如維吉尼亞北部的 M5 用量) 中節省執行任何 EC2 執行個體的費用。EC2 執行個體 Savings Plans 所節省的費用與標準預留執行個體所節省的費用類似。 然而,與預留執行個體不同的是,您不需要事先指定 EC2 執行個體類型和大小 (例如 m5.xlarge)、作業系統和租用即可獲得折扣。此外,您不需要在 1 年或 3 年期內承諾使用一定數量的 EC2 執行個體。此外,EC2 執行個體 Savings Plans 不包含 EC2 容量預留選項。 在本課程稍後的部分,您會檢閱 AWS Cost Explorer,以視覺化、了解和管理一段時間內的 AWS 成本和用量。如果您正在考慮選用 Savings Plans,您可以使用 AWS Cost Explorer 分析過去 7 天、30 天或 60 天內的 Amazon EC2 用量。AWS Cost Explorer 也會提供 Savings Plans 適用的自訂建議。這些建議會以過去 1 年或 3 年 Savings Plan 中 Amazon EC2 的用量和每小時承諾用量為根據,估算您可以節省多少 Amazon EC2 每月費用。 ### **Spot執行個體** Spot執行個體非常適合啟動和結束時間較彈性或可以承受中斷的工作負載。Spot執行個體利用未使用的Amazon EC2運算容量,並透過隨需付費價格,為您節省最多達90%的成本。 假設您的背景處理任務 (例如客戶調查的資料處理任務) 可視需要啟動和停止。而您希望在啟動和停止處理任務時,不會影響業務的整體營運。如果您提出 Spot 請求,且有 Amazon EC2 容量可用,則 Spot 執行個體就會啟動。但是,您提出 Spot 請求時,如果沒有 Amazon EC2 容量可用,則請求會等到有容量可用時才成功。無法使用的容量可能會拖慢背景處理任務的啟動。 啟動 Spot 執行個體後,如果容量不再可用或 Spot 執行個體的需求增加,您的執行個體可能會中斷。這種狀況未必會對您的背景處理任務造成任何問題。不過,在前面提到的應用程式開發與測試例子中,或許您最想避免的就是意外中斷。因此,建議選擇適合這類工作的其他 EC2 執行個體類型。 ### **專用主機** 專用主機是完全專供您使用且含有 Amazon EC2 執行個體容量的實體伺服器。 您可以使用現有的每個通訊端、每個核心或每個 VM 軟體授權,以協助維持授權合規。您可以購買隨需的專用主機和專用主機保留。在所有 Amazon EC2 選項中,專用主機價格最高。 ## **擴展Amazon EC2** ### **可擴展性** 可擴展性意味著僅以所需資源開始使用,並且透過設計架構,藉由向外擴展或向內縮減來自動回應需求的變化。因此,您只需為所用資源付費,不必擔心運算容量不足,無法滿足客戶需求。 如果想要自動執行擴展程序,您會使用什麼AWS服務?可針對Amazon EC2執行個體提供此功能的AWS服務為Amazon EC2 Auto Scaling。 ### **Amazon EC2 Auto Scaling** 如果您嘗試存取的網站無法載入且經常逾時,則該網站收到的要求可能超過其處理能力。這種情況就好比在咖啡店排隊等待,但現場只有一位咖啡師在接受顧客點餐。 Amazon EC2 Auto Scaling可讓您根據不斷變化的應用程式需求,自動新增或移除Amazon EC2執行個體。 藉由自動增減所需執行個體,您可以維持更高的應用程式可用性。 在Amazon EC2 Auto Scaling中,您可以使用兩種方法:動態擴展和預測性擴展。 * 動態調整可因應不斷變化的需求。 * 預測擴展則會根據預測的需求自動安排適當數量的Amazon EC2執行個體。 #### **範例:Amazon EC2 Auto Scaling** 在雲端中,運算能力是一種程式設計資源,所以您可以用更靈活的方法來處理擴展的問題。將Amazon EC2 Auto Scaling新增至應用程式,您即可在必要時將新的執行個體加到應用程式,並於不再需要時終止執行個體。 假設您正準備在Amazon EC2執行個體上啟動應用程式,設定Auto Scaling群組的規模時,您可以將Amazon EC2執行個體的最小數量設定為一個。也就是說,無論何時都必然有至少一個Amazon EC2執行個體正在執行。 ![image](https://hackmd.io/_uploads/SkiaGhIa6.png) 建立Auto Scaling群組時,您可以設定最低的Amazon EC2執行個體數量。最小容量是指建立Auto Scaling群組後,立即啟動的Amazon EC2執行個體數量。在此範例中,Auto Scaling群組的最小容量為一個Amazon EC2執行個體。 接下來,即便您的應用程式至少需要一個Amazon EC2執行個體才能執行,但您可以將所需容量設為兩個Amazon EC2執行個體。(如果您沒有在Auto Scaling群組中指定所需的Amazon EC2執行個體數量,則所需容量會預設為您的最小容量) 在Auto Scaling群組中可設定的第三個組態是最大容量。舉例來說,您可以將Auto Scaling群組設定為因應需求增加而水平擴展,但最多只能有四個Amazon EC2執行個體。 由於 Amazon EC2 Auto Scaling 是使用 Amazon EC2 執行個體,因此您僅需為您使用這些執行個體的時間支付費用。至此,您已擁有具備成本效益的架構,既可提供最佳客戶體驗,又能減少費用。 ### **Elastic Load Balancing** Elastic Load Balancing是一種可在多個資源(例如Amazon EC2執行個體)之間自動分配傳入應用程式流量的AWS服務。 負載平衡器會作為傳入 Auto Scaling 群組之所有 Web 流量的單一聯絡窗口。也就是說,當您為了回應傳入流量而新增或移除 Amazon EC2 執行個體時,這些請求會先路由到負載平衡器,然後分散到即將處理這些請求的多個資源中。舉例來說,如果您有多個 Amazon EC2 執行個體,Elastic Load Balancing 會將工作負載分配到多個執行個體,因此單一執行個體無須承載大部分工作負載。 雖然 Elastic Load Balancing 和 Amazon EC2 Auto Scaling 各為不同服務,但兩者共同運作時,有助於確保 Amazon EC2 中執行的應用程式能夠提供高效能和可用性。 #### **範例:Elastic Load Balancing** **低需求期間** 這是Elastic Load Balancing運作方式的範例。假設有少數幾位客人來到咖啡店,且已準備點餐。 如果僅開啟幾台收銀機,這仍能與需要服務的客人需求相符。咖啡店不太可能會打開沒有客人可服務的收銀機。在此範例中,您可以將收銀機想像為Amazon EC2執行個體。 ![image](https://hackmd.io/_uploads/S1zBV3LTT.png) **高需求期間** 一整天下來,隨著客人數量增加,咖啡店也打開更多收銀機,以便應付客人。 此外,咖啡店的員工將可人引導到最合適的收銀機前,以便將請求數量平均分配到開放的收銀機。您可以將這位咖啡店員工想像為負載平衡器。 ### **單體式應用程式和微型服務** 應用程式是由多個元件組成。元件之間相互通訊,以便傳輸資料、滿足需求,並保持應用程式執行。 假設您需具備緊耦合元件的應用程式。這些元件可能包括資料庫、伺服器、使用者介面、商業邏輯等。您可以將這種類型的架構視為單體式應用程式。 在這種應用程式架構中,如果單一元件故障,其他元件也會故障,因此可能整個應用程式發生故障。 若要在單一元件失敗時協助維護應用程式可用性,您可以透過微型服務方法來設計應用程式。 在微型服務方法中,應用程式元件的耦合較鬆散。在這種情況下,如果單一元件失敗,其他元件仍會繼續運作,因為它們彼此仍能通訊。鬆耦合可防止整個應用程式失敗。 在AWS上設計應用程式時,您可以採用微型服務方法,讓服務和元件滿足不同的功能。有兩種服務可促成應用程式的整合:Amazon Simple Notification Service (Amazon SNS) 和 Amazon Simple Queue Service (Amazon SQS)。 ### **Amazon Simple Notification Service (Amazon SNS)** Amazon Simple Notification Service (Amazon SNS) 是一種發布/訂閱服務。如使用 Amazon SNS 主題,發布者可將訊息發布給訂閱者。這種方式如同在咖啡店裡,收銀員向製作飲料的咖啡師提供咖啡訂單一樣。 在 Amazon SNS 中,訂閱者可能是 Web 伺服器、電子郵件地址、AWS Lambda 函數或其他幾種選項。 ### **Amazon Simple Queue Service (Amazon SQS)** Amazon Simple Queue Service (Amazon SQS) 是一種訊息佇列服務。 您可以使用 Amazon SQS 在軟體元件之間傳送、存放和接收訊息,不會遺失訊息,也不需要用到其他服務。在 Amazon SQS 中,應用程式會將訊息傳送到佇列中。使用者或服務會從佇列擷取訊息、處理訊息,然後從佇列中刪除訊息。 其他運算服務 無伺服器運算 如果您有想要在Amazon EC2中執行的應用程式,必須完成下列動作: 1. 佈建執行個體 (虛擬伺服器) 2. 上傳程式碼 3. 在應用程式執行時繼續管理執行個體。 「無伺服器」一詞表示雖然程式碼在伺服器上執行,但您並不需要佈建或管理這些伺服器。透過無伺服器運算,您可以將更多精力放在開發創新產品和功能上,不必耗費心力維護伺服器。 無伺服器運算的另一個優點是具有自動擴展無伺服器應用程式的彈性。無伺服器運算透過修改耗用單位(例如輸送量和記憶體)來調整應用程式的容量。 適用於無伺服器運算的AWS服務為AWS Lambda。 ### **AWS Lambda** AWS Lambda這項服務用於讓您無需佈建或管理伺服器即可執行程式碼。 使用AWS Lambda時,您只需根據所用運算時間付費。程式碼如有執行,費用才會產生。您也幾乎可以為任何類型的應用程式或後端服務執行碼,而且全部都不需要管理。 舉例來說,簡單的Lambda函數可能涉及自動調整上傳到AWS雲端的影像大小。在這種情況下,上傳新影像時就會觸發函數。 AWS Lambda的運作方式 1. 將程式碼上傳到Lambda。 2. 將程式碼設定為從事件來源(例如AWS服務、行動應用程式或HTTP端點)觸發。 3. Lambda只會在觸發時執行程式碼。 您只需為使用的運算時間支付費用。在前述的影像大小調整範例中,您只需針對上傳新影像時所用的運算時間付費。上傳影像會觸發Lambda執行調整影像大小的程式碼。 在AWS中,您也可以建立和執行容器化的應用程式。 ### **容器** 容器提供一種標準的方式,將您應用程式的程式碼和相依性封裝至單一物件。您也可以將容器使用於對安全性、可靠性和可擴展性有基本要求的程序和工作流程。 ### **Amazon Elastic Container Service (Amazon ECS)** Amazon Elastic Container Service (Amazon ECS)是可高度擴展的高效能容器管理系統,可讓您在 AWS 上執行及擴展容器化應用程式。 Amazon ECS 支援 Docker 容器。Docker是一種軟體平台,可讓您快速建立、測試和部署應用程式。AWS 支援使用開放原始碼 Docker Community Edition 和訂閱型 Docker Enterprise Edition。使用 Amazon ECS,您可以使用 API 呼叫來啟動和停止啟用 Docker 的應用程式。 ### **Amazon Elastic Kubernetes Service (Amazon EKS)** Amazon Elastic Kubernetes Service (Amazon EKS)是一項全受管服務,可讓您用來在 AWS 上執行 Kubernetes。 Kubernetes是一種開放原始碼軟體,可讓您大規模部署和管理容器化應用程式。由大型的志願者社群維護 Kubernetes,AWS 則積極與 Kubernetes 社群合作。只要 Kubernetes 應用程式的新功能一推出,您就可以輕鬆地將這些更新套用至 Amazon EKS 管理的應用程式。 ### **AWS Fargate** AWS Fargate是一種容器專用的無伺服器運算引擎。Amazon ECS 和 Amazon EKS 都適用。 使用 AWS Fargate 時,您不需要佈建或管理伺服器。AWS Fargate 會為您管理伺服器基礎設施。您可以更專注於創新和開發應用程式,而且只需為執行容器所需的資源付費。 ### **AWS Glue** AWS Glue 是無伺服器資料整合服務,讓分析使用者可從多個來源輕鬆探索、準備、移動和整合資料。您可以將其用於分析、機器學習和應用程式開發。它還包括用於編寫、執行任務和實作業務工作流程的額外生產力和資料操作工具。 透過 AWS Glue,您可以探索並連線到 70 多種不同的資料來源,並在集中式資料目錄中管理資料。您可以直觀地建立、執行和監控擷取、轉換和載入 (ETL) 管道,以將資料載入資料湖。 # **Chapter 3 全球基礎設施與可靠性** AWS 全球基礎設施-AWS區域 ## **選取區域** 在為您的服務、資料和應用程式決定合適的區域時,請考量下列**四項業務因素**: ### **符合資料管控和法規要求** 視公司及位置而定,您可能需要在特定區域執行資料。舉例來說,如果您的公司需要所有資料都位於英國境內,您應選擇倫敦地區。 ### **接近您的客戶** 選取與客戶相近的地區,可協助您更快速地讓他們取得內容。舉例來說,您的公司設在華盛頓特區,大部分的客戶則都住在新加玻。您不妨考慮在靠近公司總部的維吉尼亞北部地區執行基礎設施,然後從新加玻地區執行應用程式。 ### **區域內的可用服務** 有時候,最接近的區域可能沒有您想要提供給客戶的所有功能。AWS經常透過建立新服務和擴展現有服務中的功能來進行創新。不過,為了在世界各地提供新服務,有時AWS需要一次在一個區域建立實體硬體。 ### **定價** 假設您考慮在美國和巴西兩地執行應用程式。由於巴西的稅務結構設立方式之故,與奧勒岡州相比,在聖保羅地區執行相同工作負載可能成本會增加50%。我們之後會更詳細說明幾個決定價格的因素,目前僅先說明服務的成本可能因地區而異。 ### **可用區域** 可用區域是區域內的一個資料中心或一組資料中心。可用區域彼此距離幾十英里。這個距離夠近,足以在可用區域之間維持低延遲(內容從請求到接收之間的時間)。但是,如果區域的某個部分發生災難,它們離得夠遠,足以減少多個可用區域受到影響的機率。 ### **節點** 您不需要打造全新的總部或者,從 IT 的角度來看,如果您在孟買的客戶需要存取您的資料,但資料託管在東京區域,那麼與其讓所有孟買的客戶都將請求老遠傳送到東京,藉此存取資料,不如在當地放置複本,或在孟買提供複本快取。資料的複本快取,能夠更接近世界各地的客戶,運用的是內容交付網路的概念,簡稱 CDN。 CDN 的使用很普遍,AWS 稱之為 CDN Amazon CloudFront。Amazon CloudFront 是一種有助於向全世界的客戶提供資料、影片、應用程式和 API 的服務,而且具有低延遲和高傳輸速度的特性。Amazon CloudFront 運用所謂的節點技術,在全球協助,加速與使用者的通訊,不受所在位置限制。 節點與區域是不一樣的。您可以將區域中的內容推送到一組遍布世界的節點,藉此加快通訊和內容交付。AWS 節點不僅能執行 CloudFront。也能執行網域名稱服務,簡稱 DNS,也就是我們的 Amazon Route 53。此服務有助於引導客戶前往正確的 Web 位置且具可靠的低延遲。 但要是您的企業想要在自己的大樓內使用 AWS 服務呢?當然可以。AWS 可以幫您解決。讓我向您介紹 AWS Outposts,AWS 基本上會在這套工具中安裝一個完整運作的迷你區域,就在您的資料中心內。所有功能為 AWS 所有並交由 AWS 操作,並採用 100% 的 AWS 功能,只是設備會獨立設置在您的大樓內。多數客戶並不需要這種解決方案,但如果您有特定的問題是必須保留在自己的大樓裡才能解決我們也能理解,AWS Outposts 可以協助您。 ## **與AWS服務互動的方式** ### **AWS管理主控台** AWS 管理主控台是一種以 Web 為基礎的介面,可用來存取和管理 Amazon 服務。您可以快速存取最近使用的服務,並依名稱、關鍵字或縮寫搜尋其他服務。主控台包括可簡化任務完成程序的精靈和自動化工作流程。 您也可以使用 AWS 主控台行動應用程式來執行監控資源、檢視警示和存取帳單資訊等任務。且同時可以有多個身分登入 AWS 主控台行動應用程式。 ### **AWS命令列介面** 為了在提出 API 請求時節省時間,建議使用 AWS 命令列界面 (AWS CLI)。AWS CLI 可讓您在單一工具中直接從命令列控制多個 AWS 服務。AWS CLI 適用於 Windows、macOS 和 Linux 的使用者。 藉由使用 AWS CLI,您可以將原本透過指令碼執行的服務和應用程式動作加以自動化。舉例來說,您可以使用命令啟動 Amazon EC2 執行個體、將 Amazon EC2 執行個體連接到特定的 Auto Scaling 群組等。 ### **軟體開發套件** 存取和管理 AWS 服務的另一個選項是軟體開發套件 (SDK)。軟體開發套件透過專為程式設計語言或平台設計的 API,讓您更輕鬆地使用 AWS 服務。軟體開發套件可讓您將 AWS 服務搭配現有應用程式使用,或建立全新的應用程式以便在 AWS 上執行。 為了協助您開始使用軟體開發套件,AWS 針對每種支援的程式設計語言都提供相關文件和範本程式碼。支援的程式設計語言包括 C++、Java、.NET 等。 ### **AWS Elastic Beanstalk** 透過 AWS Elastic Beanstalk,在您提供程式碼和組態設定後,Elastic Beanstalk 會負責部署執行下列任務所需的資源: 1. 調整容量 2. 負載平衡 3. 自動擴展 4. 應用程式運作狀態監控 ### **AWS CloudFormation** 使用 AWS CloudFormation 時,您可以將基礎設施當作程式碼來處理。也就是說,您可以透過撰寫程式碼行來建立環境,無需使用 AWS 管理主控台個別佈建資源。 AWS CloudFormation 會以安全、可重複的方式佈建資源,讓您不必執行手動動作,就能頻繁建立基礎設施和應用程式。它會在管理堆疊時判斷需要執行的正確作業,並在偵測到錯誤時自動復原變更。 # **Chapter 4 連網** ## **Amazon Virtual Private Cloud (Amazon VPC)** 想像一下,使用AWS服務的客戶有數百萬人。再想像一下這些客戶已建立的數百萬個資源,例如Amazon EC2執行個體。如果這些資源的周邊沒有界限,網路流量將會不受限制地在當中流動。 可用於在AWS資源周邊建立界限的網路服務是**Amazon Virtual Private Cloud (Amazon VPC)**。 Amazon VPC可讓您佈建AWS雲端的分隔區段。在這個分隔區段中,您可以在自己定義的虛擬網路中啟動資源。在Virtual Private Cloud (VPC)中,您可以將資源組織成子網路。子網路是VPC的一個區段,當中可包含Amazon EC2執行個體等資源。 ### **網際網路閘道** 若要允許來自網際網路的公有流量存取您的VPC,您必須將網際網路閘道連接到VPC。 網際網路閘道是 VPC 和網際網路之間的連結。您可以將網際網路閘道想像成客人進入咖啡店需經過的門口。沒有網際網路閘道,任何人都無法存取 VPC 內的資源。 如果您的VPC只包含私有資源,會怎麼樣? ### **虛擬私有閘道** 若要存取VPC中的私有資源,您可以使用虛擬私有閘道。 以下為虛擬私有閘道的運作方式範例。您可以將網際網路想像成從您家走到咖啡店必經的道路。假設走在這條路上時,身邊有個保全在保護您您使用的道路仍然與其他客人都一樣,只不過多了一層保護。 這名保鑣就好比虛擬私人網路 (VPN) 連線,它可以加密 (或保護) 您的網際網路流量,以免受到周遭的其他請求。 虛擬私有閘道是允許受保護的網際網路流量進入 VPC 的元件。雖然您與咖啡店的連結有一層額外的保護,但仍可能遇到交通堵塞,因為您和其他客人使用的道路是相同的。 虛擬私有閘道可讓您在 VPC 和私人網路 (例如內部部署資料中心或企業內部網路) 之間建立虛擬私人網路 (VPN) 連線。流量必須來自核准的網路,虛擬私有閘道才會允許流量進入 VPC。 ## **AWS Direct Connect** AWS Direct Connect這項服務可讓您在資料中心和VPC之間建立專用私有連線。 假設某棟公寓大樓裡,有一道走廊可直接通向咖啡店。而可以穿過這個走廊的,只有公寓的住戶。 這個私人走廊的作用與 AWS Direct Connect 的專用連結相同。住戶可以直接進入咖啡店,無需使用與其他客人共用的公有道路。 AWS Direct Connect 提供的私有連線可協助您降低網路成本,並增加可透過網路傳輸的頻寬數。 子網路和網路存取權限控制清單(ACL) ## **子網路** 子網路是VPC的一個區段,您可以根據安全性或操作需求將資源分組到區段中。子網路可以設為公有或私有。 公有子網路包含需要開放存取的資源,例如線上商店的網站。 私有子網路包含只能透過私有網路存取的資源,例如含有客戶個人資訊和訂單紀錄的資料庫。 在 VPC 中,子網路可以彼此通訊。舉例來說,在您的應用程式中,公有子網路的 Amazon EC2 執行個體可能會與位於私有子網路中的資料庫進行通訊。 ### **VPC中的網路流量** 客戶向AWS雲端中託管的應用程式請求資料時,此請求會以封包形式傳送。封包是透過網際網路或網路傳送的資料單位。 封包會透過網際網路閘道進入VPC。而在進入子網路或離開子網路之前,它會先檢查權限。這些權限代表的封包由誰傳送,以及在子網路中嘗試與資源通訊的方式。 用於檢查封包的子網路權限的VPC元件是網路存取控制清單(ACL) ### **網路ACL** 網路ACL是一種虛擬防火牆,可控制子網路層級的傳入和傳出流量。 每個 AWS 帳戶都包含一個預設網路 ACL。設定 VPC 時,您可以使用帳戶的預設網路 ACL,也可以建立自訂網路 ACL。 根據預設,帳戶的預設網路 ACL 會允許所有傳入和傳出流量,但您可以自行新增規則來加以修改。如使用自訂網路 ACL,則所有傳入和傳出流量都會遭到拒絕,除非您新增規則,指定要允許哪些流量。此外,所有網路 ACL 都具備一項明確拒絕規則。此規則可確保封包未符合清單上的任何其他規則時,該封包會遭到拒絕。 ### **無狀態封包篩選** 網路ACL會執行無狀態封包篩選。這項功能會忽略所有規則,一律檢查往來跨越子網路邊界的傳入和傳出封包。 當該請求的封包回應回到子網路時,網路 ACL 會忽略先前的請求。網路 ACL 根據其規則清單來檢查封包回應,判斷是否允許或拒絕。 封包進入子網路後,必須接受權限評估,確認是否能存取子網路內的資源 (例如Amazon EC2執行個體)。 為Amazon EC2執行個體檢查封包權限的VPC元件是安全群組。 ### **安全群組** 安全群組是一種虛擬防火牆,可控制Amazon EC2執行個體的傳入和傳輸流量。 在預設情況下,安全群組會拒絕所有傳入流量,並允許所有傳出流量。您可以新增自訂規則,以便設定應允許哪些流量;任何其他流量將被拒絕。 如果同一個 VPC 中有多個 Amazon EC2 執行個體,您可以將它們與相同的安全群組建立關聯,或為每個執行個體使用不同的安全群組。 ### **狀態封包篩選** 安全群組會執行有狀態封包篩選。這種群組會記住先前針對傳入封包所做的決定。 我們舉將來自 Amazon EC2 執行個體的請求傳送到網際網路的相同例子說明。 當該請求的封包回應傳回執行個體時,安全群組會記住您先前的請求。無論傳入安全群組規則為何,安全群組都會允許回應繼續執行。 ### **Gateway endpoints** Gateway VPC endpoints provide reliable connectivity to Amazon S3 and DynamoDB without requiring an internet gateway or a NAT device for your VPC. There is no additional charge for using gateway endpoints. # **Chapter 5 儲存和資料庫** ## **執行個體存放區** 區塊層級儲存磁碟區的行為與實體硬碟相似。 執行個體存放區能為Amazon EC2執行個體提供臨時區塊層級儲存。執行個體存放區是EC2執行個體實際連接到主機電腦的磁碟儲存裝置,因此與執行個體具有相同的壽命。執行個體終止時,您會遺失執行個體存放區中的任何資料。 Amazon EC2 執行個體是虛擬伺服器。如果您是從停止狀態啟動執行個體,則該執行個體可能會在其他主機上啟動,而先前使用的執行個體存放磁碟區將會消失。因此,AWS 建議將使用案例 (包含不需要長期保存的暫存資料) 儲存於執行個體存放區中。 ## **Amazon Elastic Block Store(Amazon EBS)** Amazon Elastic Block Store(Amazon EBS)這項服務用於提供區塊式存放磁碟區,此磁碟區可搭配Amazon EC2執行個體使用。如果您停止或終止Amazon EC2執行個體,則連接的EBS磁碟區上的所有資料仍然可用。 若要建立EBS磁碟區,請定義組態(例如磁碟區大小和類型)並加以佈建。建立EBS磁碟區後,磁碟區可以連接到Amazon EC2執行個體。 ### **Amazon EBS快照** EBS快照是一種增量備份。這表示磁碟區的第一個備份會複製所有資料。在後續備份中,只會儲存自最近一次快照以來變更的資料區塊。 系統只會備份自從最近一次快照後變更的資料。 ## **Amazon S3 (Simple Storage Service)** ### **物件儲存** 在物件儲存中,每個物件均由資料、中繼資料和一組金鑰組成。 資料可能是影像、影片、文字文件或任何其他類型的檔案。中寄資料包含資料內容、資料使用方式、物件大小等資訊。物件的金鑰是物件的唯一標識符。 ### **Amazon Simple Storage Service(Amazon S3)** Amazon Simple Storage Service(Amazon S3)這項服務用於提供物件層級儲存。Amazon S3將資料視為物件,存放在儲存貯體中。 您可以將任何類型的檔案上傳到Amazon S3,例如影像、影片、文字檔等等。舉例來說,您可以使用Amazon S3來儲存備份檔案、網站的媒體檔案或封存文件。Amazon S3能提供無限的儲存空間。Amazon S3中單一物件的檔案大小上限為5TB。 將檔案上傳到Amazon S3時,您可以設定許可來控制檔案的可見性和存取權。您也可以使用Amazon S3版本控制功能,來追蹤一段時間內對物件的變更。 ## **Amazon S3儲存類別 (八個類別)** ### **S3 Standard** * 專為經常存取的資料設計 * 至少將資料存放在三個可用區域 Amazon S3 Standard 可為物件提供高可用性。使其成為廣泛使用案例(例如網站、內容發布和資料分析)的絕佳選擇。相較於其他專為不常存取的資料和封存儲存設計的儲存類別相比,Amazon S3 Standard的成本較高。 ### **S3 Standard-Infrequent Access (S3 Standard-IA)** • 非常適合不常存取的資料 • 類似Amazon S3 Standard,但儲存價格較低且擷取價格較高 Amazon S3 Standard-IA 非常適合不常存取但在需要時具備高可用性的資料。Amazon S3 Standard 和 Amazon S3 Standard-IA 都會將資料至少存放在三個可用區域。Amazon S3 Standard-IA 能提供與 Amazon S3 Standard 相同的可用性等級,但儲存價格較低,擷取價格也較高。 ### **S3單區域 - 不常存取 (S3 單區域 - IA)** • 將資料存放在單一可用區域中 • 存放價格比Amazon S3 Standard - IA低 相較於S3 Standard和Standard-IA至少將資料存放在三個可用區域,S3單區域-IA會將資料存放在單一可用區域中。如果符合下列條件,這會是相當棒的儲存類別: • 您想要節省儲存成本。 • 在可用區域故障時,您可以輕鬆地重現資料。 ### **S3 Intelligent - Tiering** • 非常適合存取模式未知或持續變更的資料 • 每個物件都需要小額每月監控和自動化費用 在S3 Intelligent-Tiering儲存類別中,Amazon S3會監控物件的存取模式。如果連續30天未存取物件,Amazon S3會自動將物件移至不常存取層,即S3 Standard-IA。如果存取了不常存取層中的物件,Amazon S3會自動將其移至頻繁存取層,即S3 Standard。 ### **S3 Glacier Instant Retrieval** • 適用於需要立即存取的封存資料 • 可以在幾毫秒內擷取物件 決定封存儲存的選項時,請考慮擷取已封存物件的速度。您可以在數毫秒內擷取存放在Amazon S3 Glacier Instant Retrieval儲存級別中的資料,效能同於S3 Standard。 ### **S3 Glacier Flexible Retrieval** • 專為資料封存所設計的低成本 • 能夠在幾分鐘到幾小時內擷取物件 S3 Glacier Flexible Retrieval是一種低成本的儲存類別,非常適合用於資料封存。舉例來說,您可以使用此儲存類別,來儲存已封存的客戶或較舊的相片和影像檔案。您可以在1分鐘到12小時內從S3 Glacier Flexible Retrieval擷取資料。 ### **S3 Glacier Deep Archive** • 非常適合封存、成本最低的物件儲存類別 • 能夠在12小時內擷取物件 S3 Deep Archive 支援長期保留和數位保留,適用於一年中可能存取一次或兩次的資料。此儲存類別是AWS雲端中成本最低的儲存,資料擷取時間為12到48小時。此儲存類別中的所有物件都會複寫並儲存在至少三個分散各地的可用區域。 ### **S3 Outposts** • 在Amazon S3 Outposts上建立S3儲存貯體 • 可更輕鬆地在AWS Outposts上擷取、儲存和存取資料 Amazon S3 Outposts 將物件儲存交付到內部部署AWS Outposts環境。Amazon S3 Outposts設計用於將資料以持久及備援方式儲存在Outposts上的多個裝置和伺服器上。它非常適合具有本機資料駐留需求的工作負載,這些需求必須將資料存放在內部部署應用程式附近,以滿足嚴苛效能需求。 ## **Amazon Elastic File System (Amazon EFS)** Amazon Elastic File System (Amazon EFS) 是一種可擴展的檔案系統,可搭配AWS雲端服務和內部部署資源使用。當您新增和移除檔案時,Amazon EFS會隨著自動擴展和縮減。它可以依需求擴展至PB資料,而不會中斷應用程式。 #### **Amazon EBS vs Amazon EFS** Amazon EBS磁碟區將資料存放在單一可用區域中。如果要將Amazon EC2執行個體連接到EBS磁碟區,Amazon EC2執行個體和EBS磁碟區都必須於相同的可用區域內。 Amazon EFS是一種區域性服務。此服務會在多個可用區域內及跨多個可用區域存放資料。複製儲存可讓您同時從檔案系統所在區域中的所有可用區域存取資料。此外,內部部署伺服器可以使用AWS Direct Connect存取Amazon EFS。 ## **Amazon Relational Database Service(Amazon RDS)** Amazon Relational Database Service(Amazon RDS)這項服務可讓您在AWS雲端中執行關聯式資料庫。 Amazon RDS是一項受管服務,可以自動執行硬體佈建、資料庫設定、修補和備份等工作。有了這些功能,您就可以減少完成管理工作的時間,投入更多時間使用資料來創新您的應用程式。您可以將Amazon RDS與其他服務整合,以滿足您的業務和營運需求,例如使用AWS Lambda從無伺服器應用程式查詢資料庫。 Amazon RDS提供了許多不同的安全選項。許多Amazon RDS資料庫引擎提供靜態加密(在儲存資料時保護資料)和傳輸過程中的加密(在傳送和接收資料時保護資料) ### **Amazon RDS資料庫引擎** Amazon RDS可在六個資料庫引擎上使用,這些引擎會針對記憶體、效能或輸入/輸出(I/O)進行最佳化。支援的資料庫引擎包括: * Amazon Aurora * PostgreSQL * MySQL * MariaDB * Oracle Database * Microsoft SQL Server ## **非關聯式資料庫** 在非關聯式資料庫中,您可以建立表格。表格是您存放和查詢資料的地方。 非關聯式資料庫有時又稱為「NoSQL資料庫」,因為它們並非使用列和欄的結構來整理資料。非關係數據庫的其中一種結構類型是鍵值對。使用鍵值對時,資料會整理成項目(鍵),且項目具有屬性(值)。您可以將屬性視為資料的不同功能。 在鍵值資料庫中,您可以隨時新增或移除表格中的項目屬性。此外,並非表格中的每個項目都必須具有相同的屬性。 ### **Amazon DynamoDB** Amazon DynamoDB是一種鍵值資料庫服務。它可在任何規模下達到10毫秒內的效能。 DynamoDB是無伺服器的服務,這表示您不需要佈建、修補或管理伺服器。 隨著資料庫擴展或縮減,DynamoDB會自動調整變更容量,同時維持一致的效能。 ### **Amazon Redshift** Amazon Redshift是一種可用於大數據分析的資料倉儲服務。這項服務提供從許多來源收集資料的能力,並協助您瞭解資料中的關係和趨勢。 ### **Amazon Database Migration Service (AWS DMS)** Amazon Database Migration Service (AWS DMS) 可讓您遷移關聯式資料庫、非關聯式資料庫和其他類型的資料存放區。 使用AWS DMS,您就能在來源資料庫和目標資料庫之間移動資料。來源和目標資料庫可以是相同或不同的類型。在遷移期間,來源資料庫能夠維持所有功能運作,將倚賴資料庫之應用程式的停機時間減少。舉例來說,假設您有一個MySQL資料庫存放在Amazon EC2執行個體或Amazon RDS的內部部署。請考慮使用MySQL資料庫作為您的來源資料庫。使用AWS DMS,您就能將資料遷移到目標資料庫,例如Amazon Aurora資料庫。 ### **適用於AWS DMS的其他使用案例** 開發和測試資料庫遷移、資料庫合併、連續複寫 ### **其他資料庫服務** **Amazon DocumentDB** 是一種支援MongoDB工作負載的文件資料庫服務。 **Amazon Neptune** 是一種圖形資料庫服務。您可以使用Amazon Neptune建置和執行可搭配高度關聯資料集使用的應用程式,例如推薦引擎、詐騙偵測和知識圖譜。 **Amazon Quantum Ledger Database (Amazon QLDB)** 是一種總帳資料庫服務。您可以使用Amazon QLDB來檢閱您對應用程式資料所做的所有變更完整記錄。 **Amazon Managed Blockchain**是一項服務,可以讓您使用開放原始碼架構來建立和管理區塊鏈網路。 **Amazon ElastiCache** 這樣服務用於在資料庫上新增快取層,能夠協助改善常見要求的讀取時間。它支援兩種類型的資料存放區:Redis和Memcached **Amazon DynamoDB Accelerator** 是適用於DynamoDB的記憶體內快取。它有助於改善回應時間,從不到十毫秒縮短到數微秒。 # **Chapter 6 安全性** ## **AWS共同責任模型** 共同責任模型分為客戶責任(通常稱為「雲端內部的安全」)和AWS責任(通常稱為「雲端本身的安全」)。 | 責任實體 | AWS環境的一部份 | | -------- | -------- | | 客戶 | 客戶資料 | | | 平台、應用程式、身分與存取管理(IAM) | | | 作業系統,以及網路和防火牆組態 | | | 用戶端資料加密、伺服器端資料加密和網路流量保護 | | AWS | 軟體:運算、儲存、資料庫、網路 | | | 硬體:區域、可用區域、節點 | ### **客戶:雲端內部的安全** 客戶必須負責他們在AWS Cloud中建立和放置的所有內容之安全性 使用AWS服務時,您(客戶)會完全掌握您的內容。您必須負責管理內容的安全需求,其中包括您選擇在AWS上儲存哪些內容、使用哪些AWS服務,以及哪些人員可以存取該內容。您也可以控制如何授予、管理和撤銷存取權。 您採取的安全步驟將取決於您使用的服務、系統的複雜性,以及貴公司的特定作業和安全需求等因素。這些步驟包括選取、設定和修補在Amazon EC2執行個體上執行的作業系統、設定安全群組以及管理使用者帳戶。 ### **AWS:雲端本身的安全** AWS負責雲端本身的安全。 AWS負責操作、管理和控制所有基礎設施層的元件。其中包括主機作業系統、虛擬化層級,甚至是服務運作資料中心的實體安全等領域。 AWS負責保護全球基礎設施,該基礎設施會執行AWS雲端中提供的所有服務。此基礎設施包括AWS區域、可用區域和節點。 AWS負責管理雲端本身的安全,特別是託管資源的實體基礎設施,其中包括: * 資料中心的實體安全性 * 硬體和軟體的基礎設施 * 網路基礎設施 * 虛擬化基礎設施 雖然您無法親自造訪AWS資料中心查看此防護服務,但AWS提供多份來自第三方稽核人員的報告。這些稽核人員已驗證其符合各種電腦安全標準和法規。 可讓您安全管理AWS服務與資源的存取權。 ## **Identity and Access Management(IAM)** IAM能讓您根據公司的特定作業和安全需求,彈性設定存取權。您可以使用IAM功能的組合來達成此目的,這些功能將在本課程中詳細探討: * IAM使用者、群組和角色 * IAM政策 * 多重因素驗證 您也將學習到這些功能中每個功能的最佳實務。 ### **AWS帳戶根使用者** 第一次建立AWS帳戶時,首先要使用名為根使用者的身分 使用您用來建立AWS帳戶的電子郵件地址和密碼登入即可存取根使用者。您可以將根使用者視為咖啡廳的老闆。這個使用者擁有帳戶中所有AWS服務和資源的完整存取權。 ### **最佳實務:** 請勿將根使用者用於日常工作。 取而代之,請使用根使用者建立您的第一個IAM使用者,並指派許可讓其建立其他使用者。 然後,繼續建立其他IAM使用者,並存取這些身分,以便在整個AWS中執行一般工作。只有當您需要執行僅限根使用者進行的有限工作時,才能使用根使用者。 這些工作的範例包括變更根使用者電子郵件地址和變更AWS支援計畫。如需詳細資訊,請參閱AWS帳戶管理參考指南中的「需要根使用者憑證的任務」。 ### **IAM使用者** IAM使用者是您在AWS中建立的身分。代表使用此實體與AWS服務互動的人員或應用程式。包含一組名稱和登入資料。 根據預設,當您在AWS中建立新的IAM使用者時,該使用者沒有相關聯的許可。如果要允許IAM使用者在AWS中執行特定動作,例如啟動Amazon EC2執行個體或建立Amazon S3儲存貯體,您必須授與IAM使用者必要的許可。 ### **IAM政策** IAM政策是能夠允許或拒絕AWS服務和資源許可的文件。 IAM政策能讓您自訂使用者存取資源的層級。舉例來說,您可以允許使用者存取AWS帳戶中的所有Amazon S3儲存貯體,或僅存取特定儲存貯體。 ### **最佳實務:** 授予許可時,遵循最低權限的安全原則。 遵循此原則,您就能協助防止使用者或角色擁有超過執行其工作所需的許可。 舉例來說,如果員工只需要存取特定儲存貯體,請在IAM政策中指定儲存貯體。請遵循此作法,而不是授與員工存取AWS帳戶中所有儲存貯體的存取權。 ### **IAM群組** IAM群組是IAM使用者的集合。將IAM政策指派給群組時,群組中的所有使用者都會獲得政策指定的許可。 下方以咖啡廳的經營為例。老闆可以建立「收銀員」IAM群組,而不是一次指派一個許可給收銀員。然後,老闆可以將IAM使用者新增至群組,然後在群組層級附加許可。 在群組層級指派IAM政策,也能讓員工轉移至其他任務時,能夠更輕鬆地調整許可。舉例來說,如果收銀員成為庫存專員,咖啡廳老闆就能把他從「收銀員」IAM群組中移除,並將他加入「庫存專員」IAM群組中。這樣就能確保員工僅擁有目前角色所需的許可。 ### **IAM角色** 在咖啡廳中,一位員工在一天內會輪調到不同的工作站。根據咖啡廳的人員配置,此員工可能會負責數項職務:在收銀機工作、更新存貨系統、處理線上訂單等等。 當員工需要切換到不同的工作時,他們會放棄對一個工作站的存取權,並取得下一個工作站的存取權。員工可以輕鬆地在工作站之間切換,但在任何指定的時間點,他們都只能存取單一工作站。同樣的概念存在於具有IAM角色的AWS中。 IAM角色是一種身分,您可以假設它能暫時取得存取權。 在IAM使用者、應用程式或服務擔任IAM角色前,您必須授予他們切換至該角色的許可。當某人擔任IAM角色時,他們會先放棄先前角色中擁有的所有許可,並取得新角色的許可。 ### **最佳實務:** IAM角色非常適合需要暫時授與服務或資源存取權,而非長期授予的情況。 ## **多重因素認證(MFA)** 您是否曾在登入網站時,被要求提供多項資訊以驗證身分?您可以需要提供密碼,然後再提供第二種驗證方式,例如傳送到手機的隨機代碼。這是多重要素驗證的範例。 在IAM中,多重要素身分驗證(MFA)可為AWS帳戶提供額外安全保護層。 ## **AWS Organizations** 假設您的公司有多個AWS帳戶。您可以使用AWS Organizations集中整合和管理多個AWS帳戶。 當您建立組織時,AWS Organizations會自動建立根目錄,這是組織中所有帳戶的父容器。 在AWS Organizations中,您可以使用服務控制政策(SCP)集中控制組織中的帳戶許可。 SCP能讓您限制每個帳戶中使用者和角色可以存取的AWS服務、資源和個別API動作。 ### **組織單位** 在AWS Organizations中,您可以將帳戶分組為組織單位(OU),以便更輕鬆地管理具有類似業務或安全需求的帳戶。當您將政策套用到OU時,OU中的所有帳戶會自動繼承政策中指定的許可。 透過將不同的帳戶整理到OU中,您就可以更輕鬆地分隔具有特定安全需求的工作負載或應用程式。舉例來說,如果貴公司的帳戶只能存取符合特定法規要求的AWS服務,您可以將這些帳戶放入一個OU中。然後,您可以將政策附加到OU,以阻止對不符合法規要求的所有其他AWS服務的存取。 ## **合規 (AWS Artifact)** 根據貴公司的產業,您可能需要遵守特定標準。稽核或檢驗能確保公司符合這些標準。 AWS Artifact這項服務用於隨需存取AWS安全性與合規報告和選取線上協議。AWS Artifact包含兩個主要部分:AWS Artifact協議和AWS Artifact報告。 ### **AWS Artifact協議** 假設您的公司需要與AWS簽署關於您在整個AWS服務中使用特定類型資訊的協定。您可以透過AWS Artifact協議來完成這項工作。 在AWS Artifact協議中,您可以檢閱、接受和管理個別帳戶以及AWS Organizations中所有帳戶的協議。其中會提供不同類型的協議,以滿足受特定法規所規範客戶的需求,例如美國健康保險流通與責任法案(HIPPA)。 ### **AWS Artifact報告** 接下來,假設您公司的開發團隊成員正在建置應用程式,而且需要更多關於遵守特定法規標準的責任資訊。您可以建議他們在AWS Artifact報告中存取此資訊。 AWS Artifact報告會提供來自第三方稽核人員的合規報告。這些稽核員已測試並驗證AWS遵循各項全球、區域和業界特定安全標準與法規。新報告發表後,AWS Artifact報告會隨即提供。您可以將AWS稽核成品提供給稽核員或監管員,做為AWS安全控制的證明。 ## **AWS Shield** AWS Shield這項服務用於保護應用程式免於遭受DDoS攻擊。AWS Shield提供兩種等級的保護:標準跟進階。 ### **AWS Shield Standard** AWS Shield Standard可免費自動保護所有AWS客戶。它可以保護您的AWS資源免於遭遇最常見且最常發生的DDoS攻擊類型。 網路流量進入您的應用程式時,AWS Shield Standard會使用各種分析技術即時偵測並自動減輕惡意流量。 ### **AWS Shield Advanced** AWS Shield Advanced是一項付費服務,可提供詳細的攻擊診斷,和偵測與減輕複雜的DDoS攻擊。 此服務也可與其他服務(如Amazon CloudFront、Amazon Route 53和Elastic Load Balancing)整合。此外,您可以透過撰寫自訂規則整合AWS Shield與AWS WAF,來緩解複雜的DDoS攻擊。 ## **AWS Key Management Service (AWS KMS)** 咖啡店裡有各種物品,如咖啡機、糕點、收銀機中的錢等。您可以把這些物品視為資料。咖啡廳的老闆希望確保這些物品的安全,無論是放在儲藏室裡或是在商店間移動的情況皆然。 同樣地,您必須確保應用程式的資料在儲存(靜態加密)和傳輸(又稱為傳輸中加密)時也是安全的。 **AWS Key Management Service(AWS KMS)** 可讓您透過使用加密金鑰來執行加密操作。加密金鑰是用來鎖定(加密)和解鎖(解密)資料的隨機位數字串。您可以使用AWS KMS來建立、管理和使用加密金鑰。您也可以在各種服務和應用程式中控制金鑰的使用情況。 有了AWS KMS,您就可以選擇金鑰所需的特定存取控制層級。例如,您可以指定哪些IAM使用者和角色可以管理金鑰。或者,您也可以暫時停用金鑰,讓任何人都無法再使用這些金鑰。您的金鑰絕不會離開AWS KMS,而且您隨時都能控制它們。 ## **AWS WAF** AWS WAF是Web應用程式防火牆,可讓您監控進入Web應用程式的網路要求。 AWS WAF可與Amazon CloudFront和Application Load Balancer搭配使用。回想您在先前的單元中學習的網路存取控制清單(ACL)。AWS WAF運作方式類似於封鎖或允許流量。不過它會使用Web存取控制清單(ACL)來保護您的AWS資源。 假設您的應用程式接收到來自多個IP位址的惡意網路要求。如果您想防止這些要求繼續存取您的應用程式,同時又希望確保合法使用者仍然可以存取應用程式。您可以將Web存取控制清單設定為允許所有要求,除了那些來自您指定的IP地址的要求。 當要求進入AWS WAF時,他會根據您在Web存取控制清單中設定的規則清單進行檢查。如果要求並非來自封鎖的IP位址,則AWS WAF會允許存取應用程式。 不過,如果要求來自您在Web存取控制清單中指定的封鎖IP位址,AWS WAF就會拒絕存取。 ## **Amazon Inspector** 假設咖啡廳的開發人員正在開發和測試一款新的訂購應用程式。他們想確保自己確實根據安全最佳實務設計應用程式。但他們還要開發其他幾個應用程式,所以他們不能花太多時間進行人工評定。為了執行自動化安全評定,他們決定使用Amazon Inspector。 Amazon Inspector可透過執行自動化安全評定,來協助改善應用程式的安全性與合規性。它會檢查應用程式是否存在安全漏洞,以及與安全最佳實務之間的差異,例如開放存取Amazon EC2執行個體,以及安裝有漏洞的軟體版本。 在Amazon Inspector執行評定後,它會為您提供安全發現項目清單。此清單會依嚴重性等級排列優先順序,包括每個安全問題的詳細說明,以及如何修正問題的建議。然而AWS不保證遵循所提供的建議能解決所有的潛在安全問題。在共同的責任模式下,客戶必須負責執行AWS服務的應用程式、程序與工具的安全。 ## **Amazon GuardDuty** Amazon GuradDuty這項服務用於為您的AWS基礎設施合資源提供智慧威脅偵測。它透過持續監控AWS環境中的網路活動和帳戶行為識別威脅。 啟用Amazon GuradDuty --> GuardDuty會持續分析網路和帳戶活動 --> GuardDuty可智慧地偵測威脅 --> 檢閱詳細問題清單並採取動作。 在您為AWS帳戶啟用GuardDuty後,GuardDuty會開始監控您的網路和帳戶活動。您不需要部署或管理任何其他的安全軟體。GuardDuty會持續分析來自多個AWS來源的資料,包括VPC流程日誌和DNS日誌。 如果GuardDuty偵測到任何威脅,您可以在AWS管理主控台檢閱威脅的詳細發現項目。搜尋結果包含修復的建議步驟。您也可以將AWS Lambda功能設定為自動採取修復步驟,以回應GuardDuty的安全發現項目。 ## **Amazon Macie** Amazon Macie 是一種資料安全服務,透過使用機器學習和模式比對來探索敏感資料、提供資料安全風險的可見性,以及啟用自動保護以防範這些風險。 # **Chapter 7 監控和分析** ## **Amazon CloudWatch** Amazon CloudWatch是一種Web服務,可讓您監控和管理各種指標,並根據這些指標的資料設定警示動作。 CloudWatch使用指標來表示資源的資料點。AWS服務會將指標傳送到CloudWatch。接著CloudWatch會使用這些指標自動建立圖表,以顯示隨著時間變化的效能。 ### **CloudWatch警示** 您可以使用CloudWatch建立警示,以便在指標值超過或低於預先定義的閥值時自動執行動作。 例如,假設您公司的開發人員使用Amazon EC2執行個體進行應用程式開發或測試。如果開發人員偶爾忘記停止執行個體,那麼執行個體會繼續執行並產生費用。 在此案例中,您可以建立CloudWatch警示,當CPU使用率在指定期間內維持在特定閥值以下時,自動停止Amazon EC2執行個體。設定警示時,您可以指定在此警示觸發時接收通知。 ### **CloudWatch儀表板** CloudWatch儀表板功能可讓您從單一位置存取資源的所有指標。例如,您可以使用CloudWatch儀表板來監控Amazon EC2執行個體的CPU使用率、針對Amazon S3儲存貯體的要求總數等。您甚至可以針對不同的商業目的、應用程式或資源自訂個別儀表板。 ## **AWS CloudTrail** AWS CloudTrail會記錄您帳戶的API呼叫。記錄的資訊包括API呼叫者的身分、API呼叫的時間、API呼叫者的來源IP位址等。您可以將CloudTrail視為某人留下的頁面導覽路徑(或動作日誌)「軌跡」。 提醒您可以使用API呼叫來佈建、管理和設定AWS資源。透過CloudTrail,您可以檢視應用程式和資源的使用者活動和API呼叫的完整歷史記錄。 CloudTrail中的事件通常會在API呼叫後的15分鐘內更新。您可以透過指定API呼叫發生的時間和日期、要求動作的使用者、API呼叫所涉及的資源類型等來篩選事件。 ### **CloudTrail Insights** 在CloudTrail中,您也可以啟用CloudTrail Insights。此選用功能可讓CloudTrail自動偵測AWS帳戶中不尋常的API活動。 例如,CloudTrail Insights可能會偵測到最近在您帳戶中啟動的Amazon EC2執行個體數量比平常高。然後,您可以檢閱完整的事件詳細資料,以決定接下來需要採取的動作。 ## **AWS Trusted Advisor** AWS Trusted Advisor是一種Web服務,可檢查您的AWS環境,並根據AWS最佳實務提供即時建議。 Trusted Advisor會比對發現內容與AWS最佳實務,共有五個類別:成本最佳化、效能、安全性、容錯能力和服務配額。針對每個類別的檢查,Trusted Advisor會提供建議的動作清單和其他資源,以進一步了解AWS最佳實務。 AWS Trusted Advisor提供的指引可讓您的公司在所有部署階段受益。例如您可以使用AWS Trusted Advisor協助您建立新工作流程和開發新應用程式。或者您也可以使用它持續改進現有的應用程式和資源。 ### **AWS Trusted Advisor儀表板** 存取AWS管理主控台上的Trusted Advisor儀表板時,您可以檢閱成本最佳化、效能、安全性、容錯能力和服務配額的完整檢查。 對於每個類別: • 綠色勾號表示已偵測到沒問題的項目數量 • 黃色三角形表示建議的調查數量 • 紅色圓圈表示建議的動作數量 # **Chapter 8 定價和支援** ## **AWS免費方案** AWS免費方案可讓您開始使用特定服務,不必擔心在指定期間內會產生費用。 提供三種優惠類型: * 永遠免費 * 12個月免費 * 試用 對於每種免費方案優惠,請務必檢閱特定的詳細說明,了解包含哪些資源類型。 ### **永遠免費** 這些優惠不會到期,而且適用所有AWS客戶。 例如,AWS Lambda每月允許100萬個免費請求和最多達320萬秒的運算時間。Amazon DynamoDB每月允許25GB的免費儲存。 ### **12個月免費** 這些優惠在您首次註冊AWS後的12個月內免費。 範例包括特定數量的Amazon S3 Standard儲存、Amazon EC2每月運算時間的閥值、以及傳出的Amazon CloudFront資料量。 ### **試用** 短期免費試用優惠從啟用特定服務之日開始。試用期間可能會因使用服務天數或用量而有所不同。 例如,Amazon Inspector提供90天免費試用。Amazon Lightsail(可讓您執行虛擬私人伺服器的服務)在30天內提供750小時的免費使用。 ## **AWS定價如何運作** AWS提供多種實支實付定價的雲端運算服務。 要了解AWS定價運作方式詳情,請分別展開以下三個類別。 * 按實際用量付費:針對每項服務,您按實際使用的資源量付費,無需簽訂長期合約或複雜的授權。 * 預留容量,付費越少:有些服務提供保留選項,與隨需執行個體定價相比,提供大幅折扣。例如,假如貴公司使用Amazon EC2執行個體來處理需要持續執行的工作負載。您可以選擇在Amazon EC2執行個體Savings Plans上執行此工作負載,因為相較於同等的隨需執行個體容量,該計劃可替您省下最高達72%。 * 以量計算的折扣,讓您用量越多付費越少:有些服務提供分級定價,因此每單位的成本會隨著用量增加而逐漸降低。例如您使用的Amazon S3儲存空間越多,每GB支付的費用就越少。 ### **AWS定價計算器 (AWS Pricing Calculator)** AWS定價計算器讓您可以探索AWS服務,並為您在AWS的使用案例成本建立評估。您可以按您定義的群組組織您的AWS預估值。群組可以反映貴公司的組織方式,例如依成本中心提供預估值。 假設貴公司有興趣使用 Amazon EC2。不過您還不確定哪種 AWS 區域或執行個體類型對您的使用案例最具成本效益。在 AWS 定價計算器中,您可以輸入詳細資訊,例如您需要的作業系統種類、記憶體需求以及輸入/輸出 (I/O) 需求。透過使用 AWS 定價計算器,您可以檢閱不同 EC2 執行個體類型在各 AWS 區域的預估比較。 ## **帳單儀表板** 使用AWS Billing & Cost Management儀表板支付AWS帳單、監控用量、以及分析和控制成本。 * 將您本月份至今的與上個月比較,並根據目前的用量獲得下個月的預測。 * 檢視本月至今各項服務的開銷。 * 檢視各項服務的免費方案用量。 * 存取Cost Explorer並建立預算。 * 購買及管理Savings Plans。 * 發布AWS Cost and Usage Report。 ## **合併帳單** 在先前的單元中,您瞭解了AWS Organizations,這項服務可讓您集中管理多個AWS帳戶。AWS Organizations也提供合併帳單的選項。 AWS Organizations的合併帳單功能,能將您組織中的所有AWS帳戶全部集中在一張帳單上。透過合併,您可以輕鬆地追蹤組織中所有連結帳戶的合併成本。一個組織允許的預設帳戶數目上限為4個,但如果需要,您可以聯絡AWS支援以增加配額。 在每月帳單上,您可以檢視每個帳戶所產生的分項費用。這可以加強您組織帳戶的透明度,同時維持每個月單一帳單的便利性。 合併帳單的另一個好處是能在組織中帳戶中共用大量折扣定價、Savings Plans和預留執行個體。例如,單一帳戶可能沒有足夠的每月用量,不符合折扣定價。但是,合併多個帳戶時,其彙總用量可能會產生適用於組織中所有帳戶的優勢。 ## **AWS Budgets** 在AWS Budgets中,您可以建立預算來規劃服務用量、服務成本和執行個體保留。 AWS Budgets中的資訊每天會更新三次。這可協助您準確判斷用量與預算金額或AWS免費方案限制的接近程度。 在AWS Budgets中,您也可以在用量超過(或預測會超過)預算金額時設定自訂提醒。 ## **AWS Cost Explorer** AWS Cost Explorer是一種可讓您視覺化、了解和管理隨著時間推進AWS成本和用量的工具。 AWS Cost Explorer包含預設報告,說明您成本前五高的AWS服務之成本和用量。您可以套用自訂篩選條件和群組來分析資料。例如,您可以檢視每小時的資源使用狀況。 ## **AWS支援** AWS提供四種不同的Support計畫,協助針對問題進行故障診斷、降低成本、以及有效率地使用AWS服務。 您可以從下列支援計畫中選擇符合貴公司需求者: * 基本 * 開發人員 * 商業 * 企業快速通道 * 企業 ## **基本支援** 所有AWS客戶都可免費使用基本支援。基本支援包含白皮書、文件和支援社群的存取權限。有了基本支援,您也可以聯絡AWS詢問帳單問題和增加服務限制。 透過基本支援,您可以存取有限的AWS Trusted Advisor檢查。此外,您可以使用AWS個人運作狀態儀表板工具,在AWS發生可能影響您的事件時,提供提醒與修復指引。 如果貴公司需要基本層級以外的支援,可以考慮購買開發人員、商業、企業快速通道和企業支援。 ## **開發人員、商業、企業快速通道和企業支援** 開發人員、商業、企業快速通道和企業支援計劃包含基本支援的所有優點,以及無限次建立技術支援案例的能力。這些支援計劃具有按月付費的訂價,不需要長期合約。 一般而言,在定價方面,開發人員計畫的成本最低,商業和企業快速通道計畫位於中間,而企業計畫的成本最高。 ### **開發人員支援** 開發人員支援計畫中的客戶可以使用下列功能: * 最佳實務指導 * 用戶端診斷工具 * 建構模組架構支援,其中包含如何一起使用AWS產品、功能和服務的指導。 例如,假設您的公司正在探索AWS服務。您聽說過幾種不同的AWS服務,但您不確定如何一起使用這些服務,建置可以滿足您公司需求的應用程式。在此情況下,開發人員支援計劃隨附的建構模組架構支援可協助您找出合併特定服務和功能的機會。 ### **商業支援** 擁有商業支援計劃的客戶可以使用其他功能,包括: * 可識別最能滿足您特定需求的AWS產品、功能和服務的使用案例指導、 * 所有的AWS Trusted Advisor檢查 * 第三方軟體的有限支援,例如一般作業系統和應用程式堆疊元件 假設貴公司擁有商業支援計劃,並且想將通用的第三方作業系統安裝到您的Amazon EC2執行個體上。您可以聯絡AWS支援,以取得安裝、設定和故障診斷作業系統的協助。如需進階主題(例如最佳化效能、使用自訂指令碼或解決安全性問題),您可能需要直接連絡第三方軟體提供者。 ### **企業快速通道支援** 在2021年11月,AWS開放註冊AWS企業快速通道支援計畫。除了基本、開發人員和商業支援計畫中包含的所有功能外,擁有企業快速通道支援計畫的客戶還享有以下權益: * 一組技術客戶經理(Technical Account Manager),負責提供主動指導並協調計畫和AWS專家的存取權 * 成本最佳化研討會(每年一次) * 用於帳單和帳戶協助的禮賓支援團隊 * 可透過Trusted Advisor和運作狀態API/儀表板監控成本和效能的工具 企業快速通道支援計畫還提供一組特定主動支援服務的存取權,這些服務由一群Technical Account Manager提供。 * 諮詢檢閱與架構指引(每年一次) * 基礎設施事件管理支援(每年一次) * 支援自動化工作流程 * 30分鐘以內回應業務關鍵問題 ### **企業支援** 除了基本、開發人員、商業和企業快速通道支援計畫中包含的所有功能外,擁有企業支援的客戶還享有以下權益: * 專屬技術客戶經理(Technical Account Manager),負責提供主動指導並協調計畫和AWS專家的存取權 * 用於帳單和帳戶協助的禮賓支援團隊 * 營運檢視和監控運作狀態的工具 * 培訓和遊戲日以驅動創新 * 透過API/儀表板監控成本和效能的工具 企業計畫還提供對主動服務的完全存取權限,這些服務由專屬Technical Account Manager提供: * 諮詢檢閱與架構指引 * 基礎設施事件管理支援 * 成本最佳化研討會和工具 * 支援自動化工作流程 * 15分鐘以內回應業務關鍵問題 ## **Technical Account Manager(TAM)** 企業快速通道和企業支援計畫包含可與Technical Account Manager(TAM)聯絡。 TAM是您在AWS的主要聯絡窗口。如果貴公司訂閱企業支援或企業快速通道,您的TAM將在整個AWS服務範圍內教育、賦能和發展您的雲端之旅。TAM提供專家工程指引、協助您設計可有效整合AWS服務的解決方案、協助提供符合成本效益和彈性的架構,以及直接存取AWS計畫和廣泛的專家社群。 例如,假設您有興趣開發同時多個AWS服務的應用程式。您的TAM可提供深入的見解,告訴您如何同時使用這些服務。實現這個目標的同時,他們也會滿足貴公司希望透過新應用程式解決的需求。 ## **AWS Marketplace** AWS Marketplace是包含獨立軟體開發廠商數千種軟體產品的數位型錄。您可以使用AWS Markerplace尋找、測試和購買能在AWS上執行的軟體。 對於在AWS Marketplace中的每一個項目,您都可以存取定價選項、可用支援以及其他AWS客戶評論的詳細資訊。 您也可以根據產業和使用案例探索軟體解決方案。例如,假設貴公司屬於醫療保健產業。在AWS Marketplace中,您可以檢閱軟體可協助您處理的使用案例,例如實作解決方案以保護患者紀錄,或使用機器學習模型來分析患者的病歷並預測可能的健康風險。 AWS Marketplace提供多種類別的產品,例如基礎設施軟體、DevOps、資料產品、專業服務、商業應用程式、機器學習、工業和物聯網(IoT)。 在每個類別中,您可以瀏覽子類別中的產品清單,以縮小搜尋範圍。例如,DevOps類別中的子類別包含像是應用程式開發、監控和測試等領域。 # **Chapter 9 遷移和創新** ## **AWS雲端採用架構(AWS CAF)** ### **雲端採用架構的六個核心觀點** 在最高層級,AWS雲端採用架構(AWS CAF)將指導內容歸納為六個重點領域,稱為「觀點」。每個觀點都涉及不同的責任。規劃流程可幫助整個組織內的合適人員準備迎接未來的變化。 一般而言,「業務」、「人員」和「管控」這三個觀點著重於業務能力,而「平台」、「安全」和「營運」這三個觀點著重於技術能力。 ### **業務觀點** 業務觀點可確保IT符合業務需求,讓IT投資可連結至關鍵業務成果。 使用業務觀點建立強大的商業案例,以便採用雲端,並排定雲端採用計畫的優先順序。確保您的業務策略和目標符合您的IT策略和目標。 「業務觀點」中的常見角色包括: * 業務經理 * 財務經理 * 預算負責人 ### **人員觀點** 人員觀點支援開發整個組織的變更管理策略,以確保成功採用雲端。 使用人員觀點來評估組織結構和角色、新的技能和程序需求,並找出差距。這有助於確定訓練、人員配置和組織變更的優先順序。 人員觀點中的常見角色包括: * 人力資源 * 人力配置 * 人事經理 ### **管控觀點** 管控觀點著重於技能和程序,使IT策略與業務策略一致。這可以確保您將商業價值最大化,並將風險降至最低。 使用管控觀點來了解如何更新必要的員工技能和程序,以確保雲端中的業務治理。管理和衡量雲端投資,以評估業務成果。 管控觀點中的常見角色包括: * 資訊長(CIO) * 計畫經理 * 企業架構師 * 業務分析師 * 投資組合經理 ### **平台觀點** 平台觀點包括在雲端上實作新解決方案,以及將內部部署工作負載遷移至雲端的原則和模式。 使用各種架構模型來了解並傳達IT系統的結構及其關係。詳細說明目標狀態環境的架構。 平台觀點中的常見角色包括: * 資訊長(CTO) * IT經理 * 解決方案架構師 ### **安全觀點** 安全觀點可確保組織符合可見性、可稽核性、控制和敏捷性的安全目標。 使用AWS CAF來建構符合組織需求的安全控制選擇和實作。 安全觀點中的常見角色包括: * 資訊安全長(CISO) * IT安全經理 * IT安全分析師 ### **營運觀點** 營運觀點可協助您啟動、執行、使用、操作及恢復IT工作負載,達到與商業利益關係人說好的程度。 定義每天、每季和每年的業務執行方式。配合並支援企業的營運。AWS CAF可協助這些利益關係人定義目前的作業程序,並識別成功採用雲端所需的程序變更和培訓。 營運觀點中的常見角色包括: * IT營運經理 * IT支援經理 ## **雲端遷移的6個R** ### **6項遷移策略** 將應用程式遷移至雲端時,您可以實作的六種最常見的遷移策略為: * **重新託管**:也稱為「搬運轉移」,涉及移動應用程式,但不需要修改。在公司想要快速實作遷移並擴展以滿足商業案例的大型傳統遷移案例中,大部分的應用程式都已重新託管。 * **重組平台**:也稱為「精進平移」,涉及進行一些雲端最佳化作業已達成實際效益。最佳化不需要改變應用程式的核心架構。 * **重構/重新架構**:也稱為「重新架構」涉及使用雲端原生功能重新設計應用程式的架構和開發方式。重構是在提升功能、擴展或效能的強大商業需求驅使下所做的決策,否則在目前的應用程式環境中無法達到這些目標。 * **重新購買**:涉及從傳統授權轉移到軟體即服務模型。例如,企業可能會選擇從客戶關係管理(CRM)系統遷移至Salesforce.com,以執行重新購買的策略。 * **保留**:包括在來源環境中保留對業務至關重要的應用程式。這可能需要進行重大重構才能遷移的應用程式,或者可延遲到稍後的工作。 * **淘汰**:是移除不需要應用程式的程序。 ## **AWS Snow系列成員** AWS Snow系列是實體裝置的集合,可協助以實體方式將EB級資料輸出入AWS。 AWS Snow系列是由**AWS Snowcone**、**AWS Snowball**和**AWS Snowmobile**所組成。 **AWS Snowcone**是小型、堅固且安全的邊緣運算與資料傳輸裝置。配備2個CPU、4 GB記憶體,以及多達14TB的可用儲存空間。 **AWS Snowball**提供兩種類型的裝置: * **Snowball Edge Storage Optimized**非常適用於大規模資料遷移和週期性傳輸工作流程,以及具較高容量需求的本機運算。 * 儲存:為區塊磁碟區以及Amazon S3相容物件儲存提供80 TB的硬碟(HDD)容量,並為區塊磁碟區提供1TB SATA固態硬碟(SSD)。 * 運算:40個vCPU和80 GiB的記憶體,支援Amazon EC2 sbe1執行個體(相當於C5) * **Snowball Edge Compute Optimized**為機器學習、全動態影片分析、分析及本機運算堆疊等使用案例提供強大的運算資源。 * 儲存:為 Amazon S3 相容物件儲存或 Amazon EBS 相容區塊磁碟區提供 80 TB 的可用 HDD 容量,並為 Amazon EBS 相容區塊磁碟區提供了 28 TB 的可用 NVMe SSD 容量。 * 運算:104 個 vCPU、416 GiB 記憶體、以及一個選用的 NVIDIA Tesla V100 GPU。裝置執行 Amazon EC2 sbe-c 與 sbe-g 執行個體 (等同於 C5、M5a、G3 及 P3 執行個體)。 **AWS Snowmobile**是EB級的資料傳輸服務,可用來將大量資料傳輸到AWS。 **AWS Snowmobile**是長達45呎(13.7公尺)的加固貨櫃,由貨櫃聯結車拖行,每輛AWS Snowmobile可傳輸高達100 PB的資料。 ## **AWS與創新技術** 利用AWS服務進行創新 ### **無伺服器應用程式** 在AWS,無伺服器是指不需要您佈建、維護或管理伺服器的應用程式。您不需要擔心容錯能力或可用性。AWS會為您處理這些功能。 AWS Lambda是其中一個可用來執行無伺服器應用程式的服務。如果您設計架構以觸發Lambda函數執行程式碼,您可以略過管理伺服器機群的需求。 使用無伺服器應用程式建置您的架構,可讓您的開發人員專注於其核心產品,不必管理和操作伺服器。 ### **機器學習** 傳統的機器學習(ML)開發非常複雜、昂貴、耗時且容易出錯。AWS提供Amazon SageMaker可將困難的工作從流程中排除,並讓您能夠快速建立、訓練和部署ML模型。 您可以使用ML來分析資料、解決複雜的問題,並在問題發生之前預測結果。 ### **人工智慧** AWS提供多種採用人工智慧(AI)的服務。 例如您可以執行以下工作: * 使用Amazon CodeWhisperer在編寫程式碼時取得程式碼建議,並找出程式碼中的安全問題。 * 使用Amazon Transcribe將語音轉換為文字。 * 使用Amazon Comprehend發現文字中的模式。 * 使用Amazon Fraud Detector識別潛在的線上詐騙活動。 * 使用Amazon Lex建立語音和文字Chatbot。 **AWS DeepRacer**是一輛 1/18 比例的無人賽車,可用於測試強化學習模型。 **Amazon Textract** 這項機器學習服務可從掃描的文件中自動擷取文字和資料。 **Amazon Polly**是一種雲端服務,可將文字轉換為逼真的語音。您可以使用 Amazon Polly 開發可提高參與度和可存取性的應用程式。Amazon Polly 支援多種語言,並包含各種逼真的語音,因此您可以建立可在多個位置運作的啟用語音應用程式,並為您的客戶使用理想的語音。使用 Amazon Polly,您只需為合成的文字付費。您也可以快取和重播 Amazon Polly 產生的語音,無需額外費用。 # **Chapter 10 簡介** ## **AWS Well-Architected Framework** AWS Well-Architected Framework可協助您了解如何在 AWS 雲端中設計和操作可靠、安全、有效率且符合成本效益的系統。這讓您可根據最佳實務和設計原則一致地衡量架構,並找出可改善的區域。 ### **Well-Architected架構有六大支柱:** * **卓越營運**: 1. 指的是能夠執行和監控系統以實現商業價值,並持續提升支援流程和程序的能力。 2. 雲端卓越營運的設計原則包括以程式碼形式執行營運、標註文件、預測失敗,以及進行頻繁、小型、可逆的變更。 * **安全性**: 1. 安全支柱是保護資訊、系統和資產,同時透過風險評估和緩解策略來實現商業價值的能力。 2. 考量架構的安全時,請套用下列最佳實務: * 盡可能自動化安全最佳實務。 * 在所有層級施行安全措施。 * 保護傳輸中和靜態的資料。 * **可靠性**: 1. 可靠性是系統執行以下作業的能力: * 從基礎設施或服務中斷中恢復 * 動態取得運算資源以滿足需求 * 減少配置不當或暫時性網路問題等中斷情況 2. 可靠性包括測試恢復流程、水平擴展以增加總體系統可用性,以及從故障中自動恢復。 * **效能達成效率**: 1. 效能達成效率是指有效率使用運算資源以符合系統需求,並在需求變化和技術升級時維持效率的能力。 2. 評估您架構的效能達成效率,包括更頻繁進行實驗、使用無伺服器架構、以及設計能夠在幾分鐘內擴展到全球的系統。 * **成本最佳化**: 1. 成本最佳化是能以最低價格點執行系統來提供商業價值的能力。 2. 成本最佳化包括採用消費模型、分析和歸因支出、以及使用受管服務降地擁有成本。 * **永續發展**

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully