AWS 認定ソリューションアーキテクト – アソシエイト(SAA)合格のために勉強したこと

   2018/04/24

まわりの人が次々と「AWS 認定ソリューションアーキテクト – アソシエイト」取得をしておりプレッシャーをかけられております。

自分も負けじと勉強しており、模擬試験で85%の正答率でした。

追記:本試験も受験し、77%で合格しました!

これから本試験に挑むわけですが、試験前に勉強したことをざざっと整理してアウトプットしておこうと思います。

Contents

勉強の方法

勉強したことは主に3つです。

  • 実際に触ってみる
  • 参考書を読む
  • 模擬試験を受ける

実際に触ってみる

理解度をあげるために、実際にAWSを触れる環境を作りましょう。

AWSを使って実際にためしたことは次の内容です。

  • IAMユーザやロールの作成
  • VPC内にパブリックサブネットとプライベートサブネット環境の作成
  • プライベートサブネット環境からインターネットへの接続確認
  • WEB+RDS構成へWordPressのインストールと利用
  • S3の静的ホスティング
  • オートスケールの設定

「AWS 〇〇〇」で検索するとdocs.aws.amazon.comドメインの公式ドキュメントが出てくるので、それを見ながら設定していきました。

参考書を読む

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

合格対策 AWS 認定ソリューションアーキテクト – アソシエイト」を繰り返し勉強しました。

簡潔に情報がまとめられており、章末に問題もあるので知識の整理と理解度を確認するのに役立ちます。

試験の全範囲が網羅されているわけではないですが、7,8割くらいは網羅できるのではないでしょうか。

自分の場合は、kildle版を購入し通勤時の電車で読んでいました。

AWS クラウドサービス活用資料集(Black Belt)

AWS クラウドサービス活用資料集にあるSlideShareの気になる資料をみました。

こちらも通勤時間を有効活用です。

模擬試験を受ける

20問の模擬試験を2,000円で受けることができます。

問題が英語の翻訳となっているためか、問題にクセがあります。早めにそのクセを体験しておきましょう。

問題の傾向もわかるので、その後の勉強もしやすくなります。

勉強の方向性としては、次のパターンを意識していくとよいと思いました。

  • 〇〇とは?
  • 〇〇の要件を満たすための構成は?

勉強内容整理

7つのベストプラクティス

  1. 故障に備えた設計で障害を回避
  2. コンポーネント間を疎結合で柔軟に
  3. 伸縮自在性を実装
  4. すべての層でセキュリティを強化
  5. 制約を恐れない
  6. 処理の並列性を考慮
  7. 様々なストレージの選択肢を活用

リージョンとAZ(アベイラビリティゾーン)

リージョンとは

  • リージョンには複数のAZがある
  • AZは地理的、電源的に独立
  • AZ間は専用線で接続(低レイテンシー)
  • リージョンとAZ以外にエッジロケーションがある

ポイント

  • サーバやデータをAZ間に冗長に配置する
  • サービスには、グローバルサービス、リージョンサービス、AZサービスがある
  • 単一AZにプレイスメントグループを作成すると、そのグループ内のネットワーク接続を高速化することが可能

グローバルサービス

代表的なサービス

  • IAM
  • Route53
  • CloudFront

リージョンサービス

ポイント

  • グローバルIPで接続可能
  • IAMポリシーで制御

代表的なサービス

  • S3
  • DynamoDB
  • SQS
  • CloudFront

AZサービス

ポイント

  • プライベートIPで接続可能
  • セキュリティグループで制御

代表的なサービス

  • EC2
  • RDS
  • ELB
  • ElastiCache

責任分担セキュリティモデル

ポイント

  • rootユーザではなくIAMユーザを利用する
  • 認証基盤とIAMを連携するIDフェデレーション

インフラストラクチャサービス

  • EC2など
  • ハードウェア部分までAWSが管理
  • データ・通信の暗号化からは利用者の責任範囲

コンテナサービス

  • RDSなど
  • ハードウェア部分からOSやミドルウェア部分までAWSが管理
  • ファイアウォールや暗号化は利用者の責任

アブストラクトサービス

  • S3やDynamoDBなど
  • ハードウェア部分からソフトウェア部分までAWSが管理
  • クライアントサイド暗号化からは利用者の責任

IAM

  • IAMユーザとIAMグループを作成
  • IAMポリシーを割り当てる
  • 権限は必要最低限のもの
  • APIはアクセスキー、シークレットキーを利用する
  • EC2にはIAMロールを割り当てよう

VPC

作成手順

  1. VPCを作成する
  2. サブネットを作成する
  3. インターネットゲートウェイ(IGW)を作成する
  4. ルートテーブルを設定する

その他

  • VPCピア接続をすることで、2つのVPCを接続可能
  • ターゲットにPCXを指定する

