AWS認定ソリューションアーキテクト-アソシエイトに合格した話

# ごあいさつ
新年明けましておめでとうございます。
毎年アドベントカレンダーを書いてましたが、書きそびれたので、個人的に投稿します。

<img width="400" alt="new_year_letter_man.pnh" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211139/7e888006-dd10-1f7e-c5b7-4d3fcfa782dc.png">

去年は[アドベントカレンダー](https://qiita.com/arata-honda/items/e22c9df83df8ee0e9c4c)を書き、とうとうぼっちマスを二年連続で挑み切りました。エンジニアの[本田](https://qiita.com/arata-honda)です！(一人でつくったローストビーフがなんかしょっぱかったです

10月までは[エキサイト](https://info.excite.co.jp/corp.html)で[人工知能レコメンドエンジンwisteria](https://www.excite.co.jp/guide/wisteria/)の運用保守や機械学習APIの開発などを担当していましたが、12月から[レコチョク株式会社](https://recochoku.jp/corporate/)でマイクロサービスのAPI開発を行っております！

今日は12/21に[AWS認定ソリューションアーキテクトアソシエイト](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)に合格したので、その話を書こうと思います。

# AWS認定とは
[公式](https://aws.amazon.com/jp/certification/?nav=tc&loc=3)から抜粋すると

>クラウドの専門知識を検証し、専門家が需要の高いスキルを強調し、組織が AWS を使用してクラウドイニシアチブにおける効果的で革新的なチームを構築するのに役立ちます。個人やチームが独自の目標を達成できるように、役割と専門分野ごとに設計したさまざまな認定試験から選択します。

となっております。
僕なりに一言でいうと、「AWSを用いた最適なサービス構築や運用、開発について等の知識を測る試験」だと解釈しています。

## ソリューションアーキテクト アソシエイト
アーキテクトとは「建設する者」という意味なので、「サービス開発を行う為に適切なAWSサービスの組み合わせであったり、運用面においての最適なAWSサービスソリューションを問う試験」になります。
ソリューションアーキテクトアソシエイトの位置付けは、[公式](https://aws.amazon.com/jp/certification/?nav=tc&loc=3)の図が非常にわかりやすく、

<img width="727" alt="スクリーンショット 2020-01-01 17.01.28.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211139/167b8a35-caf3-2f34-b251-994f9cf0dd6e.png">

実務経験によってランクが分けられていて、アソシエイトは1年間のAWSの実務経験がある人の知識量を測るものでした。

# 受けようと思ったきっかけ
エキサイトの先輩社員が受かってるのをみていいなぁって思ったのと、大学時代の友人が12月までにはアソシエイトとりたいから一緒に受けようよって誘ってくれたので、じゃあ受けてみようかなっていうのがきっかけでした。
友達三人と始めたのですが、一人は体調不良でまだ受けておらず、もう一人は僕と同じ日に受験してうかりました！
ちょうど9月でエキサイトでのAWS移行を終えたくらいだったので勉強期間は3ヵ月くらいですね。
友達と振り返ると少し長いスパンでマイルストーン引いてたなって感じです。
途中一ヶ月はエキサイトやめて有給休暇消化中に実家にかえってすごいモチベーション低かったです笑

# 筆者のAWSスキル

エキサイトでの最後の仕事がオンプレに乗っているサービスの[AWS移行](https://www.slideshare.net/aratahonda1/2aws)でした。
(同期が書いたブログあげときます。https://blog.excite.co.jp/exdev/30862809/)
なので、

- EC2を使ってサーバーを立てる
- DirectConnectをつかってオンプレとAWSのネットワーク疎通をして移行作業を行う
- CassandraをDynamoDBに移行
- ↑のバージョンが古すぎてDataPipelineをつかってデータ移行
- CloudWatchをつかって死活監視
- AWS BatchやLambdaをつかってS3にデータを入れる

などなどです。移行のノウハウはある程度ありましたが運用のノウハウはまだまだなのと、業務でつかうサービスは偏っていました。また移行作業を4.5ヶ月ほどしていたので、クラウドプラクティショナーの経験月にも達してないです苦笑


# やったこと

だいたい下記の項目を三か月ゆっくりやってた感じです。

- ハンズオンを三回(DevDayのCI/CDのハンズオン、スケーラブルハンズオン、サーバレスハンズオン)：9月~10月中旬まで飛び飛びでやってました
- 「この１冊で合格！AWS認定ソリューションアーキテクト - アソシエイト テキスト&問題集」(黄色い本)のざく読み + 最後に載っている模試を解く(普通に半分も正解しなかったです): 11月中
- [udemyの動画講座](https://www.udemy.com/share/101WKkCUYceFlWQXw=/)を一通り通す。: 11月中
- [udemyの非公式模試](https://www.udemy.com/share/101rfMCUYceFlWQXw=/)を二周(一週目は1回しか合格になってなかったです)：12月初旬から試験前日まで
- 公式模試を解く(64%で受からず)：12月中旬
- [公式100本ノック](https://learn-aws.cafe/certified-solutions-architect-associate-b25fda6e645e15797240fafc5ce4ca6d/)をやる：12月初旬から試験当日まで
- 何回も非公式模試で間違えたサービス(RedshiftやKinesis、S3等)の[ブラックベルト](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/)をザク読み: ↑模試を受けながらずっと
- スプレッドシートにわからないところをまとめておく↓: 10月中旬からずっと

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211139/051e6b38-9aa2-aece-36bb-4505d5c60071.png)


# 苦労したこと

- サービスが広いので、深掘りに時間がかかる
- 移行では使わなかったサービスが全然わからん(EFS, ストレージゲートウェイ, EMR, X-Rayなど)
- サービスの詳細を深ぼられると弱い(S3のStandard-IA, Onezone-IAの使い分けや、ストレージゲートウェイの保管, キャッシュ型など)
- ネットワーク周りの計算(ipの利用可能範囲の計算等)やDNSまわりはかなり苦手意識あったので勉強は苦労しました
- やってもやっても今自分がどれくらいまでわかってるのかを把握できないからもがいてる感がすごく苦しい

## 行ったアクション

- 黄色い本を辞書代わりにして間違ったところを集中的に読みなおす。
- ひたすら非公式模試の解説と友達と答え合わせする
  - 例: この問題はこういう理由でこの選択肢を選んだけど、解答は違うかった。今回の問題だとコスト最適化を考えるとこの料金体系の方が安いからこの解答になるなど
- スプレッドシートにまとめて読み返すのを繰り返す。

# すごい苦手だった分野
苦労したことと少し被りますが、具体的な分野を上げていきます。
わかりみが深い方はいいねください笑

- 環境構築系(CloudFormation, OpsWork, Elastic Beanstalk等): ansibleしか書いてたことないから勉強していてすごく使い分けがややこしくてハンズオンも気軽にできない感じなので苦手意識ありました。
- セキュリティ系: 移行していてセキュリティグループとかは触ったことありましたが、ACLは全く触ったことがなかったので、どっちをどう使えばいいか全くわからなかったです。[公式](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide//VPC_Security.html#VPC_Security_Comparison)みても結構ぱっとしないこともありました
- 数字系やデフォルト: もはやサービスでもなんでもないんですが、例えば「S3の耐久性はイレブンナイン」とかだったらわかりやすいんですが、auroraの可用性は99.99%など、似たような数字列や、auroraだけはリードレプリカ最大15個つかえるなどの特殊ケースを覚えるのが本当にしんどかったです笑。こればっかりはハンズオンでも意識しないので覚えるしかないです。(SQSのFIFOは標準キューの実行回数が一回限りとかも)
- 横文字: 意外と本を読んでると、見慣れない横文字多くて内容理解に辛かったです。エッジロケーションとか

# やってよかったと思うこと

- 試験日を集まった最初に決めたこと: マイルストーンがすごく引きやすかったのと逆引きして「何をいつまでにやっておけばいいか」が明確になりました(諸事情で一週間ほど伸びましたが汗
- 試験二週間前に試験予約したこと: もう後に引けないという状況をつくることで気持ちを奮い立たせました。受験料16000円の損失は大変なので苦笑
- Slackでにゃーんを垂れ流す: 非公式模試5回やって1回しか受かってなかったのでもうダメかねって感じでしたが、友達のおかげで心折れずになんとか保てました。
- ハンズオンで実際にさわる: 画面のUIが結構変わっていくのですが、「あの画面ではこれ設定したな」っていうのを頭の隅に置いておくと結構幸せになります。幸せにならなくてもこのサービスはこの設定できないとかも結構重要で覚えられないので触ることでイメージできるようになります。あと問題の状況イメージはすごくしやすくなりました。特にサーバレスやECS周りは。
- 公式模試を解いたこと: かなり重要だと思います。2000円をはらって25問(本番は65問)受けるのですが、本番の問題レベルに限りなく近い問題が出てたと思います。
- 非公式模試を二周やること: これも自分にとってはうかった要因の大きな一つだと思います。二周目は答えを覚えちゃうのですが、ぶつぶつ理由を言いながら選択肢を削っていくことをすることで理解を深めることができました
- [公式100本ノック](https://learn-aws.cafe/certified-solutions-architect-associate-b25fda6e645e15797240fafc5ce4ca6d/)をやったこと: だいぶいい問題だしてくれて解説もとてもよかったです。さすが公式って感じでした。まだ50問前後の数ですが一日一問くらいは増えていってるのでこれから受けようと思ってる方はチェックしてもいいと思います。


# 試験を受ける過程で自分にとってよかったこと

- いろんなサービスについて勉強するきっかけになるので最近行われた[re:Invent](http://reinvent.awseventsjapan.com/)なんかのアップデート情報がすごいわかるようになってきました。
- 新しくシステム設計するときに、AWSのサービスでの組み合わせの引き出しが広がりました。(使ったことはないけどここはkinesisを使うのもありだなぁ等)
- 新しく配属された時のアーキテクチャの構成の理解がスムーズになりました。(CloudFrontつかってるんだーとか)

# 反省点 

- 期間がながすぎた：途中で少しだれました。もう一か月早くてもよかったです。結局締め切り駆動になるので笑
- 読み物が多くて手を動かすのが少なかった

試験で合格することはあくまで通過点なので、実務に生かせるようにこれから触っていきます！


# 感想

- 基本情報技術者試験とかも昔落ちた切りでとらなかったので、初資格で素直にうれしいです
- AWSの情報のアンテナがひろがったので成長した感じはします
- 試験前は相変わらず眠りが浅く疲れました

# 最後に
会社に必須では求められてない資格を取るときは、モチベーションの維持が本当に大変だと思います(僕も途中でモチベーション下がりました)。ですが一緒に戦ってくれた友人と「受かったら美味しいお肉を食べよう」とか話して自分にご褒美を与えることでモチベーションが保てました。あとは友人が受かって自分が受からなかったときを想像した緊張感も大事かもしれません(暗黒微笑