kakakakakku blog

Weekly Tech Blog: Keep on Learning!

「AWS 認定ソリューションアーキテクト – アソシエイト」に合格した勉強法7選

今日「AWS 認定ソリューションアーキテクト – アソシエイト」試験を受けて無事合格した!業務経験なしのサービスも含めて約2週間頑張って勉強したから達成感がある.まさに「ソリューションアーキテクト」と言える実践的なクラウド設計を学べたし,約4ヶ月間業務で AWS の運用も兼任しているから,現状のスキルレベルを確認することもできて良かった.毎日書き続けていた個人的な勉強法とメモを公開しようと思う.

f:id:kakku22:20160807233324p:plain

AWS 認定とは?

種類

全5種類ある.

  • AWS 認定ソリューションアーキテクト – アソシエイト
  • AWS 認定 SysOps アドミニストレーター – アソシエイト
  • AWS 認定デベロッパー – アソシエイト
  • AWS 認定ソリューションアーキテクト – プロフェッショナル
  • AWS 認定 DevOps エンジニア – プロフェッショナル

aws.amazon.com

再認定

AWS 認定は2年ごとに再認定が必要になる.認定取得者側からすると面倒に感じるけど,日々進化している AWS を継続的に学んで,スキルの鮮度を証明できると考えると,再認定を受けるメリットは大きいと思う.

aws.amazon.com

試験要項

今回受験した「AWS 認定ソリューションアーキテクト – アソシエイト」の試験要項を簡単にまとめておく.詳細は試験ガイドを参照.

  • 試験時間 : 80分間
  • 問題数 : 60問(見直し時間を約20分間残す前提で考えると,1分1問のペースで回答していく必要がある)
  • 合格ライン : 66%(最低40問正解する必要がある)

分野ごとの出題数は以下となっている.

分野 出題割合 出題数
1.0 高可用性、コスト効率、対障害性、スケーラブルなシステムの設計 60% 36問
2.0 実装/デプロイ 10% 6問
3.0 データセキュリティ 20% 12問
4.0 トラブルシューティング 10% 6問

aws.amazon.com

勉強法7選

1. 公式サンプル問題

スキルレベルのベースラインを把握するために AWS から公開されている公式サンプル問題を解いてみた.結果は「4/8 問正解」で「50%」だった.業務経験があるサービスに関しては答えられるけど,RDS / CloudFront などは業務経験が無く答えられなかった.セキュリティ関連の問題も間違えた.100% を目指すだけではなくすべての選択肢を理解できるようにしておく.

2. 模擬試験

2160円で模擬試験(ウェブ上)を受けられる.本試験の縮小版という感じで20問出題されるから絶対に受けておくべき.ただし,合否と分野別の正解率しか開示されないため,本試験の少し前に受けておくと良いと思う.ちなみに僕は勉強を開始して数日後(早すぎた...!)に受けて「12/20問正解」で「60%(不合格)」だった.予想以上に詳細な知識が問われることを知って,焦って勉強した.他の記事を読んでいたら複数回模擬試験を受けている人もいるようだった.

3. AWS Black Belt

基本的に公開されている Black Belt の資料をベースにする戦略で勉強をした.試験要項には「ホワイトペーパー」を読めと書いてあるけど,ホワイトペーパーは量も多く,効率的に読み進められなかったため,重要な要点がまとまっている Black Belt の資料を読んで,さらに詳細を調べるときに「ホワイトペーパー」と「公式ドキュメント」をリファレンスとして使った.Black Belt の資料を読んだメモを残しておく.

aws.amazon.com

VPC

別の記事にまとめた.

kakakakakku.hatenablog.com

www.slideshare.net

Auto Scaling

  • スポットインスタンス
    • スポットインスタンスのリクエストには「ワンタイム」と「永続」がある
    • スポットインスタンスの場合「1時間未満」でターミネートされた範囲は非課金になる
    • 「スポット入札アドバイザー」で価格変動のリスクを把握できる(High / Medium / Low)
    • 「スポットフリート」を使うと低コスト & 比較的安定してスポットインスタンスを確保できるようになる
    • 「スポットブロック」を指定してリクエストすると「1-6 時間の範囲内」で継続期間を指定できる
  • Auto Scaling
    • 「ターミネーションポリシー」には「OldestInstance」「NewestInstance」「OldestLaunchConfiguration」「ClosestToNextInstanceHour」がある
    • 特に「ClosestToNextInstanceHour」は次の課金時間を考慮してくれるためコスト削減に有効

www.slideshare.net

