0. はじめに
先日AWS認定デベロッパー - アソシエイト試験(DVA-C01)に合格しました。せっかくなので、合格への経緯と対策について簡単にまとめたいと思います。今後受験される方の少しでも参考になれば幸いです。
受験当時の私のざっくりとした背景としては以下になります。
- 新卒2年目 アプリ開発SE
- ソリューションアーキテクトアソシエイト(SAA-C02)を2ヶ月前に取得
- 業務ではECS上で動作させるサーバーサイドアプリケーション、S3でホストするクライアントアプリケーション(SPA)の比較的小規模な開発を行っていた(使用するリソースはインフラ担当に立ててもらっていたのでデプロイの際にボタンをポチポチしたくらい)
- 個人開発でAPI Gateway、Lambda、DynamoDB、Cognitoを使ったサーバーレスなアプリケーションを設計中
1. 対策
3月末にSAA-C02を取得した直後から対策を始めて、そこから約2ヶ月準備しました。メインで使った教材は以下の3つです。
ただ先に言ってしまうと3つ目のUdemyはあまり活用していません。なぜかというと本番レベルより問題の難易度がかなり高いうえに、設問の内容が必要以上に細かすぎると感じたからです。
- AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター~
- ポケットスタディ AWS認定 デベロッパーアソシエイト (アソシエイト試験ポケットスタディ)
- [Udemy] AWS 認定デベロッパー アソシエイト模擬試験問題集(5回分325問)
個人的には1か2どちらか(余裕があればどちらも)を本で購入して、それをふにゃふにゃになるまで読み込むというやり方がいいかなと思います。特に2のポケットスタディには330題の量の模擬問題もついているので十分に対策できるかと思います。
(古いタイプの人間なので、書き込み跡が「自分だけの参考書」感を出してくれる紙の本のほうが好きです)
1.1 AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター~
アソシエイト3資格対策用とあるように、DVA対策にも役立ちました。SAAを受験する際にメインの参考書として使っていたため、SAAではあまり出題されない第11章 アプリケーションサービス(SQS, Kinesis etc.)
や第12章 サーバーレス(Lambda, API Gateway)
のあたりも事前に学べていたのが良かったなと感じます。
イラストが多くて分かりやすいのと、各トピックごとに必要なポイントが網羅されているので、初めて手にするAWSの参考書でしたが、この一冊でDVA合格レベル知識の土台は固められたと思います。
(余談ですが、余白スペースが多いのと紙質が良いので書き込む参考書にはもってこいです)
注意すべきとしては2019年6月に発行されて以来まだ改訂されていないので、一部内容が古くなっているものがある点です。S3が結果整合性のままであったり、KMSが非対照鍵暗号に非対応となっていたりします。ただ、AWS公式ドキュメントを調べながら随時訂正していけばいいので、あまり大きな問題にはなりません。
非常に役立つ参考書なので、今後改訂版が出版されることに期待したいです!
1.2 ポケットスタディ AWS認定 デベロッパーアソシエイト (アソシエイト試験ポケットスタディ)
今回の受験に際してメイン参考書として使った本になります。初版が2021年3月発行なので、かなり新しい書籍です。行きつけの書店でたまたま見かけたので買ってみたのですが、結果的に非常に役立ちました。
対策としては初めの1ヶ月で一通り最後まで読み切った後、残りの1ヶ月で章末の模擬問題を解きながら知識を定着させていきました。目安としては、受験1週間前に巻末の想定問題集を解いてみて、8割正解できるまでに対策してから本番に臨みました。
1.3 [Udemy] AWS 認定デベロッパー アソシエイト模擬試験問題集(5回分325問)
非常に難しかったです。2回分しか解いていませんが、模擬試験①49%(2週間)、模擬試験②55%(直前)という成績でした。自分の不足を補うという面では役立ちましたが、本番レベルよりもかなり細かい部分まで問われます。なので準備期間と心に余裕がある場合以外は、あえてこちらのUdemy教材を使わなくてもいいのではないかと個人的には感じました。
2. 所感
合格体験記といいながら参考書雑感のようになってしまったので、DVA対策における私なりの所感をまとめます。
参考書に書かれているレベルの数字はできるだけ覚える
DynamoDBの読み込みキャパシティユニット(結果整合性なら最大4KBで2回/s)であったり、SQSのメッセージ保持期間(デフォルト4日間)などの数字は基本的に覚えて臨みました。本番でも数字まで覚えておかないと解けない問題がいくつかあったので、覚えられる数字は覚えておくのが確実です。
基準としては#1.1, #1.2の参考書に記載されているものは覚えておくと間違いないと思います。
IAMは大事
友人に借りたAWSの薄い本 IAMのマニアックな話なども参考にしながら、IAMに関する知識を一通り整理しました。「あるサービスを使用するにおいて、この場合必要となる権限設定はどうなるか」というのは頻出の問題で、今回のDVA対策を期にIAMロールやリソースベースのポリシーについて理解を深めたことが試験勉強のみならず実践でも確実に役に立っていると感じます。
サーバーレスは実際に手を動かした経験が役に立った
試験範囲としてSAAとDVAの大きな違いは、やはりAPI Gateway, Lambdaを中心としたサーバーレスの範囲だと思います。ここに関しては自分で手を動かして試行錯誤した経験が活きました。
IAMロールとは?に関しても実際にLambda関数に割り当てる実行ロールにアタッチするIAMポリシーを書きながら身につけていきました。API GatewayにCognitoオーソライザーを設定するなかで、「ユーザーがCognitoユーザープールで認証し、そこで取得したJWTトークンをもってAPI Gatewayへリクエストし認可を実施する」という一連の流れがつかめました。
やはり実践に勝る対策はないと思います。ただ欲を言うならば、DVA頻出のElastic BeanstalkとKinesisについては完全に教科書勉強に止まってしまったので、そのあたりも実際に触る機会を作れたらよりよかったなと感じます。
3. 余談
結果としては約2ヶ月の準備で無事で合格できましたが、本番試験を受け終わるまでは今の実力で果たして合格できるのか不安でいっぱいでした。(特にUdemyの模擬問題を解いた後はとにかく不安でした)
ギリギリまで受験するタイミングを決めかねていたこともあり、週末のテストセンターも予約できず結局ピアソンVUEのオンライン(英語での試験監督)で受験することになりました。試験監督の方がインド訛りだったのと、そもそもの自分の低い英語力が原因で、コミュニケーションに非常に苦労しました。(「デュアルモニターはあかん、モニターを1つだけにして。」と言われ、ケーブルを抜いたものの、"show me unplugged wire"の意味が分からず、5分くらい不毛な会話が繰りひろげられたのは良い思い出)
オンライン試験はテストセンターでの受験に比べ「監視されてる感」がやはり強く、肩に変な力が入ってあまり集中できませんでした。次は普通にテストセンターで受けたいですね。ただおかげさまで机周りはとてもきれいに片付きました笑。