「AWS認定ソリューションアーキテクト - プロフェッショナル」に一発で合格する技術(2020/11版)
AWS(Amazon Web Service)は言わずと知れた知れたシェアNo.1のクラウドコンピューティングサービスです。そのAWSの認定資格の中でも最難関と言われている「AWS認定ソリューションアーキテクト - プロフェッショナル」に一発で合格することができました(2020年11月)。AWSの実力者でも対策なしでは一発合格は難しいと言われており、対策を十分にしたとしても合格は至難の業と言われています。本記事はなぜこの資格がそこまで難しいかと、なぜ自分は一発合格できたのかを振り返りながらその要因について考察したものになります。
はじめに
最初にお断りしておきますが、AWS認定プログラムアグリーメントの規約により認定試験を含む試験関連資料の内容については他言してはいけないことになっているので、その辺はAWSが公開している情報に準拠します。そして試験やAWS自体も今後変わっていくと思われるので、実際に受ける際には最新の情報を確認するようお願いします。
また、本記事は筆者の体験談になりますので、以下の条件に合わない人の参考にはならないかもしれないのでご注意ください。
- 「AWS認定ソリューションアーキテクト - アソシエイト」に1年とちょっと前に合格した中堅エンジニア
- ITの基礎知識(OS、DB、ネットワーク、セキュリティ)があり、ソフトウェアの開発経験あり
- AWSを本格的に業務で使い出して半年未満
- 暗記が苦手
なぜAWS認定ソリューションアーキテクト - プロフェッショナル(SAP)は異次元に難しいのか?
AWS認定は以下のとおり12種類ありSAPは最上位の資格なので難しいのは当然なのですが、他の最上位資格であるDevOps Engineerや専門知識の各認定と比較しても頭一つ抜けて難しいと言われています^1。
その一番の理由は試験範囲が最も広いことに起因します。そもそもAWSのソリューションアーキテクトに求められる技能として200近くあるAWSサービスから最適な使い方や組み合わせの提案があるので範囲の決め打ちができないのが実情です。
ただ、範囲の決め打ちは難しくても「ソリューションアーキテクト」の技能として求められるのは単一の知識ではなく、組み合わせや使い方が「ベストプラクティス」に沿っているかを見抜き、説明できる能力なのでその視点から問題の傾向や選択肢の特徴を掴むことができます。ここで言うベストプラクティスとはAWSの言葉でいうと「AWS Well-Architectedフレームワークの5つの柱」になるので、まずはこの5つの柱を徹底的に理解する必要があります。
次に難しさを跳ね上げている要因は「問題と選択肢が長文」ということです。以下のサンプル試験問題で一番長い問題では問題文10行以上、選択肢30行以上もあります。標準的な問題でも問題文7行、選択肢8行はあり、これを平均で2,3分で解く必要があります。長文問題は本当に読むのに疲れます。
AWS認定ソリューションアーキテクト - プロフェッショナルのサンプル問題より7問目を抜粋
問題文と選択肢の詳細
- ある会社には、運用ワークロード用と開発ワークロード用の 2 つの AWS アカウントがあります。開発チームとオペレーションチームが、ワークロードを作成および管理します。同社には、次の要件を満たすセキュリティ戦略が必要です。
開発者は、開発アプリケーションインフラストラクチャを作成および削除する必要があります。
• オペレーターは、開発アプリケーションインフラストラクチャと運用アプリケーションインフラストラクチャの両方を作成および削除する必要があります。
• 開発者は、運用インフラストラクチャにアクセスすることができない必要があります。
• すべてのユーザーは、単一セットの AWS 認証情報が必要です。
これらの要件を満たす戦略は何ですか。
A. 開発アカウントで、次の手順を実行する。
• アプリケーションインフラストラクチャを作成および削除する機能を持つ開発 IAM グループを作成する。
• それぞれのオペレーターと開発者に対して IAM ユーザーを作成し、開発グループに割り当てる。
運用アカウントで、次の手順を実行する。
• アプリケーションインフラストラクチャを作成および削除する機能を持つオペレーション IAM グル ープを作成する。
• それぞれのオペレーターに対して IAM ユーザーを作成し、オペレーショングループに割り当てる。
B. 開発アカウントで、次の手順を実行する。
• アプリケーションインフラストラクチャを作成および削除する機能を持つ開発 IAM グループを作成する。
• それぞれの開発者に対して IAM ユーザーを作成し、開発グループに割り当てる。
• それぞれのオペレーターに対して IAM ユーザーを作成し、運用アカウントの開発グループとオペレーショングループに割り当てる。
運用アカウントで:
• アプリケーションインフラストラクチャを作成および削除する機能を持つオペレーション IAM グル
ープを作成する。
C. 開発アカウントで、次の手順を実行する。
• 運用アカウントでアプリケーションインフラストラクチャを作成および削除する機能を持つ共有IAM ロールを作成する。
• アプリケーションインフラストラクチャを作成および削除する機能を持つ開発 IAM グループを作成する。
• 共有ロールを引き受ける機能を持つオペレーション IAM グループを作成する。
• それぞれの開発者に対して IAM ユーザーを作成し、開発グループに割り当てる。
• それぞれのオペレーターに対して IAM ユーザーを作成し、開発グループとオペレーショングループに割り当てる。
D. 開発アカウントで、次の手順を実行する。
• アプリケーションインフラストラクチャを作成および削除する機能を持つ開発 IAM グループを作成する。
• 運用アカウントで共有ロールを引き受ける機能を持つオペレーション IAM グループを作成する。
• それぞれの開発者に対して IAM ユーザーを作成し、開発グループに割り当てる。
• それぞれのオペレーターに対して IAM ユーザーを作成し、開発グループとオペレーショングループに割り当てる。
運用アカウントで:
• アプリケーションインフラストラクチャを作成および削除する機能を持つ共有 IAM ロールを作成する。
• 共有ロールに関する信頼ポリシーに開発アカウントを追加する。
合格ラインは75%で結構高めに設定されています。よくある難易度順や分野別に問題が並んでる試験だとこのラインでもそこまで恐れる必要はないのかもしれません。しかしSAPの試験は序盤の問題が易しいということは一切なく、いきなりクライマックスの長文問題が順不同で75問出題されます。これが如何に大変かは想像に難くないと思います。
そしてもちろん問題を読んだだけで終わりではありません。ソリューションアーキテクトの設問方法はかなり厄介で、「要件の満たす一番最適なソリューション何か」を問うていることが多いのです。これはつまり要件として「コスト最適」があった場合に可能なソリューションの選択肢が複数あれば、少しでも安く導入できる選択肢を選ばなければなりません。そして試験には判断に迷う選択肢が多く用意されており、時間を食うケースが続出するのが辛いところです。
最後にまとめると「なぜSAPは他のAWS認定よりも異様に難しいのか?」の問いの答えは、「広い出題範囲、長文問題、設問方法の3要素が複合的に作用してSAPを高難易度の試験にしているから」になると思います。そしてこのためにSAPの試験は単なる暗記式の学習方法では太刀打ちできないレベルになっています。
一発合格までの道のり
上記の試験の難しさと一発合格した経験を踏まえて、合格までの理想の道のりをチャートにしてみました。以降はこのチャートをもとに説明していきます。
導入期
導入期ですることは、出題範囲と出題方式の把握です。これはどの試験でも共通することと思われますが、高難易度の試験を受けるときには特に疎かにしないように注意しましょう。試験ガイドを読むと出題範囲は以下の5つの分野に分かれていますが、今後解く模擬問題に関してどの分野の問題に当てはまるのかを意識するようにしてください。後で見直したときにどの分野が弱点なのか客観的に知ることに役立ちます。
- 分野 1: 組織の複雑さに対応する設計
- 分野 2: 新しいソリューションの設計
- 分野 3: 移行の計画
- 分野 4: コスト管理
- 分野 5: 既存のソリューションの継続的な改善
出題方式はサンプル試験問題で掴みます。合計10題あり解説もついているので何回か立ち戻って読み直してください。最初はまったく分からなくても構いません。学習が進むに連れ理解できる範囲が増えるので学習の進捗のバロメータに利用できます。自分は勉強期間中に3,4回見直しましたが、見直すたびに新しい発見があり成長を感じることができました。
サンプル試験問題の次に取り組んで頂きたいのは以下の5つの柱を持つAWS Well-Architectedフレームワークの理解です。ソリューションアーキテクトの出題は概ねこのフレームワークを理解した上で解答しているかを試されることになるため、一番最初に必ず理解するようにしてください。
- 柱1: 運用上の優秀性
- 柱2: セキュリティ
- 柱3: 信頼性
- 柱4: パフォーマンス効率
- 柱5: コスト最適化
以下にWell-Architectedフレームワークのホワイトペーパー(日本語版も含む)が公開されているので、繰り返し読み返すことをおすすめします。
訓練期
導入期が終わって認定試験の感触がつかめたら訓練期に移行します。この期間ではひたすら模擬問題を解きます。模擬問題の最初としては以下の対策本から始めるのがおすすめです。
そして問いた後になるべく早く解説を読んで「解き方が正しかったか」を検証してください。ここで重要なのは正答にたどり着けたかではなく、どのような思考過程で「正答を絞り込んだか」です。解説には間違った選択肢に対しても「なぜ選択肢から外れるのか」の理由も含めて書いてあるので、その部分も含めてきちんと腹落ちさせてください。腹落ちできなかったらGoogleさんに頼って疑問を払拭しておきます。もしサービス単位で不明な点が多ければ以下のAWSが公開しているBlack Beltオンラインセミナーで補強しておきます。YouTubeの動画を全てみると相当時間がかかるので、必要な箇所だけ見るとか倍速で見るとか工夫が必要だと思います。また割り切ってSlideShareの資料だけ流し見するだけで十分な場合も多いです。
訓練期の行動原則は基本的に「問題ドリブン」で行動することです。問題で分からなかった部分、腑に落ちなかった箇所を起点に調べるようにしてください。そして問題文と選択肢を読み込んで理論的に選択肢を絞り込めるように訓練してください。その際には模擬問題が対象としている「分野」、「柱」、「サービス」がなんであったかをメモしておくと記憶に残りやすく後で振り返りやすいのでおすすめです。
訓練期で失敗しやすいケースは資料ベースで読み込みを始めることです。このやり方は試験範囲が狭い場合には有効ですがSAPの場合は試験範囲が広すぎて路頭に迷い、肝心の「問題を読む力」、「解く力」を伸ばしにくい欠点があります。特に「問題を読む力」は問題を大量に読む以外に効率的に力をつける方法はありません。とどのつまり慣れるしかない・・・ 従って訓練期は割り切って、問題に出たテーマやキーワードの理解に専念して、ある程度理解できたらそれ以上深入りをしないほうが賢明です。深入りしすぎると「暗記」に力が入ってしまい、思考停止や視野狭窄に陥る可能性があります。SAPの試験はそれとは真逆の広い視野と多角的な視点と高速な判断が要求されるので、とにかく大量の問題に触れてそれらを磨くことをおすすめします。また時間が限られている社会人の方は効率的に時間を使う意識を持ってやったほうがSAPに合格しやすいはずなので、この点でも漫然とした資料の読み込みは避けたほうが良いでしょう。
模擬問題で対策本以外で利用したのは以下の2つです。Udemyの方はセールのときに購入しました。かなりボリュームがあります。「AWS WEB問題集で学習しよう」の方はクイズ形式ですぐに解答が見れるのでやりやすかったです。これらふたつの問題集は対策本よりは問題と解説の質は多少落ちますが、とにかく量をこなすにはうってつけなので購入をおすすめします。
模擬問題の正答率が5割をこすようになってきたら、本番試験を受ける覚悟を整えていきます。恐らくいくら問題を問いても不安は払拭できないと思われるので、5割を超えたら訓練期の締め切りを決めて追い込みましょう。
ちょっと息抜き
模擬問題をひたすら解くことでもSAPの合格は可能だとは思いますが、やはり資格取得をきちんとした経験に変えたい場合は手を動かすことも重要だと思います。AWSコンソールからサービスを試してみるのが一番簡単で手っ取り早いですが、おすすめはAWS CLIを使った制御です。コマンドラインは自動化にも役立つので実戦向きです。プログラミングができる方はAWS SDKを使っていろいろものづくりしてみるのもいいかも知れません。
- AWSコンソール
- AWS CLI
- AWS SDK
- AWS CDK/CloudFormation
インフラ寄りの人はAWS CDKやCloudFormationを用いてIaC(Infrastructure as Code)ができるようになると即戦力として重宝されると思います。時間がある人でAWSの魅力を満喫したい方にはクラウドネイティブアプリケーションを作ってみることをおすすめします。Lambda, S3, DynamoDB, AppSync, Amplify, Vue.jsあたりを使って簡単なWebサービスを作ってみるとAWSのビルディングブロックとして特性が実感できると思います。
ただこれらは息抜き程度に留めておかないとかなり時間を吸われてしまうので計画的に時間を使うことが肝要だと思っています。(私はAmplifyでモノづくりして、楽しくなりすぎて時間を取られすぎました・・・)
本番期
訓練期を経てある程度自信がついたら、公式の模擬試験を受けることをおすすめします。公式の模擬試験はAWS 認定から受けることができます。この模擬試験で75%以下のスコアだった場合、もう一度訓練期に戻ったほうがよいです。正直模擬試験よりも本番試験のほうが難しいです。自分は模擬試験は50%だったので一回訓練期に戻りました・・・ 再訓練の期間はだらだらやっても仕方ないので1ヶ月以内を目処にしたほうがいいと思われます。私はここで1ヶ月後に本番試験の予約をして退路を断ちました^2。
そして、準備万端になったら本番試験です。試験は3時間あるのでしっかりと睡眠をとって体調を整えてから望むことをおすすめします。また最近はオンラインでも試験が受けられるようですが私はピアソンVUEの会場で受けました。SAPのようなシビアな試験では試験外の不安要素を払拭しておきたいので、オンラインは選択肢から外しました。
受験中は・・・思い出すだけで吐きそうですが、とにかく時間配分を意識して最後までやりきることが重要です。3分以上かかりそうな問題は後で見直す用にマークして、気持ちを切り替えて次の問題に挑みます。試験は30分前に一通り終わって、見直しマークのつけた問題の半分くらいを見直して時間切れでした。日本語訳が微妙な箇所がいくつかあって英語と日本語を何回か切り替えて試験をすすめました。試験終了時はもうへとへとで、合格・不合格よりも「やっと試験から解放される」という気持ちが強かったのを覚えています。
結果
結果は合格で試験直後にモニタに合格が表示されたときは本当にほっとしました。点数は770でかなりギリギリでしたがとにかく合格できて良かったです。一応一発合格の証に受験履歴を貼っておきます。
費やしたコストは以下のとおりです。今回は合格ぎりぎりだったので少なくとも100時間以上は学習時間を確保したほうが良さそうです。また、AWSの試験費用はアソシエイト合格時にもらったバウチャーがあったので利用しました。今回も合格できたのでバウチャーをゲットできました。次は何を受けようかな・・・
学習期間
- 4ヶ月
- 正味2ヶ月ほど
- 学習時間
- 100時間程
- 費用
- 対策本(kindle版) ¥2,822
- Udemy模擬試験 (セール価格) ¥1,200
- AWS Web問題集(ダイヤモンドプラン) ¥6,028
- 公式模擬試験(バウチャー利用) ¥0
- SAP-C01試験(半額バウチャー) ¥15,000
- 合計: ¥25,050
まとめ
「AWS認定ソリューションアーキテクト - プロフェッショナル」は本当に範囲が広く難易度が高いので、最初はどうやって学習しようか迷いました。しかし模擬問題を繰り返し解くうちに、正直これが最善の方法なのではないかと思い本ブログを書きました。私自身暗記が苦手なこともあり範囲の広さに絶望しましたが、問題の傾向や特徴の量は手の届く範囲だったので助かりました。正直二度と受けたくないくらい厳しい試験ですが、その分乗り越えたときの達成感は格別なので本当に挑戦してよかったと思います。そして「AWS認定ソリューションアーキテクト - プロフェッショナル」を取得してからが「本当のプロフェッショナルの始まり」だと考えているので、これからも精進する次第です。
本記事がAWS認定に興味を持っている方の一助になれば幸いです。