EBS

  • EBS スナップショットは S3 に保存されている
    • 2世代目以降は増分データを保存する(1世代目を消しても全データを復元可能)
  • インスタンスタイプによって揮発性のあるインスタンスストアも利用できる
    • アプリケーションの一時データなどを置くユースケースが考えられる

www.slideshare.net

RDS

  • RDS or Database on EC2 のトレードオフ
    • 運用自動化 or カスタマイズの比較とほぼ同じ
    • RDS 非対応のミドルウェア & バージョンを採用するなら EC2
    • OS レベルのチューニングまで必要なら EC2
    • バックアップやレプリケーションなどの運用を重視するなら RDS
  • Multi-AZ
    • 対障害性
    • 同期レプリケーション + 自動フェイルオーバー(アプリケーションから参照するエンドポイントは同じ)
  • リードレプリカ
    • デフォルトだと最大5台まで(ソフトリミット)
    • マスターと異なるインスタンスタイプを選択できる
  • プロビジョンド IOPS
    • MySQL だと最大 30000 IOPS まで保証される
  • スナップショット
    • 自動で1日1回取得される
    • リストアには「スナップショットリストア」と「Point-In-Time-Recovery」がある
    • スナップショットを使って別リージョンでインスタンスを起動できる

www.slideshare.net

S3

  • ストレージクラス
    • スタンダード
    • 標準低頻度アクセスストレージ
    • 低冗長化ストレージ
    • アーカイブ (Glacier)
  • 結果整合性
  • アクセス制御
    • ユーザーポリシー
    • バケットポリシー
    • ACL
  • 暗号化
    • サーバサイド暗号化
    • クライアントサイド暗号化
  • 署名付き URL
  • バージョニング

www.slideshare.net

CloudFront

  • エッジで Gzip 圧縮をできる(S3 は Gzip 配信がサポートされていないため有効)
  • S3 などのオリジンにコンテンツが存在しなかった場合にカスタムエラーページを返せる
  • Restricted Viewer Access を有効にすると「署名付き URL or Cookie」経由でないとコンテンツを返せないようにできる
    • オリジンが S3 の場合は Origin Access Identity (OAI) を使う
      • エッジでヘッダーを付与して CloudFront 経由からのアクセスだけをオリジンに通す

www.slideshare.net

IAM

  • 「IAM ユーザー」単位に発行できるアクセスキーは最大2個
    • 3個目を発行しようとすると "Cannot exceed quota for AccessKeysPerUser: 2" とエラーになる
  • 「IAM ポリシー」には「管理ポリシー」と「インラインポリシー」がある
    • 「管理ポリシー」は一般的なユースケースで採用できるように AWS 側で公開している
  • 「ポリシー変数」を使うと「aws:SourceIp」や「aws:UserAgent」など柔軟に IAM ポリシーを設定できる
  • 「IAM ロール」は AWS サービスなどのエンティティに対して AWS の操作権限を委任する仕組み
    • 「IAM ユーザー」や「IAM グループ」には紐付かない
    • 例えば EC2 の起動時に「IAM ロール」を設定すると aws configure をせずに AWS サービスにアクセスできる(ポリシー次第)
    • メタデータから取得することもできる

www.slideshare.net

DDoS

  • 「責任共有モデル」を前提とする
  • DDoS 緩和
    • 攻撃対象領域を削減する
      • VPC / セキュリティグループ / ネットワーク ACL などを活用する
    • スケールして攻撃を吸収できるようにする
      • ELB / Auto Scaling / CloudFront / Route 53 などを活用する
    • 公開されたリソースを保護する
      • CloudFront / Route 53 / アプリケーションファイアウォール
    • 通常時の動作について学習する
      • CloudWatch で通常時のメトリクスを可視化しておく
    • 攻撃に対する計画を作成する
      • 攻撃を受ける前に計画を立てる

www.slideshare.net

セキュリティ

  • 共有責任モデル
    • AWS : クラウドセキュリティを担当する (Security "of" the Cloud)
    • お客様 : アプリケーションセキュリティをコントロールする (Security "in" the Cloud)
  • クラウドセキュリティ
    • データセンターの物理的なセキュリティ
    • ネットワークのセキュリティ
      • DDoS 対策やポートスキャン対策など
    • ストレージの廃棄
      • DoD 5220.22-M(米国国防総省準拠規格)でデータを確実に削除する
      • もしくは物理的に破壊する
  • アプリケーションセキュリティ
    • IAM
    • Amazon Inspector
    • KMS
    • CloudTrail
    • Trusted Advisor
    • ネットワークセキュリティ
      • VPC / ネットワーク ACL / セキュリティグループ

