三個月考過 AWS Solution Architect Associate (SAA-C02)—考試重點與心得、線上考試注意事項
Wise men speak because they have something to say; Fools because they have to say something.
Plato
前言
我的本職是前端的軟體工程師,主寫 iOS 涉略一點 React.js,對後端有概念但沒太多實作經驗,先前並沒有先考 Cloud Practitioner 熱身,而是決定直上 Solution Architect,因為我發現在 Cloud Practitioner 還沒發明前大家也是直接考 Solution Architect,沒道理我不行呀~事實證明直接考 SAA 也是沒問題的。
綜合以上敘述,可以發現我其實是個 毫無經驗的雲小白,所以這篇文章是以一個菜鳥的角度,闡述自學準備的歷程,希望能對你有幫助!
先秀一下這張得來不易的 SAA-C02 證照
一、考試重點
AWS SAA-C02 總共 65 題,分為單選、多選題,有 130 分鐘作答,720 分視為通過。正式考試 150 美金,練習考試 20 美金。語言有英文、日文、韓文、簡中。
P.S. 若對英文沒信心,可以跟 AWS 申請 30 分鐘延長,申請方式。
考試分成如下四大主題,詳情參照 (SAA-C02) Exam Guide。
Domain 1: Design Resilient Architectures – 30%
這個章節要我們了解如何創建有效率的架構,利用 AWS 的基礎資源,如 EC2, VPC, RDS, S3 等,最好的練習是知道何時需要這些架構,建議閱讀 AWS Well-Architected Framework 了解更多。
Domain 2: Design High-Performing Architectures — 28%
這個章節的重點在於如何建構 resilient(有彈性、容易復原的)架構,利用 Scalability 和 Elasticity,我們需要了解 Multi-AZ 以及 Auto-Scaling 的原理及目的,以達到降低成本和優化容錯能力。
Domain 3: Design Secure Applications and Architectures — 24%
於此章節,我們需要了解如何利用 4 個面向(AWS resource, network-layer, application-layer, data-layer)添加安全措施,其中 Data-layer 又可以分成 2 個部分:data in transit & data at rest。資料安全中,加密佔了主要很重要的部分。至於 networking 的部分,我們需要知道權限控制,如 Security groups, Access Control Lists。
Domain 4: Design Cost-Optimized Architectures — 18%
最後一部分,我們需要知道如何打造低成本架構,並考量 scalability 和 resiliency,選擇正確的 AWS 資源,最後,懂得如何優化 network design 來有效率的從 on-premise 轉移資料到 cloud。
AWS Solution Architect Certification 範圍廣,深度不深,考的更多的是大概念,很少問表淺的問題(如某功能要哪個服務),而是需要了解「架構」(如 Auto Scaling Group + Elastic Load Balancer 花樣組合)。
二、技術總結
如果你還沒準備完全,可以先跳到下一部分「準備方法」。
以下內容依照 Domain 分類,這邊只包含必須非常熟悉的基礎內容,要注意的是這不是全部,還有很多其他功能會出現在考試中。如果你已經看完一遍內容,卻發現自己對這些仍舊很陌生,不用擔心,會越來越熟悉的。
Domain 1: Design Resilient Architectures
EC2 Storage types
Amazon Elastic Block Store(EBS):提供 block-level storage,分成 Magnetic, General purpose SSD, provisioned IOPS SSD。
Instance Storage:提供暫時的 storage,EC2 instance shut-down 資料就會消失。
Elastic File System (EFS)
File storage 服務,屬於 high durable storage,可以跟 EC2 intance 共享檔案資料 (NFS Protocol),資料可以儲存 across multi-AZ(單一 region),提供 POSIX。
Amazon Simple Storage Service (S3)
S3 是 object storage 保證 99.999999999%(11-9s)high durable,提供無限空間,並分成以下六種:
- S3 Standard
99.99% availability, 99.999999999% durability (11 x 9s),儲存多份遍佈在 multiple facilities,且被設計可以承擔 2 個以上 facilities 同時 loss。 - S3 — IA (Infrequently Accessed)
用於訪問 less frequently 的資料,但需要 rapid access,相較 Standard 較便宜。 - S3 One Zone — IA
用於更便宜的訪問 less frequently 的資料,但沒有 multi-AZ 的 data resilience。 - S3 — Intelligent Tiering
設計來優化成本,基於其自動移動 data 到相對便宜的 tier,不影響 performance,也不需提前處理。 - S3 Glacier
Glacier 是一個提供 data archiving 安全、耐久、低成本的 storage。
Retrieval Time: Expedited(1–5 min), Standard(3–5 h), Bulk(5–12 h) - S3 Glacier Deep Archive
Glacier Deep Archive 是最便宜的 class,Retrieval Time: 12 h
設計 decoupling(解耦) 系統
雲端架構的解耦元素非常重要。
解耦系統範例:SQS + Auto Scaling,此外注意 SQS, SNS, Kinesis 相關應用。
Elastic Load Balancer (ELB)
ELB 是 high availability 和 scalability 重要的一環,分成以下三類:
- Classic ELB(較少出現)
- Application Load Balancer (ALB)
- Network Load Balancer (NLB)
Domain 2: Design High-Performing Architectures
Amazon Relational Database (RDS)
- 種類:SQL, MySQL, PostgreSQL, Oracle, Aurora, MariaDB
- Backup 功能分兩種:Automated Backups、Database Snapshots
- Multi-AZ:用途 Disaster Recovery(災難處理)
- Read Replicas:用途為 Increase Performance(增加效能)
DynamoDB
- NoSQL,儲存在 SSD storage
- 跨越三個不同地理區的 data centers
- Read Consistency(讀取一致性模型)
・Eventual Consistent Reads (Default):最終一致性,best read performance
・Strongly Consistent Reads:強制一致性
Elasticache
- 用途:優化 database 與 web application 的 performance
- 種類:Redis & Memcached
- Redis:Multi-AZ,可以做 backups 和 restores
- Memcached:當需要 scale horizontally(水平擴展)
CloudFront
- Content delivery network (CDN) 服務
→ 看到 CDN 聯想 CloudFront - Edge location:資料被 cached 的地方
- Origin:所有檔案的 origin,可以是 S3, EC2, ELB, 或 Route53
- Distribution
・Web Distribution — 特別用於 Websites
・RTMP Distribution — 用於 Media Streaming - Edge locations 不單單只是 READ only,你也可以 write(如:放 object 在上面)
- 物件被 cache 的時長基於 TTL (Time To Live)
- 可以清除 cache,但會被收費
- Geo restriction 功能
Domain 3: Design Secure Applications and Architectures
Shared responsibility model
- Customer:雲端內部安全
- AWS:雲端本身安全
Shared responsibility model(共同的責任模型)
→ 想像你可以利用 AWS console 或 EC2 做到嗎?如果答案為是,大概率是 Customer 的責任;如果答案為否,大概率是 AWS 的責任。Encryption 是共同責任。
AWS Identity and Access Management (IAM)
- Users: End Users 像是人、員工、公司等
- Groups: Users 的集合,在 group 的每個 user 都會繼承 group 的 permissions
- Policies: 由 document 創建而成,又稱為 Policy documents,JSON 格式,Documents 會給 permissions 給 User/Group/Role。
- Roles: 創建 roles 之後指派給 AWS Resources,不需要 password 或 access key,Roles 比 User 好管理。
AWS Key Management Service (KMS)
- Regional,建立、管理加密金鑰
- 管理 customer master keys (CMKs)
- FIPS 140–2 Level 2
- 種類:Customer Managed、AWS Managed CMK、AWS Owned CMK
- 考點:必須徹底理解每個種類,常考該情境應使用何種 Encryption 搭配何種 Key Management Service
AWS CloudHSM
- 以雲端為基礎的硬體安全模組 (Hardware Security Module 簡稱 HSM),在 AWS 雲端產生和使用自己的加密金鑰。
- FIPS 140–2 Level 3
補充:Level 2 是 KMS - 產業標準 API,而非 AWS API
AWS VPC
- Virtual Private Cloud,想像 VPC 是在雲端的虛擬 data center
- 包含 Subnets、Security Groups、Route Tables、Internet Gateways (或 Virtual Private Gateways)、Access Control Lists
→ Sub+SG+R+ACL+IG
→ 次級(Sub) 得分後衛(SG) 右腳(R) 十字韌帶(ACL) 受傷 (Injury) - 1 Subnet = 1 AZ
不能有一個 Subnet 延展至多個 AZs,但可以一個 AZ 有多個 Subnets - Security Groups – Stateful;
Network Access Control Lists – Stateless. - NO TRANSITIVE PEERING
- 必須得會自己完成 VPC
Domain 4: Design Cost-Optimized Architectures
我們需要知道如何將成本納入考量來建構雲端架構。
- 價格是基於 Compute, Storage, Data transfer
- 了解 EC2 價格模型,基於各式種類如:Compute-optimized, Memory-optimized, Storage-optimized 等
- 何時使用 reserved instances 取代 on-demand 或 spot instances
- 不需持續運作的可以用 Lambda
- 知道使用哪個 data storage service(EBS, S3, RDS)與其種類
- 閱讀 How AWS Pricing works 白皮書
再聲明一次,以上不是全部內容,但幾乎是必考,AWS SAA-C02 守備範圍非常廣,幾乎常見的功能都有可能考,但不會考得太深,只要對於基本功能都有初步概念即可。
三、準備方法
我的方式不適用所有人,我沒什麼經驗跟背景,在 AWS 的熟悉程度跟有經驗的考生有很大的落差,這部分還請各位自己斟酌。
整個考試的脈絡,我認為可以分成三個階段:
- 內容階段:第一次學習 AWS 的所有內容
- 吸收階段:看完所有內容後,快速檢驗自己懂得多少,並持續從題目中吸收知識,抓到考試的主要題型
- 衝刺階段:對於考試的重點已有概念,頻繁模擬考,針對自己不熟悉的地方加強
(我自己在內容階段花了兩個月,因為白天要工作比較佛系,接著剛好碰到離開當時的工作,因此後面兩個階段花了一個月是以全職考生的姿態進行,吸收階段一週半,衝刺階段兩週半,總費時三個月。)
內容階段
這個階段主要在做的是「第一次學習 AWS 的所有內容」,約莫佔據五成的時間。
選擇很多,舉凡 A Cloud Guru、Udemy – Neal Davis SAA、免費的 freeCodeCamp 等等,只要你喜歡沒有不可以。
個人經驗:
- A Cloud Guru:我當時用的學習平台是 A Cloud Guru,簡稱 ACG,訂閱制每個月 29 美金(不定期會推年繳優惠),相比於 Udemy — Neal Davis SAA 優惠價 390 NT 或免費的 freeCodeCamp 費用高很多,但後兩者我也沒實際試過,無法給建議。針對我實際使用過的 ACG,坦白說有點過時,儘管它持續在更新,也的確新增了 SAA-C02 的內容,但卻是直到 2021.04 左右才較完整(2020.07 AWS 就開始轉向 SAA-C02),明顯 AWS 的更新速度更快,除此之外,裡面的練習題相對簡單而失真,我在第一次看完內容之後以為自己準備好了,結果被其他平台的模擬考揍到不要不要才發現 ACG 真的教得太簡單。
- 學習方式:我當時做最錯的一件事是將課程簡報內容「一個字一個字筆記下來」,因為以我過往的經驗是只要我內容打過一遍便可理解並記得五成,但… 這種大範圍(廣度大於深度)的考試不能用這種方法,筆記當下記得,可能一個禮拜後記得,但兩個禮拜後還是忘了,所以,非常浪費時間,但我獲得了一份完整筆記就是了… 我建議在這個階段,課程中隨手筆記加深印象就好,因為凡人應該都沒辦法看過一次就記得。
- Hands-On-Lab:實作很重要!不管用哪個平台,碰到老師在實作的部分,一定要跟著做。ACG 今年有另外加上 Hands-On-Lab 的功能,也就是提供一個模擬環境與教學讓學生實作,相比於 Udemy 或 freeCodeCamp 我想這部分 ACG 佔有優勢,但當然也有其他的平台(如 WhizLab)有相關服務。
內容階段總結:
- 佔據整體準備時間的 50%
- 標註 SAA-C02 的部分要特別注意,考試有一定比重
- 實作!實作!實作!功能一定要自己摸過,留個印象也好,千萬不要只用看的。
- 課程平台選個喜歡的都可以(如果你真的不知道,就選 A Cloud Guru 吧,初學者適用),因為這只是開始,重點在不要花太多時間拘泥於想要一次記熟。
吸收階段
這個階段主要在「快速檢驗自己懂得多少,並持續從題目中吸收知識,抓到考試的主要題型」,約莫佔據兩成的時間。
個人經驗:
- 模擬考:利用有 SAA-C02 的模擬考(但 不要 是 Dojo’s Practice Exam,因為要將其留給最後的衝刺階段),我是做 BrainCert SAA-C02,注意一定要是 SAA-C02,現在還有很多舊版的模擬考,並且務必非常仔細閱讀詳解,理解至少八成,因此擁有高品質解答很重要。佐以 AWS 中文 官方文件與其他輔助文章(我自己有整理以下《AWS SAA-C02 大統整》,文很長慎入)。
- 學習方式:這個階段重點是要盡可能快速檢驗自己懂多少,然後從題目中學習再吸收,前述的 BrainCert 模擬考,我平均才拿 65 分,但我很清楚這份模擬考是來練手的,做完一輪(總共 5 回)儘管分數不達標,已經理解考試重點,就直接進到下一個階段了。建議閱讀中文文件的原因是因為在模擬考的解答中就已有大量的英文,如果平常沒有閱讀英文的習慣,在仔細揣摩解答就已非常疲勞,我們此時需要的是「從官方文件或其他文章中快速理解這個功能是做什麼的」,而不是糾結於文件是否英文。
- 整理筆記(考前翻閱的筆記):不建議在這個階段做整理筆記,可以隨手筆記加深印象,但因為我們現階段一邊學習一邊複習,對於整個 AWS 的服務內容都很模糊,介於有與沒有之間,如果現階段開始做筆記會太過細瑣。
吸收階段總結:
- 佔據整體準備時間的 20%
- 快速檢驗自己懂得多少,並持續從題目中吸收知識,抓到考試的主要題型
- 寫題目並細讀解析,輔佐中文官方文件,對於考試重點的理解達到八成
- 不建議開始做整理筆記
衝刺階段
這個階段主要在於「頻繁模擬考,針對自己不熟的地方加強」,約莫佔據三成的時間。
個人經驗:
- Dojo’s Practice Exam:網友一致推薦最接近真實考試的模擬考,總共有 6 回合,建議做到平均 80 分以上,我第一輪只有 6x 分,第二輪才做到 80 分以上,所以不用擔心一開始做不好,但要有心理準備可能會要再做一輪,同時搭配傳說中的 Blog 們,如 Jayendra’s Cloud Certification Blog、Dojo’s SAA-C02 Study Path。
- 模擬考與解析:這 6 回的模擬考,每回有 65 題,值得一提的是 Dojo 的題目解析非常好
1st Round:重點在「熟悉題型與內容」,不論答題對錯,仔細地看過每一題的解析,但得強調一點,因為考試本身已須 2 小時,題目解析可能又會佔據至少 3 小時,因此,第一輪在時間跟精力上怎麼安排要自己注意。
2nd Round:重點在「加強自己不熟的地方」,答題完依舊每題都掃過一遍,一旦那一題有任何選項不確定,就再看一下解析,並搭配傳說中的 Blog 的們相關內容進行補強。心態要調整成這是最後一輪寫考題(相信我你不會想再寫一輪),將自己調頻到跟 AWS 是靈魂伴侶的頻道。 - 狀態調整:AWS 的考試動輒 2 小時以上,非常非常累,我們在模擬考時便必須強迫自己坐滿 2 小時,中間不能暫停,完全仿造考試的狀態,在練習的過程會找到自己節奏,又因是線上考,考前幾天必須加強模擬不戴手錶、身旁桌上都沒有相關物品,盡可能仿真。順便分享我的配速,總共 65 題,切分成五份,每 13 題最好抓 20 分鐘以內,這樣寫完還有 30 分鐘檢查,但理想很豐滿、現實很骨感,不論過程怎麼調整,記得一定要給自己至少 10 分鐘的緩衝時間,不然最後容易慌掉。
衝刺階段總結:
- 佔據整體準備時間的 30%
- 頻繁模擬考,針對自己不熟的地方加強
- Dojo’s Practice Exam 作為模擬考題庫,總共 6 回,目標平均達到 80 分以上,要有心理準備要做 2 輪,中間間隔一段時間以防背誦解題,Round 1 仔細閱讀完整解析,Round 2 掃過所有題目並針對不熟的題目或選項進行加強。
- 傳說中的 Blog:Jayendra’s Cloud Certification Blog 或 Dojo’s SAA-C02 Study Path 擇一即可,沒什麼訣竅就是閱讀,坦白說我沒有每個章節都念過,但一旦碰到不熟的部分會再複習一次。
- 排定考試:建議寫完第一輪第 3 回的模擬考,依照自己的狀態,評估考試時間,直接報名考試,給自己一點壓力,報名考試之後還可以改兩次考試時間(時間限制在考前 24 小時),報名會讓你立刻進入考試狀態。
- 配速:每 13 題 / 20 分鐘左右,不超過 25 分鐘,最後至少留 10 分鐘檢查(可以找到最適合自己的配速)。
- 整理筆記(考前翻閱的筆記):看傳說中的 Blog 之後,開始統整所有概念,製作不超過 8 頁的筆記(不翻超過 4 次可以看完,屬於你的 Cheat Sheet)。
- 狀態調整:調整狀態非常重要,讓自己進入 zone。
考試注意
我的考試方式是線上考,這邊會針對線上考做提醒事項,現場考試可能有所不同,還請另外注意。
考試當天
- 考前三小時:讓自己進入狀態,平常模考什麼節奏,就照著節奏進行,注意不要喝太多水。
- 考試當下個人心得:考前我的氣勢很不錯,已經信心爆棚地幻想我的心得文要怎麼寫了,但進到考試,風雲色變,我的狀態差到不行!前面 13 題就花了超過 30 分鐘(實際不該超過 20 分鐘),當下是覺得慘了~
歸結原因以下兩點
不習慣介面:OnVUE 是左右滿版,所以看題目左右很貼齊邊界,但我之前的模擬考聚焦在中間,Padding 不一樣,所以我一開始題目看超多遍看不懂、無法吸收(可以參照上述《AWS 證照線上考試報名》文章,裡面有我自繪的 mockup 介面)。
不習慣敘述:題型跟選項敘述方式,跟模擬考有一點不一樣,稍微難些,但後來寫完回頭看的時候,就習慣了,一開始需要適應一下。 - 考試完:提交當下,會先跳出 OnVUE 的滿意度調查,按下提交之後,會立刻跳出你 PASS 還是 FAIL,非常刺激!看到 Pass 當下嘴角控制不住非常開心,畢竟自己答題狀況很差,已經邊答題邊思考戰敗文要怎麼寫了… 雖說如此,但考試過程我的心態一直沒有崩,不停地洗腦自己還有這麼多題,好好答題還有機會,萬幸考過了!
最後,分享一路走來的十字箴言
給自己壓力,但不要著急
一路上,不停自我懷疑,各種崩潰,有時候看到外國神人花一個多禮拜就考過,我認真懷疑自己是不是智商不足,但相對地別人可是有一年多經驗又是母語英文,每個人都有自己的起步點與節奏,找到自己的步調,保持信心,相信自己可以做到,過程不論多痛苦,通過考試的瞬間,一切都值得!
瀏覽 8,101 次
Yeah 媽我在這兒!
我是 Sunny,今年秋天要去 Carnegie Mellon University 念 Master of Software Engineering,最近已經開始先修一門 CMU 的鎮店神課 15513,並著手寫 CMU Week-每週分享當週在學校的所見所聞,歡迎大家來 follow 我的 Medium!
噢忘了說我是本文作者~
Hi 您好:
我是科技島編輯,非常高興能獲得您的文章「三個月考過 AWS Solution Architect Associate (SAA-C02)—考試重點與心得、線上考試注意事項」授權許可!
日前您授權刊登在科技島上的文章,引發網友很大的迴響,持續透過私訊表示,「希望能看到更多您的文章,並且與您進行互動,一起討論這些專業話題。」
因此,不曉得是否有這個榮幸邀請您擔任【科技島】的「駐站專家」。
我們規劃的「駐站專家」,是希望能邀請領域內的專業賢達,來到這個討論區,發表具話題性的科技領域內容來帶動討論、吸引人氣,進一步擴大資訊平台的傳播效益。
我們會請駐站專家,每週提供兩篇跟科技領域相關的討論短文,發布於【科技島】的討論區!
第一篇文章的發布,是「開啟話題」,預計三天後再針對這個已開啟的話題,發表第二篇的「延伸話題」。
篇幅不用長 (200-500字即可)、也不用艱深內容,但希望可以包含一些獨特觀點和思考角度,並鼓勵線上讀者共同討論或提問。
以您來說,我們就很期待能看到您分享軟體開發的經驗,另外也可以把您之前刊登在【科技島】上的文章內容拿出來討論。
每週發文時段可以大致固定,希望先以兩個月為期,跟您進行這個「駐站專家」的合作模式。
我們每週提供 $3,000 的微薄稿費,雖然數額不多,但希望能對您的貢獻聊表心意。
若您願意的話,我們會跟您索取簡歷及照片,以創建您的發文帳號、以及設計文宣素材。帳號密碼會提供給您,但發文作業會由我們的工作人員登入此帳號代勞。除了約定好的每週兩次貼文外,不會擅自拿來發布內容,但若您有想要自行登入發布或回應任何內容,我們也非常歡迎。
以上內容,如果文字描述不夠清楚,我可以致電給您口頭討論。期待能收到您的回音,謝謝!
科技島社群編輯
電話:02-8787-1111#8863
techniceeditor@gmail.com