サブネット

  • サーバの役割に応じて作成する
  • 1つのAZに指定が可能
  • 同じ役割のサブネットを複数のAZに作成する
  • パブリックサブネットとは、ルートテーブルでデフォルトゲートウェイがIGWに設定されているもの
  • 同一VPC内であれば、サブネット間の通信が可能

セキュリティグループ

  • EC2、ELB、RDSなどインスタンスごとのFW
  • INとOUTのアクセス制御が可能
  • デフォルトでは、INは拒否(DENY)、OUTは許可(ANY)
  • ステートフル
  • 設定変更の反映はリアルタイムで行われる

ネットワークACL

  • サブネットごとのFW
  • INとOUTのアクセス制御が可能
  • デフォルトでは、INとOUTともに許可(ANY)
  • ステートレス

EC2

ポイント

  • AZサービス
  • 作成時に実行したい処理はユーザデータを利用する
  • インスタンスID、ホスト名、IPアドレスなどの取得はメタデータを利用する
  • EBSは不揮発性
  • インスタンスストア(物理ホストの内部ストレージ)は揮発性

課金タイプ

  • オンデマンドは従量課金
  • リザーブドは長期利用契約
  • スポットは入札形式

EBS Backed インスタンス

ポイント

  • ルートボリュームがEBS上にある
  • EBS最適化インスタンスはEBS IO専用の帯域を確保する

可能な操作

  • 起動
  • 停止
  • 再起動
  • 削除

選択可能なストレージ

  • General purpose SSD
  • Provisioned IOPS SSD
  • Magnetic

インスタンスストア Backed インスタンス

ポイント

  • ルートボリュームがEインスタンスストア上にある

可能な操作

  • 再起動
  • 削除

EBSスナップショット

  • 任意のタイミングで取得可能
  • リージョンサービスのS3へバックアップ
  • 圧縮し、差分を保存する
  • 整合性を保つため、IOを停止させたほうがよい
  • スナップショット取得開始後はIOを再開してOK
  • 異なるAZやEBSタイプのディスクサイズで復元が可能
  • EBSボリュームはAZサービス

S3

ポイント

  • リージョンサービス
  • リージョン内の3か所のDCへ複製される
  • 99.999999999%の耐久性
  • 書き込みは、書き込み後の読み取り整合性
  • 上書きは、結果整合性
  • 削除は、結果整合性
  • WEBサイトホスティング機能がある
  • ライフサイクル機能で、Glacierへアーカイブ可能

種類

  • スタンダード
  • 低冗長化

セキュリティ

  • 他のAWSアカウントの読み書き許可は、アクセスコントロールリスト
  • 自アカウントのIAMユーザやグループ、他アカウントのユーザの制御は、バケットポリシー
  • IAMポリシー
  • 署名付きURL
  • 暗号化やアクセスログ取得は任意で実施
  • バージョンニング機能を利用

RDS

ポイント

  • AZサービス
  • 自動バックアップ
  • パッチ適用
  • ストレージ選択が可能

マルチAZの仕様

  • MySQLは、同期物理レプリケーション
  • SQLServerは、同期論理レプリケーション
  • Auroraは、クラスタボリューム

DynamoDB

  • NoSQLデータベース
  • リージョンサービス
  • IAMポリシーで制御
  • アブストラクトサービス
  • 結果整合性
  • レコードサイズは最大400KB
  • プライベートサブネットからのアクセスは、NATインスタンスが必要
  • 自動拡張と高いIO性能

ElastiCache

  • インメモリキャッシュ
  • AZサービス
  • セキュリティグループで制御
  • Memcahchedはマルチノードのキャッシュクラスタ
  • Redisはマスタスレーブ

CloudWatch

  • データは2週間保持
  • デフォルトメトリクスはハイパーバイザが取得可能なもの
  • カスタムメトリクスはエージェントが取得(メモリはこっち)
  • 取得間隔は1分または5分
  • 検知時にAlarmの設定が可能
  • Alarm時のアクションの設定が可能
  • メール通知はSNSを利用

ELB

  • 複数のAZにあたがって分散が可能
  • 実態はサブネット内に作成される
  • ヘルスチェックを実施し、自動で切り離しを行う
  • ELB自体がオートスケールする
  • SSLアクセラレータが利用可能
  • ConnectionDrainingで安全に伸縮が可能
  • アクセスログはS3に保存が可能
  • Cookieを使ったStickySessionが可能
  • ただし密結合のアンチパターンなので、DynamoDBやElastiCacheを利用したほうがいい

AutoScaling

ポイント

  • 起動設定でインスタンスを定義
  • AutoScalingGroupで起動場所や最小最大の規模を定義
  • AutoScalingポリシーで、いつ、何だい増減させるかを定義
  • AutoScalingGroupが複数AZになると、AZ間で数を均等にしようとする

