🧗

AWS Solution Architect Professional試験を受けようと思って受けれていないあなたへ

2023/01/20に公開

昨年の話ですが、AWS Solution Architect Professional(SAP)試験に合格しました。

実は一回受験を投げ出したんですが、合格までこぎつけることができました。
自分のように途中で投げ出している人も多いと思うので、体験記録として残します。

受験者背景

普段は株式会社IVRyでソフトウェアエンジニア/AIエンジニアとして活動しています。
IVRyは昨年正社員が1→20名へと急拡大しましたが、まだまだ人が足りません。(絶賛募集中です)
そのためインフラ部分も自ら設計・実装することがほとんどです。

サービス立ち上げ当初は、なんとなく知っている知識の組み合わせで開発をしていましたが、事業がスケールするにつれて本格的な運用が求められてきました。約2年くらい前に Solution Architect Associate(SAA) は取得していましたが本番運用となるとあまり自信はありません。
せめて知識部分でできることはしておこうということでSAP試験を受ける決意をしました。

でも、実はSAP試験は一度投げ出した過去があります。

SAP受験を投げ出した過去

SAAはこんな試験

以前は別企業でAIエンジニアとして活動しており、PoCの為のアプリケーション開発のためにSAAの勉強をはじめました。大体2年くらい前です。

その時は本を買って、適当に読んでわからないところを復習してました。2回くらい同じ本を読んで、付属していた模擬テストを1回受けただけでしたが、合格点は取れました。事前知識があったのでそんなに苦労していません。

限られた知識しか持っていませんでしたが、SAAの勉強を通じてAWS全体の知識を体系的に得ることができました。特に、CloudTrail, Snowballなど、自分の業務に関係しなそうな機能は勉強しないとずっと知らなかっただろうなと思います。

正直、そんな苦労せず取れたので、 次はSAPだな と思ったものです。

SAPはこんな試験

その後合格して1ヶ月後くらいに、SAP試験の本をAmazonでポチりました。
そして、数ページ読んで本棚にしまいました。
以下がその理由です。

問題文がめちゃくちゃ長い

有名な話ですが、SAPは問題文が非常に長いです。

公式のSAA例題

1) 顧客関係管理 (CRM) アプリケーションが、Application Load Balancer の背後にある複数のアベイラビリ
ティーゾーン内の Amazon EC2 インスタンスで実行されています。
これらのインスタンスのいずれかに障害が発生した場合、どうなりますか。
A. ロードバランサーが、障害が発生したインスタンスへのリクエスト送信を停止する。
B. ロードバランサーが、障害が発生したインスタンスを終了する。
C. ロードバランサーが、障害が発生したインスタンスを自動的に置換する。
D. ロードバランサーが、インスタンスが置換されるまで 504 ゲートウェイタイムアウトエラーを返す。

公式のSAP例題

ある会社には2つのAWSアカウントがあります。1つのアカウントは本番環境のワークロード用、もう1つのアカウントは開発ワークロード用です。
開発チームと運用チームが、これらのワークロードを作成して管理しています。
同社は、次の要件を満たすセキュリティ戦略を必要としています。
- 開発チームのメンバーは、開発アプリケーションインフラストラクチャを作成および削除する
必要がある。
- 運用チームのメンバーは、開発および本番環境のアプリケーションインフラストラクチャを作成および削除する必要がある。
- 開発チームのメンバーは本番インフラストラクチャにアクセスできてはならない。
- すべてのユーザーが 1 セットの AWS 認証情報を持っている必要がある。

これらの要件を満たす戦略はどれですか。

A) 本番稼働用アカウントで以下を実行します。
- アプリケーションインフラストラクチャを作成および削除できる運用IAMグループを作成する。
- 運用チームのメンバーごとに IAM ユーザーを作成する。これらのユーザーを運用グループに
割り当てる。
開発アカウントで以下を実行します。
- アプリケーションインフラストラクチャを作成および削除できる開発IAMグループを作成する。
- 運用チームのメンバーと開発チームのメンバーごとにIAMユーザーを作成する。これらのユーザーを開発グループに割り当てる。

B) 本番稼働用アカウントで以下を実行します。
- アプリケーションインフラストラクチャを作成および削除できる運用IAMグループを作成する。
開発アカウントで以下を実行します。
- アプリケーションインフラストラクチャを作成および削除できる開発IAMグループを作成する。
- 開発チームのメンバーごとに IAM ユーザーを作成する。これらのユーザーを開発グループに割り当てる。
- 運用チームのメンバーごとに IAM ユーザーを作成する。これらのユーザーを開発グループと本番稼働用アカウントの運用グループに割り当てる。

