はじめに
元々別で公開してたんですが、個人ブログの方が良いかなと思い書きます。あとモチベを上げたくて(切実)。
背景
前職がAWSのAPNだったんです。それでTierを上げるために資格取得者が必要だったので取りました。もちろん実務でもAWS触ってたのでもっとAWS詳しくなりたかったという背景もあります。取得したのももう1年前ですね。懐かしい。
取得した資格と勉強時期
- CLF
- SAA
証拠もあります。
CLFは2ヶ月の勉強、SAAは3ヶ月くらいの勉強しました。本業やプライベートとの両立がうまくできませんでした。ちなみにSAAを受験した時はAWS利用歴約3年が経ってました。
各試験の勉強方法
CLF
参考書
よかったところ
- AWSサービスの概要が丁寧に説明されている
- 各章の最後に練習問題があって知識の定着を確認しやすい
- 程よい内容の多さ(少なすぎず多すぎず)
Skill Builder
AWS認定資格 無料WEB問題集&徹底解説
ネットで公開されている問題集です。
SAA
参考書
実務
ありがたいことに自分は実務でAWSサービスを触る機会が多いです。実務での学びが非常に活きました。とはいえ実務で全AWSサービスを触れることはなく触れるタイミングも様々です。
実務経験は非常にアドバンテージがありますが、それだけでは不十分だと考えていました。この考えが次の勉強方法につながります。
実務外でサービスに触れる
「実務が活きる」という話しがありましたが、これだけでは不十分だと自分は考えていました。なぜなら「実務では初期構築は関われないことが多いから」です。
VPCやEC2(ECS), RDSの構築など一度構築してしまうと長い間運用保守の機会しかないものも少なくないです。なので個人AWSアカウントを触って実務でできなそうな部分や興味あるものは手を動かして体験していました。
例) 1. VPCでネットワークを構築 2. VPCの上でECSのコンテナ立ててインターネットで接続してみる 3. 個人アカウントIAMユーザーを作成 4. GitHub Actionsで特定ブランチにmergeされたら自動でECRにイメージをpushする仕組みを作ってみる 5. Amazon comprehendなど簡単に利用できるサービスを利用し簡易アプリを作ってみる(アプリはCLIでも良い) 6. etc...
触るモチベーションはどこから来てたの?というと「試験勉強のため」より「自分が何か作ってみたい」or「どうやって作ったのか気になる」という好奇心です。
各試験を受けての学び
CLF
各AWSサービスの概要を知れる
深い内容は問われない。しかし各サービスの概要と強み、ベストプラクティスが問われる。広く浅くが大事だと思う。自分が受けた時はEC2, S3, CloudFront, CloudWatchが多い感じがしました。また、サービス名と概要を知ってるだけで解ける知識問題もあるのでAWSサービスに興味を持って楽しみながら学習すると良いです。
責任共有モデルの理解大事
3問は出た記憶。AWSを扱うにあたり大事な項目なのでしっかり理解しておくことが大事です。実務でAWSを利用するときにも大事なので勉強しておいて損はないです。
SAA
とにかく幅広い知識が必要
「なにこれ知らない」が試験中にありました。特に機械学習系、データ分析系、大規模データ処理系、アカウント管理系、組織でのセキュリティ対策系はわからない部分が多かったです。
機械学習系や分析系は自分が趣味で使うにはオーバースペックです。また必ず使わなければいけないサービスでもないので実務で触れる機会がこれまでありませんでした。単純に触れてこなかったです。また、アカウント管理は大きな組織で複数のAWSアカウントを使っている状態や複数人でAWSコンソールを触る前提のものが多く、社内の専門部署など特別に権限が強い人しか考えないものです。本番ではこの辺りの問題が辛かったです。
正直全AWSサービスを理解するのは不可能な気がします。なので試験合格の文脈ですとできるところを確実に増やしていくのが良いです。アプリケーションエンジニアならECSやRDS、DynamoDB、SQS、Lambdaとかです。
余談ですが、試験を受けてみてAWSの機械学習サービス使ってみたいなと思いました。
AWSサービスの特性を知った上での課題解決力が必要
「サービス名とざっくり何ができるサービスなのか」がわかっててもあんまり意味がないです。S3を例に挙げるとバージョニング管理とか暗号化の種類、配信方法などが問題に出てくるので「このAWSサービス聞いたことあるなぁ」のレベルだと苦戦します。
また、「現状が〇〇です。ここから△△にするためには何が最適ですか」や「一番簡単に構築する方法はどれですか?」という問題多めです。細かいことを知っててもそれがその場の最適解であるか否かを判断できないといけません。サービスを知っているだけでなく問題文をきちんと読める読解力も求められます。暗記ゲームではないのできちんと問題文を読みましょう。
AWS Well-Architected
これ読んでおくと良いです。AWSサービスをこう使うといいよという答えみたいものが公開されてます。Well-Architectedじゃない状態からWell-Architectedへ変えていく問題もあったので知っておいて損はないです。
試験勉強など関係なくAWSを利用するものとして理解しておくと良いものだと自分は考えてます。
新規開発経験だけでなく運用保守経験も活かせる
1.Well-Architectedにするには 2.サービスが大人気になりユーザーが増えた 3.サービスが安定期になってきたので 4.システムのリプレース(リアーキテクチャ)をしたい
などさまざまなケース問題が出てきます。
「1からAWSサービスを使ってサービス開発をしたことがない...」という方、「初期開発をしたことがない...」という方、どちらの方が受験しても等しい難易度になっていると思いました。両方の経験がないと合格は厳しいというものではないと考えています。
自分がどれだけAWSサービスを理解してるのか、どれだけAWSサービスを使ってシステム開発する力があるのかを測る腕試しにちょうど良い気がします。
おわり
DVA取りたいんですよね。あとSAPも取りたい。しかし今は実務でAWSを使う機会が少ないし難易度も高いので困ってます。資格取るだけなら頑張ればできますが実務に繋げにくいのが痛いです。副業でAWS触れたらいいのにな(願望)。