課程名稱:AWS Certified Solutions Architect - Professional (Amazon Cloud AWS SAP) 國際認可證書課程 - 簡稱:Amazon Cloud AWS SAP Training Course |
(重要資訊:AWS SAP 考試範圍是會包括 AWS SAA 技術的,若還未掌握 AWS SAA 技術,請務必先報讀本中心的 AWS Certified Solutions Architect - Associate (Amazon Cloud AWS SAA) 國際認可證書課程。)
第 1 部份:CloudFormation。在 AWS SAA 課程 已經教授了透過 AWS 網頁或 AWS CLI 以建立、設定和刪除 AWS Resources (e.g. EC2, S3, Lambda 等),本課程會教授 CloudFormation 以自動化的方法建立、設定和刪除 AWS Resources,做到如巴塞足球會般的 “one-click deployment of our whole infrastructure.” (Reference: https://aws.amazon.com/solutions/case-studies/futbol-club-barcelona/)

- 教授基本 CloudFormation Stack Script 的基本結構,例如 Parameters、Mappings、Conditions、Metadata 和 Outputs。

- 配合 Designer 寫 Script,但要注意 Designer / Visual Designer 並不是具備有所有 AWS Resources,所以在課堂需要教授如何解決 Designer 的 “不足”。

- 讓用戶在執行 CloudFormation Stack 前輸入或選定參數,避免過份 hardcode。

- 執行 CloudFormation Stack 後將新建立的 AWS Resources 資料顯示出來,例如使用 CloudFormation Stack 建立 IAM users 後將 username, password, access key 和 secret access key 顯示出來。

- 善用 AWS 提供的 Function (Fn) 以寫 Script。

- 正確了解 “DependsOn”,避免濫用,因為好多情況都不需要使用 DependsOn。

- 導師會示範使用 CloudFormation 建立、設定和刪除以下的 AWS Resources,一方面可以簡單溫習 AWS SAA 課程,另一方可以教授部份課題的進階概念,例如使用多個 CloudWatch Alarms 進行更細緻的 Auto Scaling。
- EC2, user data, Security Group, EBS (學習從 Script 中取得跟 EC2 instance 當時的 AZ)、Elastic IP。
- EC2 + CloudWatch Alarm + SNS (Topic + Subscription) 以持續監察 EC2,並在 “有事” 的時候透過 SNS 通知管理員。
- S3 with static web hosting。
- VPC (Public): VPC + VPC Security Group, Public Subnet, Public Route Table, IGW, Publicly-assessible EC2
- VPC (Private + VPN): VPC + VPC Security Group, Private Subnet, Private Route Table, VGW, site-to-site VPN, etc.
- ELB (Classic + Application)
- RDS (Single-AZ + Multi-AZ + Read Replica)
- IAM (Managed Policy + IAM User + IAM Group + Access Key)
- Manual Scaling + Auto Scaling (使用多個 CloudWatch Alarms 進行更細緻的 Auto Scaling)


- 最後探討如何用 CloudFormation 解決以下的問題:
- 如巴塞足球會般的 “one-click deployment of our whole infrastructure.”
- Blue-Green Deployment
- Systematic 有 50 位同學需要使用 LAMP (Linux + Apache + MySQL / MariaDB + PHP) 或 Windows 做 Labs
- Systematic 有 50 位同學需要有 AWS Accounts (with restricted permissions) 做 AWS Labs
- 快速建立跟 Production 一樣的測試環境
第 2 部份:Elastic Beanstalk。在 AWS SAA 課程 已經 “獨立” 地教授了 EC2、ELB、Auto Scaling、RDS 等。本課程會教授的 Elastic Beanstalk 能令企業快速部署和管理應用程式,並 “整合地” 處理容量佈建、負載平衡、自動調整規模和程式監控,同時能令企業進行 Rolling Update 或 Blue-Green Deployment。

- 教授如何準備 Elastic Beanstalk “認到” 的程式。


- 在 Elastic Beanstalk 進行 Auto Scaling。


- 在 Elastic Beanstalk 設定 Elastic Load Balancing。

- 在 Elastic Beanstalk 進行程式監控 (為何會有 2.3 Health Host Count? 上堂再詳談)。

- 教授不同的 Deployment policies,分析它們的使用時機,並作出更新程式的示範,了解 deploy 途中程式能否運作。




- 在 Elastic Beanstalk 建立 Database。大家從以下的記錄中發現建立 Database 後有一個新的 Rolling Update? 為什麼有這樣現象? 上堂再詳談。

- 程式如何接駁到 Elastic Beanstalk 的 Database 內 (不是在程式碼上 hardcode Endpoint URL)。

- 進行 Blue-Green Deployment (FrancoApp-env → FrancoApp-env WithDB)。


- Elastic Beanstalk 與 S3 的關係: 理解 Elastic Beanstalk 會儲存甚麼在 S3。

- Elastic Beanstalk 與 CloudFormation 的關係: 理解 Elastic Beanstalk 背後執行甚麼,有助理解和 troubleshoot Elastic Beanstalk。

第 3 部份:VPC。在 AWS SAA 課程 已經教授了 VPC 的基本概念,例如 Public Subnet + IGW、Private Subnet + NAT gateway、Site-to-Site VPN + VGW + CGW + BGP 打通天地等話題。本課程會教授進階的 VPC 技術。

- IPv6: 教授如何在 VPC 使用 IPv6,並教授 IGW 與 EIGW (Egress-Only Internet Gateways) 的分別及它們的使用時機。


- 善用 AWS “內部” 網路,避免不必要的 Internet Access,因為 Internet Access 可能涉及如 NAT Gateway 等的收費,善用 “內部” 網路亦可以避免使用 Public IP。

- 教授如下圖的 “Special Route”,上堂解說這 route 做甚麼。

- 教授如下圖的 “blockhole” routes 的成因及處理方法。

- 在 AWS SAA 課程 已經教了 Site-to-Site VPN per VPC 的做法,如果 VPC 數量不多都還可以的;但一旦 VPC 數量多,VPN 數量都可能會多,這不利管理和控制 VPN 的成本,本課程會教授一個有趣的技術可以打通不同的 VPCs 和 VPNs (不是 VPC Peering!),如下圖所示


第 4 部份:Step Functions + X-Ray。在 AWS SAA 課程 已經教授了 Lambda Functions 等serverless 的基本概念,進入了 serverless 的世界。相信執行一個或少量的 Lambda Functions 應該沒有太大的問題 (例子)。但如果我們面對比較複雜的情況,也許需要考慮使用 Step Functions 以協調分散式應用程式 (Distributed applications / Lambda functions) 和微服務 (Microservices)。而 X-Ray 可協助開發人員分析和偵錯分散式應用程式 (Distributed applications),它們都是 Serverless、Microservices 和 Distributed applications 的重要 architectures,此章節的教授重點是 architectures,不是程式編寫。

- 教授一些程式常見的結構,例如 Filters 等 (例子),解釋它們與 X-Ray 之間的關係。
- 如何在程式 “植入” X-Ray。
- 示範如何在 X-Ray “捕捉” 例外情況 (Exceptions)。

- 教授分散式應用程式和微服務的結構 (課堂內盡量以 AWS SAA 課程 已經教授過 Lambda Functions 作解釋及示範,避免過份處理如 Java EE 的程式語言和架構),並教授 Step Functions 的角色。

- 由 “Hello World” 開始學習 Step Functions。


- Iterations, outputs, Inputs 和 functions 之間的訊息傳遞。

第 5 部份:Containers (ECS + ECR + Fargate + Auto Scaling)。本章節教授 AWS 的 Container solutions。

- 教授 Containers 技術特點,了解其特點、優點及限制。
- 小試牛刀:先教授在一台 EC2 instance 操作 Docker。製作 Dockerfile,然後 build 成 Image。


- 將 image 儲存到 ECR (Elastic Container Registry) 內。

- 下一階段在 ECS (Elastic Container Service) 操作 Containers,首先教授 Fargate,一個十分有趣的概念,我們可以在 “無 Node / 無 EC2 instance” 下操作 Containers。


- 在 ECS Cluster “單獨” 地執行 Tasks。

- 在 ECS Cluster 建立 Service 在有 Application Load Balancer + Auto Scaling 下執行 containers,例如下圖反映了因為 CPU Utilization 太低,由 2 個 tasks 減少到 1 個 task。

- 建立新版本的 Task definition 以準備 Rolling Update。

- 以 200% 的 capacity 進行 Rolling Update (示範更新軟件 / 內容)。

- 其他 AWS Resources 和 Containers 之間的話題,例如怎樣將 container 的 stdout 儲存到 CloudWatch 內。

第 6 部份:Miscellaneous 。本章節主要視乎上課當時 AWS 技術發展情況和 AWS 客戶使用 AWS 技術情況教授有關技術。
- 教授同時管理多個 AWS account 的技巧。


- 教授使用 AWS Systems Manager 管理 EC2 instances。

- 教授使用AWS WAF (Web Application Firewall) 以保護 Web application。

- AWS Well-Architected Framework: The Five Pillars。
The course content above may change at any time without notice in order to better reflect the content of the examination.
|