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

6 min読了の目安(約5900字IDEAアイデア記事
Likes11

概要


社内で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インスタンスがインターネットからアクセスできないようにし、
   アプリケーション層からのみアクセスできるようにする。

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

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

プライベートサブネット: インターネットゲートウェイを指定してないサブネット。
セキュリティグループ: インスタンス単位。ステートフルな制御。
ネットワークACL: サブネット単位。ステートレスな制御。

◇◇ ケース2 ◇◇
単一のアベイラビリティゾーン(AZ)に2つのEC2インスタンスが実行されている。
このアーキテクチャの可用性を高めたい。

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

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

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

Auto Scaling: スケーリングプランの設定値によりEC2インスタンスのスケールアウトが可能。リージョン間でグループ設定出来ないので注意。
ALB: 標準的なロードバランシングの機能を持っていることに加え、設定したパスで振り分けることが可能。動的マッピング。こちらもリージョン間は不可能。

◇◇ ケース3 ◇◇
インフラストラクチャの管理する運用オーバーヘッドなしで、マイクロサービスを実行でき、
リクエスト数が急激に変化しても対応できるように、短時間でスケーリング可能なソリューションは?

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

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

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

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

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

最後に


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

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