素人のAWS認定ソリューションアーキテクト – アソシエイト試験


概要

社内でAWSの重要度が高まっているのと、純粋にAWSに興味があったため受験しました。
振り返りの意味を込めて、その時に役に立ったこと、ポイントなどを紹介します。
(※2020年10月時点の情報です。)
あくまで、「試験合格」に絞っています。AWSを使う技術とはまた別物という認識でお願いします。

勉強前の自分の状態

・インフラ経験は2年程(オンプレミス)
・AWSはまったく触ってこなかった
・情報技術者試験持ちの知識量

「インフラの知識あるなら楽勝でしょ?」
これは良く言われていますが、少なくとも私はそれほど役に立たなかった・・・(インフラといっても幅広いから個人の意見です)
1番楽勝なのは、常に触り続けていること。

試験対策の期間

2020/8/20 : 自社でAWSの重要度が高まっていると聞く。じゃあ受けるか、と軽く決める
2020/8/21~ : 全然勉強できなかった。(子供、通勤、モチベ、etc・・・)
2020/9/15 : そろそろヤバいと思いだす。通勤時間と夜の数分を勉強に割り当てる。
2020/10/3 : 模擬試験で60%代を叩きだす。恥ずかしさで死にたくなる。ちょっとだけ焦りながら勉強する。
2020/10/10 : 合格

総勉強時間 : 18時間位

試験対策と勉強法

1. 公式ドキュメントを読む

とりあえずガイドを読んでみる。

AWSドキュメント

なんか聞き覚えがあるようなサービス名があるな〜。すごい一杯あるし...覚えられるのかなこれ〜(心配)
結果、時間もないので主要なサービスを見返す時に活用する程度で終了。

すぐさま、こっちへ逃げました。

AWS クラウドサービス活用資料集トップ

こっちもいいけど、流石に時間が溶けるので程々に。

AWS ホワイトペーパーとガイド

2. 試験対策本の購入

徹底攻略 AWS認定 ソリューションアーキテクト – アソシエイト教科書

黒本ってやつですね。JavaSilver取得の時にお世話になりました。
しかしAWS試験はいわゆる「暗記問題」とも言い難いため、中身はサービスの紹介が主になっていました。
入門書としては最適かもしれません。
試験対策としては、ちょっと物足りなさを感じました。

3. AWSで実際に構築

文字を読んでも良く分からん!我は実際に手を動かして覚えるタイプよ!
って方も、それ以外もオススメ。
当たり前ですけどお金が掛かるので注意。(無料枠もあるけど直ぐ飛び出る)
必ずCloudWacthで課金アラームをセットしよう。
AWS の予想請求額をモニタリングする請求アラームの作成

自分はWebサービスを構築してみて、各種必要な設定などを確認しました。
やはり、自分で操作すると覚えが違いますね。

AWSにWEBアプリの最小構成環境を作る

とはいえ、試験範囲のサービスは膨大で、全てを自前で用意したりすると、結構なお金が掛かるので現実的ではないです。

4. WEB問題集でスキマ時間を活用

AWS WEB問題集で学習しよう

これに凄く助けられました。
通勤時間の合間に。休憩時間の合間に。
まとまった時間が中々とれない自分にとって、このお手軽さは魅力的でした。
むしろ合格するだけなら、これをひたすらやることをオススメします。

試験のポイント

問題の内容は、サービスのユースケース、もしくは要件に対するコストパフォーマンスを問うものが主となっていました。
つまりサービスをどれだけ触ってきたかがモロに出ます。
もちろん、冒頭でも書きましたが私もAWSはまったく触ってない素人から合格したので、どこがポイントが紹介します。

1. キーワードによる暗記

AWS試験は暗記ではないとは書きましたが、実際サービスに関連する「問題のキーワード」があります。それを覚えることによって、問題の難易度は大幅に下がります。
以下に幾つか列挙していきますので、ご参考にどうぞ。

Keyword Answer Comment
[ 大量の静的コンテンツ ] [ ユーザへの応答時間が長い ] S3をオリジンとしてCloudFrontディストリビューションを設定する。 SAA試験ではCloudFrontをめっちゃ使わせようとします。まぁ便利なんですけどね。
[ RDS ] [ 読み取りのレイテンシー ] リードレプリカを作成する。 RDSで読み取りときたら8割これ。
[ データベース ] [ 構造化データ ] [ 拡張性・可用性 ] Amazon Aurora 答えにMysqlとかPostgresqlとか入ってたら確実。AWS以外のサービスは幸福になれない。
[ セッションデータ ] [ 一貫性・可用性・耐久性 ] Amazon DynamoDB セッションデータだとDynamoDBが6割。時々ElasticCacheだったりする。
[ POSIX準拠 ] [ 共有ストレージ ] Amazon EFS POSIX準拠がきたら確定演出。
[ S3 ] [ 操作ミスによる削除防止] バージョニング有効化 MFA認証が付属する場合もある。

