表で対策するAWS 認定ソリューションアーキテクト - アソシエイト(SAA)

誤記や不足点などありましたら、コメントや編集リクエストで教えていただけるとありがたいです。


※ 以下、2019年4月15日に追記
2019年3月末に受験し、また落ちました。
その体験談と勉強方法を記事にしました。
[10ヶ月勉強してもAWS認定ソリューションアーキテクト-アソシエイト-に合格できないので、勉強方法を振り返る - Qiita](https://qiita.com/riekure/items/df84a24adaea4bf6c15b)

※ 2019年7月5日追記
2019年6月中旬に受験し、合格することができました。
[1年かけてAWS認定ソリューションアーキテクト-アソシエイト-に合格できたので、勉強法を振り返る - Qiita](https://qiita.com/riekure/items/71232c27287feef75f43)

<details><summary>筆者の経歴</summary><div>

昨年5月からAWSを勉強し始めて、7月と12月に2回受験して落ちた才能ないザコエンジニア。

本職は、インターネット業界で忌み嫌われるSIerのシステムエンジニア。
新卒3年目（記事投稿時）。
Javaプログラミングがおしごと。たまにHTML、CSS、JavaScript。
仕事とプライベートともにインフラ経験なし。
会社はオールオンプレ。

10~12月は転職活動→転職諦め…の学習空白期間があり、また0から勉強中。
3月末までに合格したいと思っているけれど、KH3発売とTOEICのせいでまともに学習できていません。

ちなみに、この資格を取ったからといって、会社から奨励金もなければ受験費用負担もありません。
</div>

# グローバル／リージョン／AZサービス

|  | グローバルサービス | リージョンサービス | AZサービス |
| --- | --- | --- | --- |
| 概要 | リージョンをまたがって世界で共通なサービス。 | リージョンごとに作成、管理するサービス。 | AZごとに作成、管理するサービス。 |
| 主なサービス | IAM<br>Route53<br>CloudFront<br>CloudTrail<br>WAF| VPC<br>S3<br>DynamoDB<br>SQS<br>Lambda<br>API Gateway | EC2<br>RDS<br>ELB<br>ElasticCache<br>Redshift |


# VPCのセキュリティグループとACLの違い

| セキュリティグループ | ネットワークACL |
| --- | --- |
| インスタンス単位(EC2、RDS、ELBなど)で動作 | サブネット単位で動作 |
| ルールの許可のみ | ルールの許可と拒否 |
| ステートフル | ステートレス | 
| セキュリティグループ外からのインバウンドは拒否<br>セキュリティグループ外へのアウトバウンドは許可<br>セキュリティグループ内はインバウンドもアウトバウンドも許可 | (デフォルトACL)インバウンドもアウトバウンドも許可<br>(カスタムACL)インバウンドもアウトバウンドも拒否 |
| 設定変更後に再起動が不要 | 設定変更後に再起動が必要 |


ステートフル：戻りのトラフィックは考慮しなくていい
ステートレス：戻りのトラフィックも明示的に許可設定する必要がある


# EC2の課金タイプの違い

| | オンデマンドインスタンス | リザーブドインスタンス(RI) | スポットインスタンス |
| :--- | :--- | :--- | :--- |
|概要| 一般的なもの | 事前に予約して使用するもの | 使用料金を入札して安価で使用するもの|
|特徴|使った分だけお支払い|1or3年契約。<br>1年以上長期利用するならオンデマンドより安価|オンデマンドより安価<br>自分の最高入札金額を誰かが上回った場合は、インスタンスが強制終了する。|

# EC2のユーザーデータとメタデータの違い
| | 特徴 |
| --- | --- |
| ユーザーデータ | 初回起動時に1回だけスクリプト実行<br>OSの起動スクリプト |
| インスタンスメタデータ | 実行中のインスタンスを設定／管理するために使用<br>インスタンスIDやホスト名、IPアドレスが分かる |

# AWSアカウント、IAMユーザ－、IAMグループ、IAMロールの違い

| | 特徴 | 
| --- | --- |
| AWSアカウント | 最初にサインアップしたときに作成されるアカウント。<br>ルート権限（フル機能）を持つ。普段は使わないで、IAMアカウントを作成して運用するべき。 |
| IAMユーザー | AWSアカウントによって作成できるユーザー。<br>複数作成することが可能。<br>各IAMユーザーに対して必要なアクセス権を割り当てること（IAMアカウントポリシーとも言う）で使用する。皆でAWSアカウントを共有するのではなく、必要に応じてIAMユーザーを作成して運用管理する。作成直後は何の権限もない。 |
| IAMグループ | 複数のIAMユーザーの集まり。<br>IAMユーザーが所属するグループ。<br>IAMグループにポリシーを割り当てると、そこに所属するIAMユーザーにも権限が与えられる。 |
| IAMロール | AWSサービス(EC2やLambdaなど)や他組織のアカウント(facebookなど)に一時的に権限を与える。 EC2やLambdaからS3やDynamoDBなどにアクセスしたいときなどに使用する。 |


# EFSとEBSの違い

| | Amazon EFS | Amazon EBS  |
| --- | --- | --- | 
| 概要 | Amazon EC2 と組み合わせて使用するファイルストレージ | Amazon EC2 と一緒に使用するためのブロックレベルのストレージ |
| サービスレベル | リージョン | AZ |
| 可用性／耐久性 | 複数のAZに冗長的に配置 | 単一AZ内で3箇所に保存 | 
| アクセス | 複数のEC2でシェアできる | 単一AZの単一EC2で使用 |

# SESとSNSの違い


| | Amazon SES | Amazon SNS |
| --- | --- | --- |
| 概要 | E メールで通信を送信する必要があるアプリケーション向けのサービス<br>E メールのカスタムヘッダーフィールドやさまざまな MIME タイプをサポート | 事前登録者へのメールその他の通知。<br>HTTP や Amazon SQS、またはEメールなどの選択したトランスポートプロトコルを介して、複数の加入者が時間制約が厳しいメッセージの「プッシュ」通知をリクエスト/受信するもの |
| 利用用途 | ユーザーへのメールマガジン、キャンペーンメールなど | スマホアプリのプッシュ通知、障害時の担当者への通知など |

# AWSのデータベースサービスの違い

| | RDS | DynamoDB | RedShift | ElastiCache | Aurora |
| --- | --- | --- | --- | --- | --- |
| RDB？NoSQL？ | RDB | NoSQL | RDB | NoSQL | RDB |
| 概要 | 一般的なRDB | キーバリュー型<br>大量データ処理に向いている |データウェアハウス<br>大容量データ処理に向いている<br>分析に便利<br>標準のSQLが使える<br>列指向データベース | メモリ上にデータを格納する<br>キーバリュー型<br>クエリ結果をキャッシュしておくことで次回以降を高速処理 | フルマネージド型のデータベースサービスであり、データ量に応じてストレージを自動拡張する機能がある。
| 用途 | 基幹システム | モバイルゲームやIoTデータ管理 | BIツールの集計や分析 | データベースのデータキャッシュ | 頻繁にデータ更新・削除する、複数テーブルを結合してデータを取得するシステム

# デプロイや構成管理のサービスの違い

| サービス名 | 説明 |
| --- | --- |
| AWS CodeCommit | Gitベースのリポジトリを利用したソース管理サービス |
| AWS CodePipeline | アプリケーションのビルド、テスト、デプロイまでの処理手順を定義して実行できるサービス |
| CodeDeploy | アプリケーションのデプロイを自動化するサービス |
| Elastic Beanstalk | Webアプリケーションをサーバにデプロイ、また実行環境の管理を行うことができるサービス |
| OpsWorks | 構築手順通りにサーバ構築作業を自動化できるサービス<br>DevOps向け。Chef/Puppetのレシピを活用。 |
| CloudFormation | AWS内のすべてのインフラストラクチャリソースを記述して自動でプロビジョニングできるサービス |
| EMR | Apache HadoopやApache Sparkなどビッグデータのフレームワークが内包されたリソースを簡単に構築することができるサービス |

プロビジョニング…必要に応じてネットワークやコンピューターの設備などのリソースを提供できるよう予測し、準備しておくこと
[プロビジョニングとは \| クラウド・データセンター用語集／IDCフロンティア](https://www.idcf.jp/words/provisioning.html)

# Route 53のルーティングポリシーの違い

| ルーティング名 | 概要 |
| --- | --- |
| 加重ルーティング | 指定した比率で、複数のリソースにトラフィックをルーティングする場合 |
| レイテンシベースルーティング | 複数のリージョンにリソースがあり、最もレイテンシが小さいリージョンにトラフィックをルーティングする場合 |
| 地理的近接性ルーティング | リソースの場所に基づいてトラフィックをルーティングする場合 |
| 位置情報ルーティング | ユーザーの位置に基づいてトラフィックをルーティングする場合 |
| マルチバリュールーティング | IPアドレスごとにヘルスチェックをしたうえで、ランダムにルーティングする場合 |

詳細な参考文献：[ルーティングポリシーの選択 - Amazon Route 53](https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/routing-policy.html)

# Kinesisサービスの違い

| サービス名 | 概要 |
| --- | --- |
| Kinesis Data Streams |ストリーミングデータをリアルタイムで保存。<br>EMRやLambdaなどに構築したアプリケーションで処理できる。 |
| Kinesis Data Firehose |アプリケーション構築不要で、ストリーミングデータをS3やRedShiftなどに簡単に配信・保存ができる |
| Kinesis Data Analytics |ストリーミングデータに対してSQLを実行し、リアルタイム分析を行うことができる |

[AWS再入門 Amazon Kinesis編 ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/cm-advent-calendar-2015-aws-re-entering-kinesis/)

# Auto Scalingの設定の違い

| | LaunchConfig | Auto Scalingグループ | Auto Scalingポリシー |
| --- | --- | --- | ---| 
| 概要 | Auto Scallingで起動するインスタンスのAMIを指定 | Auto Scallingを実行するサーバグループの設定 | Auto Scallingでスケールイン／スケールアウトする設定 |
| 設定項目 | AMI ID<br>認証鍵<br>セキュリティグループ<br>インスタンスタイプ<br>スポットの利用有無<br>など | LaunchConfigの指定<br>追加するELB<br>タグの設定<br>最小、最大起動インスタンス数<br>インスタンスの削除ポリシー | Auto Scalingグループの指定<br>インスタンスの増加／減少数<br>トリガー発動間隔

# VPCピアリングとVPCエンドポイントの違い

| サービス名 | 概要 |
| --- | --- |
| VPCピアリング | 異なるVPC同士の通信をAWS内でプライベート接続できるサービス。<br>異なるVPCに配置したEC2間の通信や、アカウントをまたいだシステム間の通信、異なるリージョンをまたいだ通信が利用可能 |
| VPCエンドポイント（ゲートウェイ型） |S3やDynamo DBへアクセスする際に、インターネットを経由せず。AWS内のプライベート接続を実現するサービス
| VPCエンドポイント（インターフェース型） | AWSへのAPIコールに対してインターネットを経由せずにプライベート接続を実現するサービス|

# Amazon EC2 Dedicated Hostsとハードウェア専有インスタンスの違い

| EC2の種類 | 概要 |
| --- | --- |
| Dedicated Hosts | お客様専用の物理EC2サーバ<br>インスタンスのプレイスメントを制御したり、ホストにインストールされたコアとソケットの数を表示したりすることができる。|
| ハードウェア専有インスタンス | 単一のカスタマー専用のハードウェアで実行されるEC2インスタンス。同じAWSのアカウントのインスタンスとは、ハードウェアを共有する可能性がある。 |

[よくある質問 - AWS と Microsoft  | AWS](https://aws.amazon.com/jp/windows/faq/)

# ELBの種類

| | 概要 |
| --- | --- |
| NLB(Network) | L4 NATロードバランサ<br>超低遅延で、高スループットを維持しながら、秒間何百万リクエストをさばくように設計されたロードバランサー。 |
| ALB(Application) | L7リバースプロキシ<br>レイヤー7の対応が強化された単一ロードバランサー。<br>異なるアプリケーションへのリクエストをルーティング可能。 |
| CLB(Classic) | L4/L7リバースプロキシ<br>初期に提供されたELBで、複雑な設定ができない。 |

[ネットワーク視点で見るAWS ELB(Elastic Load Balancing)のタイプ別比較[NLB対応] | DevelopersIO](https://dev.classmethod.jp/cloud/aws/describe-elb-types/)
[これだけでOK！ AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座（初心者向け20時間完全コース）](https://www.udemy.com/aws-associate/)

# サーバのスケールアップ・スケールダウン・スケールアウト・スケールイン

| | 概要 |
| --- | --- |
| スケールアップ | 仮想サーバのスペックを上げる |
| スケールダウン | 仮想サーバのスペックを下げる |
| スケールアウト | 同じようなスペックのサーバを複数台並べる |
| スケールイン | サーバの台数を削減する |

[サーバのスケールアップ・スケールダウン・スケールアウト・スケールイン – 「さくらのクラウド入門」(3) | さくらのナレッジ](https://knowledge.sakura.ad.jp/6217/)

# 監視するサービス表

| | 概要 |
| --- | --- |
|Trusted Advisor| 「コスト最適化」、「パフォーマンス」、「セキュリティ」、「フォールトトレーランス」の４つの観点から、利用者のAWS環境をAWSが自動で精査し、推奨設定のお知らせをしてくれる機能 |
|CloudWatch|AWSリソースとAWSで実行されているアプリケーションに対するリアルタイムモニタリングサービス|
|CloudWatch Logs|CloudWatchと連動したログ管理サービス。EC2上のOS・アプリケーションのログやAWSマネージド・サービスのログを取得できる。|
|CloudWatch Event|AWSリソースに対するイベントをトリガーにアクションを実行。オペレーションの変更に応答し、応答メッセージ送信、昨日のアクティブ化。変更、状態情報の収集による修正アクションを実行する。|
|AWS Config|セキュリティとガバナンスを可能にする構成変更の通知、構成履歴、AWSリソースのインベントリーをお客様へ提供する完全マネージド型のサービス|
|AWS CloudTrail|AWSユーザの操作をロギングするサービス|
|AWS Config|AWSリソースのレポジトリ情報からリソース変更履歴や構成変更を管理するサービス|
|AWS Artifact|重要なコンプライアンス関連情報の頼りになる一元管理型リソース|
|AWS GuardDuty|VPCフローログ、CloudTrailログ、DNSログや悪意のあるIPやドメインリストなどを分析して処理する継続的なセキュリティモニタリングサービス|
|System Manager|AWS でご利用のインフラストラクチャを可視化し、制御するためのサービス|

# IPv4 CIDR ブロック

|範囲|/16から/28|
|---|---|
|推奨|/24|

# VPCに接続する方法

|サービス名|概要|
|---|---|
|Direct Connect|オンプレミスから AWS への専用ネットワーク接続の構築をシンプルにするサービス。<br>AWS とデータセンター、オフィス、またはコロケーション環境との間にプライベート接続。|
|VPCピアリング|2 つの VPC を接続し、それらの間でのトラフィックをプライベート IP アドレスを介してルーティングするサービス。<br>別アカウントのVPC間でも接続可能。|
|VPCエンドポイント|インターネットアクセスを必要としない、VPC と他の AWS サービス間をつなぐプライベート接続するサービス

# EC2がインターネットへアクセスする条件

| 条件 | 概要 |
| --- | --- |
| パブリックサブネット | インターネットゲートウェイが設定されているサブネットにEC2が設定されていること。<br>EC2にパブリックIPアドレスもしくはElastic IPアドレスが設定されていること。 |
| プライベートサブネット | インターネットゲートウェイが設定されているサブネットにNATゲートウェイが設定されていて、デフォルトゲートウェイがNATゲートウェイに設定されているサブネットにEC2が配置されていること。

# DNSレコード(Route53)

| 名 | 概要|
|---|---|
|SOA|ドメインのDNSサーバ／ドメイン管理者のメールアドレス／シリアル番号などを保持して、ゾーン転送時に情報が更新されているかの判断に利用する。|
|A|ホスト名とIPアドレスの関連付けを定義するレコード。|
|MX|メールの配送先（メールサーバ）のホスト名を定義するレコード。|
|CNAME|正規ホスト名に対する別名を定義するレコード。特定のホスト名を別のドメイン名に転送するときなどに利用する。|
|ALIAS|Route53特有。<br>DNSクエリにAWSサービスのエンドポイントのIPアドレスを返答|

# S3の暗号化（サーバサイド）

| 名称 | 概要 |
| --- | --- |
| SSE-S3 | S3によって管理されるキーを使用する。|
| SSE-KMS | KMSによって管理されるキーを使用する。|
| SSE-C | クライアントが管理するキーを使用する。|

# AWS Trusted Advisorのカテゴリ

| インフラストラクチャーの最適化 |
| --- |
| コストの最適化 |
| パフォーマンス |
| セキュリティ |
| 耐障害性 |
| サービスの制限 | 

# 参考文献

[よくある質問 | AWS](https://aws.amazon.com/jp/faqs/)
[合格対策 AWS認定ソリューションアーキテクト - アソシエイト | Amazon](https://www.amazon.co.jp/dp/486594043X/ref=asc_df_486594043X2581606/?tag=jpgo-22&creative=9303&creativeASIN=486594043X&linkCode=df0&hvadid=295691444786&hvpos=1o2&hvnetw=g&hvrand=14531719092283413437&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009308&hvtargid=pla-526933968668&th=1&psc=1)
[徹底攻略 AWS認定 ソリューションアーキテクト – アソシエイト教科書 | Amazon](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88-%E2%80%93-%E3%82%A2%E3%82%BD%E3%82%B7%E3%82%A8%E3%82%A4%E3%83%88%E6%95%99%E7%A7%91%E6%9B%B8/dp/4295005495/ref=sr_1_1?s=books&ie=UTF8&qid=1549505202&sr=1-1&keywords=%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88)