www.slideshare.net

4. ホワイトペーパー

ホワイトペーパー | AWS も一部読んだ.

  • アマゾン ウェブ サービスの概要(日本語)
  • セキュリティプロセスの概要(日本語)
  • DDos に対する AWS のベストプラクティス(日本語)

5. ドキュメントなど

全般

  • デフォルトのリージョンは us-east-1

docs.aws.amazon.com

AWS Storage Gateway

  • 種類
    • ゲートウェイキャッシュ型ボリューム
    • ゲートウェイ保管型ボリューム
    • 仮想テープライブラリ
  • オンプレのデータバックアップなどの用途で使える

www.youtube.com

Route53

  • エイリアスレコードを使って ELB にルーティングできる
  • Zone Apex に割り当てる場合もエイリアスレコードを使う

docs.aws.amazon.com

docs.aws.amazon.com

メタデータ

  • EC2 の場合 http://169.254.169.254/latest/meta-data/ にアクセスするとメタデータを取得できる
    • パブリック IP とプライベート IP を取得する場合
      • http://169.254.169.254/latest/meta-data/public-ipv4http://169.254.169.254/latest/meta-data/local-ipv4 で取得できる

docs.aws.amazon.com

プレイスメントグループ

  • 同一の AZ 内に複数の EC2 を論理的に配置できる
  • プレイスメントグループ内は 10Gbps ネットワークに所属する
  • 大規模グリッドなどで使う

docs.aws.amazon.com

侵入テスト(ペネトレーションテスト)

  • セキュリティ監査のために侵入テスト(ペネトレーションテスト)と脆弱性スキャンを実施する場合,事前に AWS に許可を取る
    • AWS 側で善意と悪意を判断できないため
    • 対象は EC2 と RDS に限定される
    • ただし特定のインスタンスタイプはクラウド側でハードを共有しているため,他アカウントに影響を及ぼさないように対象外となっている
      • EC2(t1.microm1.small)は対象外
      • RDS(microsmall)は対象外

aws.amazon.com

6. 本

ザッと3冊読んだ.実際に試す必要がある場面もあって,個人用 AWS アカウントでインスタンスを立てたりした.

Amazon Web Services実践入門 (WEB+DB PRESS plus)

Amazon Web Services実践入門 (WEB+DB PRESS plus)

Amazon Web Services パターン別構築・運用ガイド 一番大切な知識と技術が身につく

Amazon Web Services パターン別構築・運用ガイド 一番大切な知識と技術が身につく

Amazon Web Services クラウドデザインパターン 設計ガイド

Amazon Web Services クラウドデザインパターン 設計ガイド

「AWS 実践入門」に関しては別の記事に書評をまとめた.

kakakakakku.hatenablog.com

7. 非公式問題集

非公式で実際に出題される信憑性はないけど,無料の会員登録をすると計39問解くことができるので,やっておいて損はないかなと思う.

参考

非公式な情報ではあるけど,海外の記事で以下に関係する問題は出題されないと書かれていた.関連サービスは主な機能を把握しておけば良いということだと勝手に解釈した.

  1. The AWS Command Line Interface (CLI)
  2. Mobile Services (except Amazon SNS)
  3. Enterprise Applications
  4. Lambda and CodeDeploy
  5. CloudFormation Templates

cloudacademy.com

まとめ

「AWS 認定」は丸暗記したら合格する系の試験ではなくて,実践的なクラウド設計に対する知識が求められる試験で,個人的には凄く難易度が高かったけど,試験中はワクワクしながら問題を解いていた.勉強法としては Black Belt をベースにする戦略を選んで正解だったと思う.同時に個人用 AWS アカウントでインスタンスを立てたりして,一通りの設定をしてみたのも効果的だった.まだアソシエイトレベルの AWS 認定が2個残ってるので,次の目標は「デベロッパー」or「SysOps アドミニストレーター」かなと思っている.

え!対策本!まじで!

8/13(今週土曜日)に AWS 認定の対策本が出版されるのを知った!内容次第だとは思うけど,今まで AWS 認定には対策本が無くて勉強法に苦労する傾向があったので,今後受ける人には相当なメリットになるのではないかと思う.章末問題は気になるなー.1週間早く出版されてたら 100% 買ってた!

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

【8/22 追記】さっそく読んだ!

kakakakakku.hatenablog.com

関連記事

blog.serverworks.co.jp

yomon.hatenablog.com

blog.manabusakai.com