これらは一例ですが、複数の問題を解いていく内に自分の中で掴んでいくはずです。
しかし暗記だけだと辛いのも事実・・・。
そのため複数の活用例を理解し、自分の中で噛み砕く必要があります。

2. 頻出するパターン

AWSのサービスを組み合わせたものでも問題中で頻出するものがあります。(ほとんどが活用集に書いてあるもの)
それも3ケースのみですが紹介していこうと思います。

◇◇ ケース1 ◇◇
   VPCのセキュリティを設定して、バックエンドのDBインスタンスがインターネットからアクセスできないようにし、
   アプリケーション層からのみアクセスできるようにする。

データベースのネットワークセキュリティを設定する問題です。
具体的には以下のことが必要です。
1. DBインスタンスのプライベートサブネットを作成する。
2. セキュリティグループを設定してアプリケーションのセキュリティグループからのリクスエストのみ許可する。

プライベートサブネット、セキュリティグループ、ネットワークACLはセキュアな構成を作成する上で、必ずと言っていいほど出ます。

  • プライベートサブネット: インターネットゲートウェイを指定してないサブネット。
  • セキュリティグループ: インスタンス単位。ステートフルな制御。
  • ネットワークACL: サブネット単位。ステートレスな制御。
◇◇ ケース2 ◇◇
   単一のアベイラビリティゾーン(AZ)に2つのEC2インスタンスが実行されている。
   このアーキテクチャの可用性を高めたい。

可用性を高める問題です。
SAAには可用性を問うものが大多数を占めますが、そのなかでもAuto Scalingはかなり頻出するサービスです。
あと単一AZと出たら、複数AZに分散させるのが定石です。
またAuto Scalingで増えたインスタンスを負荷分散するためApplication Load Balancer(ALB)も併用します。

  1. 複数のAZで同一のインスタンスが起動するように構成されたAuto Scalingグループにインスタンスのターゲットグループを追加する。
  2. ALBをAuto Scalingグループのフロントに配置する。

この構成はかなりメジャーらしく、AWSも推してくる。
Auto ScalingはCloud Watchを使ったリソース閾値のトリガーや、スケジュールでのスケールアウトが可能。どの方式でAuto Scalingを設定できるかも覚えておきたい。

  • Auto Scaling: スケーリングプランの設定値によりEC2インスタンスのスケールアウトが可能。リージョン間でグループ設定出来ないので注意。
  • ALB: 標準的なロードバランシングの機能を持っていることに加え、設定したパスで振り分けることが可能。動的マッピング。こちらもリージョン間は不可能。
◇◇ ケース3 ◇◇
   インフラストラクチャの管理する運用オーバーヘッドなしで、マイクロサービスを実行でき、
   リクエスト数が急激に変化しても対応できるように、短時間でスケーリング可能なソリューションは?

書いてて思うのですが、凄い良いとこどりですね。
いわゆるサーバレスな構成を選びとる問題です。
最初はスケーリングって単語でAutoScalingとか選びがちです。

  1. API GateWayを配置し、背後でLamdbaを実行する。

サーバレスって良く分かっていなかったですが、AWSを通して理解できた気がします。

  • AWS Lamdba: サーバを起動することなくコード実行可能。可用性、スケーリングはLamdba自身で自動管理。実行した分だけ料金発生。
  • API GateWay: APIの管理を簡潔に行うサービス。Lamdba以外にもEC2インスタンスとも組合わせ可能。

上記を3ケースを紹介しましたが、これはAWSのほんの一部であり、試験ではもっと要件を長ったらしくしたものが出ます。
活用集や問題をこなし、組み合わせの引き出しを多くすることをオススメします。

最後に

試験は日本語で書かれていますが、翻訳が所々おかしいところがあります。
原文が表示できるので、適宜英語の方で読むと謎な日本語が解決するかもしれません。

AWSの試験を受ける理由は人それぞれかと思いますが、せっかく学んだ技術、個人でも仕事でも積極的に活用していきたいですよね。
そして試験合格で満足せず、継続的にAWSを学んでいくことが大事だと思います。
恐ろしいことにAWSの世界はこれからも広がっていくのでしょうから・・・。