C) 開発アカウントで以下を実行します。
- 本番稼働用アカウントでアプリケーションインフラストラクチャを作成および削除できる共有IAMロールを作成する。
- アプリケーションインフラストラクチャを作成および削除できる開発IAMグループを作成する。
- 共有ロールを引き受けることができる運用IAMグループを作成する。
- 開発チームのメンバーごとにIAMユーザーを作成する。これらのユーザーを開発グループに割り当てる。
- 運用チームのメンバーごとにIAMユーザーを作成する。これらのユーザーを開発グループと運用グループに割り当てる。

D) 本番稼働用アカウントで以下を実行します。
- アプリケーションインフラストラクチャを作成および削除できる共有IAMロールを作成する。
- 開発用アカウントを共有ロールの信頼ポリシーに追加する。

開発アカウントで以下を実行します。
- アプリケーションインフラストラクチャを作成および削除できる開発IAMグループを作成する。
- 本番稼働用アカウントで共有ロールを引き受けることができる運用IAMグループを作成する。
- 開発チームのメンバーごとにIAMユーザーを作成する。これらのユーザーを開発グループに割り当てる。
- 運用チームのメンバーごとにIAMユーザーを作成する。これらのユーザーを開発グループと運用グループに割り当てる。

長すぎ。そして、SAA資格の勉強では出てこなかった用語もたくさん出てきたりします。
知らない単語が3つ出てきたらもう全然わかりません。

自分に関係ない業務でも深い知識が求められる

SAPの出題範囲は幅広いですが、組織の権限管理、オンプレミス環境からのネットワーク設定など、当時の自分にはほとんど関係ないような分野の出題が多いです。
逆に言うと、こういった分野の知識を正しく持っている人がプロフェッショナルなんだなと思いますが、普段の業務で使わないものが多いとなかなかやる気が起きません。

こうして、私のSAP受験は一回頓挫しました。

その後IVRyにジョインし、より高度でしっかりした知識の必要性が出てきたので、改めて引っ張り出して勉強をはじめたという経緯です。

無理のないSAP勉強

今回、通算2ヶ月くらいかけて試験勉強をしました。一度諦めているので、無理なくやり遂げることを目標にしていました。そのプラクティスをまとめます。

1. 受験の申込みをする

これが一番大事で、効果的です。一番最初にやるべきです。
まず受験の日を適当に決めて申し込んでください。(1~2ヶ月後くらいがオススメ)
これで背水の陣を敷くことができました。もう逃げられません。

2. 同じ本を3回読む

知識をつけるためには何か1つのソースに絞って、それを何度も繰り返すことが大事だと思います。
秀才で有名な山口真由さんも同じ本を7回読むことをおすすめしています。

  • はじめは飛ばしてもいいが、単語の意味を自分なりに理解する
  • 何がわからないのかを理解する
  • 最後のページまでそれをやる

7回繰り返せれば最高ですが、一ヶ月半くらいでこれを3回繰り返すくらいで合格はいけると思います。
本をしっかり3回繰り返すことで、出題範囲・問われる知識レベルが頭に入ります。つまみ食いではなく、すべてのページをしっかりと3回繰り返すことが大事です。
自分は1日1~3問くらいのペースでゆっくり進めました。わからないところはホワイトペーパーやYouTubeなど見ながら進めています。1周目が一番時間かかって大変ですが、2周目以降は倍のスピードで進みます。

3. 短期集中で過去問を解く

3回終わったら残り時間で過去問をたくさんやります。受験日が近づいて来ているので、流石に時間作ろうという気持ちがあるはずです。過去問は色々な方法で入手できると思います。
問題を解いていると、自分の間違いの傾向が出てきますから正答率が低いものに絞って最後のインプットをしてください。自分の場合は権限関連とネットワーク設定関連の正答率が低かったので、直前のこの期間で集中的に知識をつけました。

本番相当の時間で全問を通して解いたのは直前の週末でした。時間感覚を掴むためにも必ず通しの模擬テストはやったほうがいいと思います。

SAP取得してみて

時間がかかりましたが、SAPを取得して良かったです。
やはり、AWSの機能について自分はある程度知っているんだという自信が持てることは大きいです。これまではなんとなくやっていたので不安だったところは明らかに減りました。
また、業務上GCPやAzureを触る機会もありますが、一つのクラウドサービスで上級資格を取っていると、他のサービスの理解が早まります。

ただし、結局運用経験がないと「プロフェッショナル」とは名乗れなそうということも実感しています。
資格は取ったものの、自分がAWSのプロフェッショナルだとは到底思えません。知識だけではだめで、やはり経験が必要です。信頼に足るサービスを自信を持って作るため、今後も研鑽をつもうと思います。

IVRyテックブログ

Discussion