利用パターン

  1. 負荷にもとづいた利用
  2. スケジュールにもとづいた利用
  3. 台数を維持するために利用

SQS

ポイント

  • リージョンサービス
  • 可視性タイムアウト
  • サイズは最大256KB

キューイングタイプ

  1. Pull型(アプリからポーリングが必要)
  2. 順序保証なし
  3. 最低1回配信保証

Route53

ポイント

  • グローバルサービス
  • 4か所のエッジロケーションに分散配置される
  • SLAは100%
  • 料金はホストゾーン数とクエリ回数の従量課金
  • ZoneApexにCNAMEが使えるALIASレコード

振り分け方

  1. 加重ランドロビン
  2. レイテンシーベースルーティング
  3. 位置情報ルーティング
  4. ヘルスチェックとフェイルオーバー

CloudFront

  • グローバルサービス
  • 静的コンテンツのレイテンシを小さくする
  • アクセス回数とデータ転送量の従量課金
  • オリジンは、S3、EC2、ELB、オンプレ上のサーバなど指定が可能
  • 複数のオリジンの指定が可能
  • 物理的に最も近いIPが返却
  • SSL証明書の利用が可能
  • 署名付きURLの利用が可能
  • S3と組み合わせるときは、S3のバケットポリシーで、CloudFrontのみアクセスを制限(OAI)

CloudFormartion

  • AWSリソースの構築管理を効率化
  • テンプレートはjsonやYAMLを利用
  • 作成されたものをスタックと呼ぶ
  • インフラをコード化してバージョン管理が可能
  • CloudFormerで簡易にテンプレート作成
  • マッピングテーブルでリージョンの違いを吸収
  • エラー時はすべてロールバックされる
  • 作成順序の明示はDependsOn

OpsWork

  • AWS上のAPサーバの構成管理ツール
  • ELBやEC2作成後Chefを実行する
  • CloudFormationから呼び出し可能

BeansTalk

  • アプリエーションデプロイツール
  • 開発者向け
  • EC2、ELB、AutoScaling、S3、RDSなど作成が可能
  • バージョン管理が可能
  • CloudFormationから呼び出し可能

オンデマンドインスタンス

  • デフォルトの課金形式
  • 1時間単位で支払い
  • リージョンとインスタンスタイプ、OSで値段決定
  • 開発検証、AutoScaling用サーバに向いている
  • つまり、常時稼働しないサーバに適している

リザーブドインスタンス(RI)

  • 1年契約、3年契約から選択可能
  • 全額前払い、一部前払い、前払いなしから選択可能
  • キャパシティ予約にもなる
  • 稼働率が70%くらいあればこちらがお得
  • 常時稼働するサーバに

スポットインスタンス

  • 入札形式
  • AZとインスタンスタイプ、OSで値段決定
  • 入札価格が下回ると途中でTerminateされることがある
  • Terminateの2分前にメタデータに通知
  • Terminateのラスト1時間の費用はかからない
  • 残したいデータは、定期的に拭き初ストレージに移動する

本試験

本試験を受けて77%で無事合格しました。

専用のテストルームで、模擬試験と一緒のテスト形式で行います。

本試験独自のものとしては、最初に写真を撮られ免許証とクレジットカードで受験者の認証がされることです。試験官はリモートでWEBカメラで見ているらしく、チャットで質問できます。わたしの場合は日本語で対応してくれました。

問題はというと難しかったです。ただの丸暗記ではなく、きちんと内容を理解していないと解けない問題が多かったように感じます。

また、AWS的なベストプラクティスを覚えておけばよいわけではなく、要件に対応する最も良い方法や選択肢の中から適した方法を問う問題も多かったのが印象に残りました。

試験結果はその場でわかり、合格率は別途メールにて通知されます。

追加で勉強しておいたほうがよさそうなことを追記しておきます。

実際に触ってみる

動かすときは、漠然と動かしてみるのではなく「こうしたい場合はどういう設定をしたらいいの」という視点を持っているとよいと思います。

というのも、試験では「動かすためには何が必要?」以外にも、「こういう条件で動かしたいがどの設定が必要?」という切り口の問題が多くでました。

時間をかけてあれこれやってみましょう。

また、CloudTrail、TrustedAdviser、CloudFormationあたりも触っておくとよいです。

参考書を読む

参考書の内容とリンクした問題もありましたが、多少角度をずらした問題が多くでました。

参考書を丸暗記しておけばOK!という物ではないので注意しましょう。

参考書を読んだら知識を補完するために、時間をかけてAWSを触ってみるとよさそうです。

  • このエントリーをはてなブックマークに追加
  • Pocket

関連記事-こちらもどうぞ

  • 記事はありませんでした。これから充実させていきますのでお楽しみに!

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。