AWS 認定ソリューションアーキテクト – プロフェッショナル(SAP-C01)取得するまでにやったこと

![sap_2021-04-28_00h52_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/e734e1e1-be6c-6801-2e51-885d523e0125.png)

## はじめに

DX 技術本部の yu-yama です。

AWS 認定ソリューションアーキテクト – プロフェッショナルを取得したので、取得までの流れと思考を記します。

## 受験前の AWS 経験

AWS 経験は 4, 5 年で、コアサービスはDev側/Ops側一通り触っており、SAA を 2020 年 6 月に取得、DVA を 2021 年 1 月に取得、SOA を 2021 年 2 月に取得しています。

-   [AWS 認定ソリューションアーキテクトアソシエイト\(SAA\-C02\)取得するまでにやったこと](https://qiita.com/yu-yama-sra-airline-erp/items/7d30c3772c3075837939)

-   [AWS 認定 デベロッパー – アソシエイト\(DVA\-C01\)取得するまでにやったこと](https://qiita.com/yu-yama-sra-airline-erp/items/ab192e17e9692be5ef58)

-   [AWS 認定 SysOps アドミニストレーター – アソシエイト\(SOA\-C01\)取得するまでにやったこと](https://qiita.com/yu-yama-sra-airline-erp/items/718a973d2f215c5d6f79)

## 学習期間

-   2 カ月 90H程度

## 学習の流れ

### 試験ガイドを確認

-   [AWS\-Certified\-Solutions\-Architect\-Professional_Exam\-Guide\.pdf](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-pro/AWS-Certified-Solutions-Architect-Professional_Exam-Guide.pdf)

分野ごとの比重を見て、特に問われるところを確認

-   分野 1: 組織の複雑さに対応する設計 12.5%
-   分野 2: **新しいソリューションの設計 31%**
-   分野 3: 移行の計画 15%
-   分野 4: コスト管理 12.5%
-   分野 5: **既存のソリューションの継続的な改善 29%**

### 試験の詳細を確認

-   形式：75 問
-   時間：180 分

### [Exam Readiness: AWS Certified Solutions Architect – Professional \(Japanese\) \| AWS トレーニングと認定](https://www.aws.training/Details/eLearning?id=42403) 受講

AWS の提供しているデジタルトレーニング(いつでも受けられるやつ)を見て問題の雰囲気をつかみます。ヒゲの優しそうなおじさんが問題を解く際のアプローチ方法を教えてくれてとても参考になります。

### 合格体験記確認

先人のやったことを確認し、どのような問題が出るか、どのような解き方をするか、どの問題集が良いか、どのような学習の仕方をするかを確認します。

-   [AWS 認定ソリューションアーキテクト – プロフェッショナル 合格記 \| AWS WEB 問題集で学習しよう](https://aws.koiwaclub.com/passrecord/sap-experience/) より

    ```
    koiwa だけでいけた。
    問題文、選択肢ともに長く複雑
    koiwa を 3 周 #30 以降は 4 周
    #30 以降の答えが即答可能になっていれば OK
    #30 以降の問題を 2, 3 周
    1 週間で 1 周のペースで(1 日#8 つ)
    6 周の人も
    問題の解説は徹底的に読んで理解する
    koiwa で 90%取得が一つの目安
    5 割程度 koiwa と類似した問題が出題
    問題で問われている要件からソリューションを(コスト、可用性、パフォーマンスなど)パターン分けしながら考えるとよい
    学習期間は 1-3 カ月程度
    類似はサクっと解いて、初見の問題に時間をかける時間配分が大切
    アソシエイトとは異次元で比べ物にならないくらい難しい
    本試験モードで 8 割超えたら受験しても良いかも
    本試験モードを何度か実施して慣れておいた方が良い
    パッと見でややこしかったらフラグ立てて次に飛ばして見直しで戻って解く
    Udemy はあまり似た問題が出ず、koiwa が良い
    Udemy は試験より難しい印象
    Udemy は試験より難易度が高い
    Udemy オプションの設定やコマンドの問題が用意されているが、本試験では出ない
    ```

-   [「AWS 認定ソリューションアーキテクト \- プロフェッショナル」に一発で合格する技術\(2020/11 版\)](https://zenn.dev/hinastory/articles/9dd88a4313f296f3722c) より

    ```
    問題に出たテーマやキーワードの理解に専念して、ある程度理解できたらそれ以上深入りをしない
    ```

-   [【AWS SAP 認定試験】約 1 ヶ月で一発合格！合格のコツとは！？ ～中編～ \- ailes blog](https://wing-degital.hatenablog.com/entry/2021/03/18/013658) より

    ```
    問題を解き、解けなかった問題に対してはなぜその答えなのか、なぜ他の答えではダメなのかを理解し、その問題を解けるようになるまで頭に叩き込みます。
    模擬試験モードを 2 回実施しました。 1 回目が 78%、2 回目が 77%だったため、2 回目で正解率が上がりませんでした。 ですが、最低ラインの 75%は超えていたため、そこまで不安になることはありませんでした。（あくまで楽観的な観測ですが、スピード優先なので） あとは通常問題の 2 週目が十分に走りにきってなかった、2 回目の問題をきちんと復習して理解しきれた、という点もありました。
    ```

-   [AWS 認定ソリューションアーキテクト – プロフェッショナルの新試験に合格した話 \| MISO](https://www.tdi.co.jp/miso/aws-certified-solutions-architect-professional) より

    ```
    本番と似たような雰囲気の問題を数多く解き、素早く回答する練習をする
    この試験は集中力と気力と体力の勝負
    ```

-   [AWS 認定試験のプロフェッショナルレベルに合格したので何やったかをまとめる](https://k1-style.net/2020/11/how_to_study_for_aws_certified_sap_dop/) より

    ```
    3 時間集中して問題解くのしんどい。 個人差はあると思うけど、自分は SAP と DOP の両試験とも全問解いて 10 数分くらいの残り時間しか無かった。 なので、後で見直す時間はほぼ無いと思って良さそう。
    「後で見直す」フラグを問題に付けることができて後で見返せるんだけど、本気で回答に迷った問題だけに留めておこうと反省。分からない問題は”分からん”と認めて後戻りしないこと。
    ```

-   [【2019 年改定後】AWS 認定ソリューションアーキテクト プロフェッショナル\(SAP\)合格のために勉強したこと](https://naoberry.com/tech/sap/) より

    ```
    問題集を解きまくる
    弱いと感じた部分を BlackBelt 中心に勉強する（ノートに取る）
    再度問題集を解きまくる
    模試を受ける
    模試の内容を完璧に理解する
    本番に臨む
    ```

-   [AWS 認定ソリューションアーキテクト – プロフェッショナルの合格記 ～ 3 時間の苦闘～ \- IT 資格取得～受験料の節約～](https://itskill.hatenablog.com/entry/2020/03/23/235635) より

    ```
    本番では問題集と同じような問題はあまり出題されず、かつ、試験範囲も網羅していない』とのことだったので、単純に繰り返すのではなく、 正解ではない選択肢、解説に出てくるサービスや機能も、概要レベルが理解できるまでひたすらググる
    ```

-   [ソリューションアーキテクト – プロフェッショナル資格試験合格体験記と学習のコツ【AWS 認定試験】 \- IT の現場から DX/デジタル経営の実現に向けたマイグレーションとクラウド活用](https://tech.systems-inc.com/awscert-sap-exam1/) より

    ```
    -   （主にコンピューティングまわりの）AWS アカウント内、リージョン間、AZ 間でできることの整理
        　これは本当に学習していてよかったと思います。
        　 EC2 や ELB、AMI などをリージョン間やアカウントをまたいで移動する場合や、
        　 RDS でフェイルオーバーする場合など、サービスの標準的な機能で対応できるのか、
        　他のサービスと組み合わせる必要があるのか、しっかり整理しておく必要があります。

        基本的に他の選択肢も、全く違和感のないものばかりなので、
        　知らないと正解を絞り込むのが難しくなります。

    -   必ず解答を 2 回以上見直す
        アソシエイトレベルに比べると、試験時間に余裕はないと思いますが、
        必ず見直しもかねて 2 周した方が良いです。

        これは実際の私の経験ですが、最初の方で自信をもって回答できなかった問題が、
        後半で別の観点で問われていて、最初の問題を正解の選択肢に絞り込めたことが何問かありました。

        2 択まで絞り込んだけれど、どちらか確信を持てないケースは AWS 認定試験でよくあるので、
        2 周する事で正解を拾えればかなり合格に近づけます。

    -   残り時間を小まめに確認する

        私が受験した PSI の試験では、残りの回答時間と問題数が表示されていたので、
        残り時間を残り問題数で割って、1 問あたりににかけられる時間を小まめに確認していました。

        残り 30 問で残時間 60 分だったら、1 問 2 分までかけられますが、
        最後に見直しする想定だと、実質 1 分程度しかかけられないことになります。

        難問に集中していると時間を忘れてしまいがちですが、
        残りの時間を有効活用するために常に把握しておくのがおススメです。
    ```

-   [【試験合格記】AWS 認定ソリューションアーキテクト – プロフェッショナル\(SAP\-C01\) \- Qiita](https://qiita.com/yastani/items/8293025e78ac7118f561) より

    ```
    -   再学習して久しぶりに気付いたのですが、やはり AWS 試験の最難関は間違いなくこの SAP だと思います。
        学習範囲と予測の難しさは脳死で学習支援サイトの問題を解いても身につかないのは間違いないでしょう。
        地道に日々 AWS と戯れて各サービスのベストプラクティスを理解するように心がけていく必要があると再認識しました。

    -   ハイブリッドクラウド、AWS への移行、Organization レベルの適切な管理
    -   AWS Organization のマスターアカウントと配下アカウントの関係性を理解する
    -   SCP やアクセス権限の境界で出来ることを把握する
    -   災害復旧(DR)を計画するにあたって起点となるリソースや設定の違いを理解する
    -   RDS や DynamoDB の特性を正しく理解する
    -   DirectConnect、VPN、VPC Peering、Transit Gateway などネットワークリソースの特徴およびユースケースを学ぶ
    -   セキュリティの最適化に NACL、Security Group、WAF などをどのレイヤーに設置すべきか判断できるようにする
    -   EC2、Elastic Beanstalk、Lambda、ECS などコンピュートリソースの特徴と応用的な使い方を理解する
    ```

アソシエイトと異なり**しんどい**とか**脳死**とか**思い出すだけで吐きそう**とか恐ろしい単語が並んでいます...

問題は長文で、長文の似たような内容で迷う回答が出ること。幅広いサービスの知識が必要になるので個々のサービスを深堀して学習するのは非効率であること。
時間が足りなくなるので 1 問 2 分ペースでサクサク解くこと。(ここは時間が確実に余るアソシエイトとは違いますね)などが分かりました。

見た感じ [AWS WEB 問題集で学習しよう](https://aws.koiwaclub.com/) が概ね評判が良い感じでしたので、これをやってみることにしました。
[Udemy の問題集 ](https://www.udemy.com/topic/aws-certified-solutions-architect-professional/) は評価が分かれていましたが、問題が本試験より難易度が高いこと、出ない(と個人的には思っている)問題(パラメーターやオプション、制限の値)が以前アソシエイトの問題集をやった際に結構混ざっていたためパスしました。75 問全て解かないと回答と解説が確認できない点もマイナスでした。

### [SAP \| AWS WEB 問題集で学習しよう(koiwa)](https://aws.koiwaclub.com/exam/sap/) を解く

問題集が7問1セットのトータル55セット(385問)用意されています。1周回ってから1度受験することに。
koiwa は1問解くごとに回答と解説が表示されるため、細切れに学習を進めるのに適しています。

問題を解く → 回答を一通り読む(正解でも) → 理解できない箇所や弱いと感じる箇所は[ブラックベルト](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/)を確認する。(ただしあまり深堀しすぎないように)
と進めました。

1 周回ったのですが最後まで今一つな正解率でした(アベレージ 5,6 割？)。まあ一度受けてみるかということで受験しました。

## 模擬試験

-   受けてません。

## 本番

試験時間は 180 分なので 1問2分ペースとして、**残120分残45問**、**残60分で残15問**とペース配分決めて開始しました。
問題は噂通り長文長文...koiwa と類似した問題が出ると合格記にありましたが全然そんなことはなかったです。
若干ペース遅れつつも残 30 分で全問回答しました。
その後解き漏れが無いか確認したところ、2 問もありました。複数回答を選択しなくてはいけないところを 1 つのみで進めていたようです。長文で疲弊していたのか。
その後見直しフラグを立てたものの確認へ。再度読み直すも...**全く内容が頭に入ってきません。**
まあいいか。と思い直して試験を終了すると、**合格**していました。

## 感想 と まとめ

-   サービスの知識はやはり全般的に問われます。これらをやっておけば OK というのは無いです。

-   [SAP \| AWS WEB 問題集で学習しよう](https://aws.koiwaclub.com/exam/sap/) について

    - 合格記に**#30以降を即答**や**90%取得が目安**とありますがそんなことはないです。
    -   全体的に問題が**少し古い**です
        -   Lambda の実行時間制限 5 分になっていたり
        -   Transit VPC が回答になっているところは今は Transit Gateway だろ的なところがあったり
        -   やたら回答に出てきていたけど SWF っていま使う？など
    -   とはいえ長文の問題と選択肢の雰囲気に慣れるという意味と、各分野ごとのベストプラクティスを把握するという意味ではではかなり有用でした。問題集を 1 から解き始めず、後ろの方から 30 セット(210 問)解いて受けるでも良かったかも。

-   最後に回答漏れが無いかちゃんと確認しよう
-   見直しフラグの時には集中力がゼロになっているかもを念頭に。

-   問題の読み方
    -   問題はちゃんと最後までじっくり読みます。**構成図**を頭に描きつつ読みます。
    -   最後のあたりに出てくる**キーワード**に注目します。

        ```キーワード
        -   コンプライアンス
        -   低コスト, 費用対効果
        -   セキュリティ
        -   最小限の管理工数
        -   RPO, RTO
        -   可用性
        -   アプリケーションに殆ど変更を加えず
        -   アプリケーションのダウンタイムを最小限に押さえる
        -   移行に許容される時間
        -   パフォーマンス
        ```

-   回答の選び方
    -   回答も全て読んでいると時間が無くなるので回答は少し引いて(俯瞰して)読みます。
    -   問題文で脳内に描いた**構成図**と**キーワード**から大体 2 つ程度に絞れます。
    -   その後、回答もじっくり読みます。
    -   それで正解が分かればそれで。
    -   どちらも判断が付かない場合、最初に文章を読んだ時にひっかかりが少なかった方を選択しましょう。
        -   このサービスとこのサービスの組み合わせに違和感を感じる...などなにかしら感じるものです

-   合格記でよく見かけましたが**本当に体力・集中力勝負なので前日はたっぷり睡眠を取りましょう。**

最後に問題集解いている時に作成したメモを貼っておきます
<details><summary>試験に向けて作成していたメモ</summary><div>

-   ヒューリスティック
  -   「経験則」の「試行錯誤的な」の意味
-   Amazon EMR(Elastic MapReduce)
    -   ビッグデータ処理のクラウドプラットフォーム
    -   Apache Spark, Apache Hive などのオープンソースを使用して膨大な量のデータを処理できる
    -   ノード
        -   マスターノード
            -   クラスターを管理する
            -   稼働し続けなければならない
        -   コアノード
            -   計算タスクを実行する
        -   コストを抑えるベストプラクティス
            -   **マスターノードとコアノードにオンデマンドまたはリザーブドインスタンスを使用し、タスクノードにはスポットインスタンスを使用する**
    -   EMR は 1 秒あたりの課金になるので、スポットインスタンスを利用してコストを削減して、スポットインスタンスの数を増やすことによってパフォーマンスを高く出来る
-   Amazon Kinesis
    -   **リアルタイムのデータキャプチャ**と分析のために Amazon kinesis を使用する
    -   ストリーミングデータを処理できる
    -   クリックストリームなど
    -   高速にデータを使用してアドホック分析(必要に応じて必要なだけ行う分析)を実行するには Kinesis Firehose ＋ Redshift を使用する
        -   Redshift はアドホッククエリもサポートしている
    -   Kinesis Data Firehose は、Elasticsearch Service へデータを直接送信できる
-   Kinesis と SQS の使い分け
    -   リアルタイム性を求めるなら Kinesis
    -   処理の欠落を回避したいなら SQS
-   Kinesis Video Streams
    -   接続されたデバイスから AWS へ動画を簡単かつ安全にストリーミングの保存、暗号化、インデックス化を行う
    -   保存された映像は API を使用してストリーミング配信できる
-   Amazon SQS
    -   既存のキューは作成後に変更できない
    -   デフォルトのスタンダードキューはメッセージの順序を保証しない。メッセージの順序を保証するには SQS FIFO キューに移行する必要がある
    -   SQS FIFO キーは単一のキュー内で複数の順序付けされたメッセージグループを許可する
    -   SQS を使用するとタスクをキューに送信して非同期的に処理できる
    -   SQS メッセージキューはリージョンごとに独立している
-   SNS
    -   モバイルプッシュデバイスのアプリケーションにプッシュ通知メッセージを直接送信できる
-   SNS と SQS
    -   SNS は負荷分散に適したサービスではない
    -   SQS は並行して動作する
-   CloudFront
    -   コンテンツを CloudFront から配信することで、サーバーへのアクセス負荷を減らす
    -   オリジンサーバ(コンテンツオリジン)
        -   配信元となるサーバのこと
        -   EC2 や S3 の他にオンプレミスサーバーも指定できる
    -   オリジンアクセスアイデンティティ(OAI)
        -   ユーザーが S3 バケットへ直接でなく、CloudFront 経由でのみファイルにアクセスできるようになる
            1. CloudFront でオリジンアクセスアイデンティティを作成する
            1. S3 のバケットポリシーとして、そのオリジンアクセスアイデンティティからのリクエストのみ受け付ける設定にする
    -   CloudFront で SSL/TLS の証明書を使用するための要件
        -   ビューワーと CloudFront との間の HTTPS 通信に**自己署名証明書を使用することはできない**
        -   CloudFront とオリジンとの間の HTTPS 通信に**自己署名証明書を使用することはできない**
        -   ビューアで CloudFront デフォルト証明書、オリジンでサードパーティの CA 証明書
            もしくはビューアで CloudFront、オリジンでサードパーティの CA 証明書
    -   CloudFront のキャッシュ動作
        -   ウェブサイトにあるファイルの特定の URL パスパターンに応じてさまざまな CloudFront 機能を設定できる
    -   動画ストリーミングに Amazon CloudFront を使用する
        -   CloudFront ではプログレッシブオプションに設定されたダウンロードオプションを利用して、動画のストリーミングをサポートできる
    -   CloudFront 署名付き Cookie
        -   複数の制限付きファイルへのアクセスを提供する場合、誰がコンテンツにアクセスできるかを制御することが出来る
        -   選ばれたユーザー (料金を支払っているユーザーなど) のドキュメント、ビジネスデータ、メディアストリーム、またはコンテンツに対して、アクセスを制限する
    -   CloudFront に ACM で取得した証明書を適用する場合、 us-east-1(バージニア北部) の ACM で証明書を取得しなければいけない
        -   CloudFront はグローバルリージョンのため
        -   ACM の証明書はリージョンごとに要求する必要がある
    -   高可用性を満たすために CloudFront オリジンフェールオーバーを使用する
        -   オリジングループを作成し、CloudFront のプライマリオリジンが特定の HTTP ステータスコードの失敗応答を返した時に CloudFront が自動的に切り替わる 2 番目のオリジンを指定する
            -   これにより、HTTP504 エラーが軽減される
    -   AWS Lambda＠Edge
        -   CloudFront の機能
        -   AWS Lambda の拡張機能で、CloudFront が配信するコンテンツをカスタマイズする関数を実行できる
        -   キャッシュ機能はない
-   AWS Connector for vCenter
    -   仮想マシンを Amazon EC2 に移行する
-   AWS Systems Manager(SSM)
    -   パッチ適用のプロセスの自動化に役立つ
    -   セキュリティ関連のアップデートと他のタイプのアップデートの両方でマネージドインスタンスにパッチを適用するプロセスを自動化する
    -   オンプレミスで使用されているパッチベースラインと VPC 内の全ての EC2 インスタンスと同期させてタスクとパッチ適用スケジュールを自動化するタスクを導入する方法
        1. AWS Systems Manager Patch Manager を使用して、オンプレミスのデータセンターのパッチベースラインに基づいて EC2 インスタンスのセキュリティパッチを管理及びデプロイする
        1. SSM エージェントをすべてのインスタンス、オンプレサーバにインストールする
        1. AWS Systems Manager メンテナンスウィンドウを使用してパッチ適用スケジュールを自動化する
    -   パッチ計画例
        -   本番環境以外でパッチをテストし、適切な承認を得てメンテナンス期間中に展開する
    -   すべてのサーバワークロードでパッチあてによる EC2 インスタンスの再起動が同時に発生しないことが重要
        1. 例) Windows Server1, Windows Server2 いずれかの値をもつパッチグループのタグを追加
        1. 重複しない 2 つの AWS Systems Manager メンテナンスウィンドウを定義し、異なるパッチグループに関連付ける
        1. AWS DefaultPatchBaseline を使用してパッチを決定
        1. メンテナンスウィンドウを作成し、AWS-RunPatchBaseline ドキュメントを使用してパッチを適用する
        -   インスタンスにパッチを適用する SSM ドキュメント
            -   SSM ドキュメントには、パッチ適用オプションの詳細が記載されている
-   AWS CloudSearch
    -   マネージド型サービスであり、ウェブサイトまたはアプリケーション向けの検索ソリューションを容易かつコスト効率よく設定、管理、スケールできる
-   エンドツーエンド暗号化（end-to-end encryption, E2EE）
    -   通信ネットワークにおいて通信を行う送信者と受信者のみが暗号化されたデータを復号、閲覧できる仕組みの秘匿性の高い暗号化技術のこと。
-   S3
    -   構造化データのストレージソリューション
    -   署名付き URL
        -   ある特定の URL からのみアクセスできるようにするための機能
        -   アプリケーションが URL を生成する必要があり、URL を生成するために適切な資格情報が必要
    -   リクエスタ支払いバケット
        -   バケット所有者ではなくリクエストを実行するリクエスタが支払う
        -   データを共有したいが、費用を負担したくない場合に使用する
        -   手順
            1. データを所有するバケットにバケットポリシーを作成する
            1. 作成したポリシーに参照させたいアカウントの読み取りアクセス許可を設定
            1. バケットでリクエスタ支払いを有効にする
            1. リクエスタがデータにアクセスするときにヘッダにリクエストが課金されていることを認識しているヘッダ x-amz-request-payer を含める
    -   S3 はデータを保護するための最もコスト効果の高い選択。また、S3 Range Get を使用すると、オブジェクト全体を読み込むのではなく、必要な部分またはバイトのみを読み取ることが出来る
    -   マルチパートアップロード
        -   費用を最適化するため、クライアントから直接 S3 にアップロードさせる
        -   オブジェクトサイズが 100MB 以上の場合、単一のオペレーションでオブジェクトをアップロードする代わりにマルチパートアップロードを検討すること
    -   S3 Glacier はストレージとプットに時間がかかるため、個々のファイルを保存するのは費用対効果が薄い
        -   1 つのアーカイブとしてアップロードして、ファイルの一部を S3 Glacier でバイト範囲で取得出来る
    -   S3 クロスリージョンレプリケーション
        -   S3 のデータを DR リージョンにコピーするのに役立つ
    -   S3 Transfer Acceleraition
        -   クライアント Amazon S3 バケットの長距離間でファイルを高速、簡単、安全に転送できる
        -   S3 のアップロードパフォーマンスの向上に役立つ
    -   オブジェクトの格納と格納されたオブジェクトへの迅速なアクセスに関する設計パターン
        -   S3 と DynamoDB を用いる
    -   DynamoDB グローバルテーブルおよび S3 クロスリージョンレプリケーションはリージョン障害からデータを保護する
    -   静的ページの配信は S3 ストレージと CloudFront が定石
-   Amazon Elastic Transcoder
    -   動画ファイルをパソコンやスマートフォン、タブレットなどで再生可能なフォーマットに変換するサービス
    -   トランスエンコードで Elastic Transcoder を用いて、元ファイルは S3 Glacier にアーカイブして、S3 から CloudFront で配信することで、コスト効率が高いアーキテクチャを構築できる
-   インスタンスのプロファイルプロパティ
    -   インスタンスプロファイルを作成して、IAM ロールを EC2 インスタンスに渡す
    -   IAM ロールを収めるための容器
    -   マネコン以外、AWS CLI や CloudFormation で意識する必要がある
-   AWS Service Catalog
    -   AWS のプロビジョニングに関するリスクを低減する(コスト、セキュリティ、ガバナンス)
    -   標準的な AWS 環境のデプロイをテンプレート化する
    -   テンプレートのバージョン管理を行う
    -   製品
        -   CloudFormation テンプレートをパッケージ化したもの
        -   バージョンが管理可能
    -   ポートフォリオ
        -   製品の集合
        -   ポートフォリオ単位でユーザーに製品の使用を許可
    -   制約
        -   製品のデプロイ方法を制御。ポートフォリオごとに各製品に制約を追加
    -   AWS Organizations はサービスカタログと統合でき、インフラストラクチャを一元管理してポリシーを適用するために使用できる
        -   所属組織でメンバーアカウントとの Service Catalog のポートフォリオ共有を簡素化できる
-   RDS for MySQL オンプレミスへのレプリケーション
    -   セキュリティのために VPN 接続を使用して AWS からオンプレミスのデータベースインスタンスへレプリケーションできる
-   不正侵入検知・防御システム(IDS・IPS)
    -   インスタンスまたはリバースプロキシ層に IDS/IPS エージェントを実装することでインターネットからのトラフィックを保護できる
-   IdP(Identity Provider)
    -   クラウドサービスやアプリへのアクセスを試みるユーザーの ID やパスワードなどの認証情報を提供する
-   ウェブアイデンティティフェデレーション
    -   ウェブ ID フェデレーションは Amazon, Facebook, Google またはその他の OpenID Connect 互換の IdP でのログインができる
    -   ウェブアイデンティティフェデレーションを使用して取得した一時的な AWS 資格情報は、モバイルアプリケーションで必要なタスクを実行するために必要な権限のみを持つ AWS ロールにマップされる
    1. ユーザーに一般的なサードパーティー ID プロバイダーを使用したサインインを求める
    2. そのプロバイダーの認証情報を AWS アカウントのリソースを使用するための一時的なアクセス許可に変換する
    3. AWS リソース(DynamoDB etc)にアクセスする
-   SAML2.0 フェデレーティッドユーザーが AWS マネジメントコンソールにアクセス可能にする
    -   AWS マネジメントコンソールに再度サインインしないようにするため、オンプレミスの SSO を使用してネットワークオペレーションセンターのメンバーに AWS マネジメントコンソールへのアクセスを許可する
    -   SAML
        -   Security Assertion Markup Language の略称であり、OASIS によって策定された異なるインターネットドメイン間でユーザー認証を行うための XML をベースにした標準規格
    -   SAML IdP(Identity Provider)
        -   認証情報を提供する側のこと
    -   フェデレーション
        -   一度認証を通れば、その認証情報を使って、許可されているすべてのサービスを使えるようにする仕組みのこと
    1. ユーザーは組織のポータル(IdP)にアクセス
    2. ポータル(IdP)が認証(ADFS etc)を行う
    3. ポータル(IdP)は、ユーザー識別するアサーションを含む SAML アサーションレスポンスを生成し、クライアントブラウザに返す
    4. クライアントブラウザは、AWS のシングルサインオンエンドポイントにリダイレクトされ、SAML アサーションを投稿する
        - AWS STS AssumeRoleWithSAML API を呼び出す
            - SAML プロバイダーの ARN
            - 引き受ける IAM ロールの ARN
            - ポータル(IdP)からの SAML アサーション
    5. エンドポイントは、ユーザーの代わりに一時的なセキュリティ認証情報をリクエストし、コンソールのサインイン URL を作成します
    6. AWS は、サインイン URL をクライアントにリダイレクトとして送信
    7. クライアントのブラウザは、AWS マネジメントコンソールにリダイレクトされる
-   ID プロバイダー(IdP)とフェデレーション
    -   適切なアクセス許可で IAM ロールを作成し、フェデレーションまたは ID プロバイダーを使用してオンプレミスの会社の AD または LDAP で認証し、STS を呼び出して一時トークンを生成して、S3 へのアクセスを制限する
        -   AWS STS(Security Token Service)
            -   ユーザーに対して IAM を定義せずに AWS リソースへのアクセスを許可できる
-   ID プロバイダー(IdP)とフェデレーション
    -   LDAP などで認証し、AssumeRole を呼び出す方法と
    -   カスタム ID ブローカーの実装を使用し、LDAP などで認証し、フェデレーショントークンを使用する方法
-   AD コネクター
    -   ディレクトリリクエストをオンプレミスの Active Directory へリダイレクトするのに使用するディレクトリゲートウェイ
-   AWS Storage Gateway
    -   ファイルゲートウェイ
        -   NFS や SMB などのプロトコルを利用して S3 オブジェクトを保存及び取得できる
        -   S3 を永続ストレージとしてオフサイトのバックアップを提供する
        -   オフサイト
            -   現地から離れた。遠隔地の。
    -   ボリュームゲートウェイ
        オンプレミスのアプリケーションサーバから iSCSI デバイスとしてマウントできる、クラウドベースのストレージボリュームを提供
        -   キャッシュボリューム
            -   頻繁にアクセスするデータサブセットのコピーをローカルに保持
            -   データを S3 に保存し、頻繁にアクセスするデータサブセットのコピーをローカルに保存する
        -   保管型ボリューム
            -   データセット全体への低レイテンシーアクセスが必要な設定は、最初に全てのデータをローカルに保存するようにオンプレミスのゲートウェイを設定する
    -   テープゲートウェイ
        -   バックアップデータをコスト効果や耐久性の高い方法で S3 Glacier などにアーカイブできる
-   オンプレミスからの移行
    1. VPC とオンプレミスと重複しない IP アドレス空間にして、AWS Direct Connect で VPC とオンプレミスの内部ネットワークのリンクを確立させる
    1. 現在の仮想マシンを VM Import で AWS に移行する
-   DR 戦略
    -   バックアップ＆リストア
        -   データとリソースがバックアップされる
    -   パイロットライト
        -   費用対効果の高い戦略を備えるディザスタリカバリ
        -   別のリージョンにリードレプリカを作成し、アプリケーション基盤の AWS CloudFormation を作成。障害が発生したら、リードレプリカを昇格させて Amazon RDS MySQL マルチ AZ 配置を使用した DB インスタンスとして設定。昇格させた Amazon RDS DB インスタンスを使用して別のリージョンの環境を AWS CloudFormation テンプレートを使用して作成する。DNS レコードを更新して、他のリージョンを指すようにする
        -   EBS と RDS をパイロットライトで使用する例
            1. AWS Lambda を使用して、毎日 EBS および RDS のスナップショットを作成
            1. それらを災害復旧リージョンにコピーする
            1. Route53 ヘルスチェックを使用してフェイルオーバー(アクティブ／パッシブ)を設定する
            1. 災害復旧リージョンで容量を 0 に設定した Auto Scaling グループで EC2 を使用する
    -   ウォームスタンバイ
        -   完全に機能的な環境の縮小版が常に実行されている
    -   マルチサイト
        -   アクティブアクティブ構成
    -   **上に行くほど可用性が低くコストが低い**
    -   **下に行くほど可用性が高くコストが高い**
-   マルチ AZ を使用することにより、地理的冗長性の安全性と信頼性を利用できる
-   クロスリージョンリードレプリカ
    -   RDS を使用すると、リードレプリカをソース DB インスタンスとは異なる AWS リージョンに作成できる
-   VPC エンドポイント
    -   冗長性と高可用性を備え、水平にスケールする
    -   ネットワークトラフィックに対する可用性のリスクや帯域幅の制約はない
-   S3 および DynamoDB 用の VPC エンドポイントを利用するために、ゲートウェイエンドポイントを作成する必要がある
-   Amazon DLM(Data Lifecycle Manager)
    -   Amazon EBS ボリュームをバックアップする為の Snapshot の生成 → 保存 → 削除のライフサイクルを自動化するサービス
-   NAT ゲートウェイ
    -   NAT ゲートウェイはネットワークアドレス変換を提供する
    -   Elastic IP アドレスを NAT に割り当てると、単一の IP をホワイトリストに登録できる支払いゲートウェイに公開できる
    -   **IPv4 のみ**
-   Egress-Only インターネットゲートウェイ
    -   プライベートサブネット内のインスタンスからインターネットへ **IPv6 トラフィックをルーティングするため**に使用する
        1. VPC 内に Egress-Only インターネットゲートウェイを作成する
        1. 全ての IPv6 トラフィック(::/0)または特定の IPv6 のアドレスの範囲をポイントするルートテーブルに、Egress-Only インターネットゲートウェイへのルートを追加する
    -   ステートフルである
    -   **NAT ゲートウェイは IPv6 をサポートしない**
-   インスタンスストア(エフェメラルドライブ)
    -   各 EC2 インスタンスと同じ物理ホストに存在しているディスクのことで、無料で利用できるディスクのこと。 このディスクは EBS に比べ高速にアクセスすることができますが、揮発性のディスクのため、サーバを停止するとディスク上のデータが消える。
-   ユーザーデータ
    -   EC2 でインスタンスを起動するとき、起動後にそのインスタンスにデータを渡し、一般的な自動設定タスクを実行したり、スクリプトを実行したりできる
-   VPC ピア接続
    -   2 つの VPC 間の 1:1 関係
    -   50 のアカウントの各 VPC 間でプライベート DNS を利用するには
        1. **共有 VPC** を作成
        1. 他のアカウントの各 VPC への VPC ピアリング接続を作成する
        1. ドメインおよびサブドメインのリソースレコードセットを作成する
        1. Amazon Route 53 プライベートホストゾーンを共有 VPC に関連付ける
    -   VPC ピアリング間のデータ接続料金は、インターネットまたはリージョン間のデータ転送料金と比較して安い
    -   セキュリティグループは VPC ピアリングしている際に VPC をまたいでセキュリティグループの送信元にセキュリティグループを設定できるが、リージョンをまたいだ設定はできない
    -   VPC ピアリング接続はエッジツーエッジのルーティングをサポートしない
        -   エッジツーエッジルーティングとは
            -   VPC をまたぐネットワークトラフィックは送信できない
    -   VPC ピアリングは
        -   サブネットに設定したルーティングテーブルで VPC 間の接続を制御する
    -   VPC ピアリング
        -   自分の AWS アカウントの VPC 間や、他の AWS アカウントの VPC との間に作成出来る
        -   VPC は複数の異なるリージョン間に存在できる
    -   VPC のルートテーブルは、プレフィックス最長一致を使用して、最も具体的なルートを選択する
-   CloudTrail ログファイルを複数のリージョンから受け取る
    -   1 つのアカウントの 1 つの S3 のバケットに配信するように設定できる
    -   監査に使用できる
-   CloudTrail ログは通常 15 分遅れて表示されるようになる
-   AWS PrivateLink
    -   Amazon のネットワーク内で、VPC、AWS のサービス、オンプレミスアプリケーション間のセキュアなプライベート接続を提供する
-   BGP を介したオンプレミスネットワークのスタティックルートの伝播
    -   Border Gateway Protocol
        -   現在のインターネットにおいて、ISP などの相互接続時にお互いの経路情報をやり取りするために使われる経路制御プロトコル
-   Amazon SWF(Simple Workflow)
    -   並行したステップまたは連続したステップがあるバックグラウンドジョブを構築、実行、スケールする
    -   ディサイダー
        -   ワークフロー実行中に実行されるワークフロータイプの調整ロジックの実装のこと
-   Classic Load Balancer は 1 つの証明書しか登録することが出来ない
-   ALB は複数証明書設定 OK
-   ELB はクライアント証明書を利用した認証をサポートしない
-   クライアント証明書とサーバ証明書の違い
    -   クライアントを証明する
        -   クライアントのブラウザなどにインストールして利用する
        -   1 人に一人配布される
    -   サーバを証明する
-   KMS と CloudHSM
    -   鍵が AWS 環境外に移動しなくなるため安全
    -   KMS：マルチテナント方式のマネージド暗号鍵管理サービス
        -   お手軽
        -   キーポリシーを使用して権限を制御する
    -   CloudHSM：シングルテナント方式の暗号鍵サービス
        -   KMS 経由で、AWS サービスと連携
        -   KMS の鍵管理に加え、暗号化、復号処理のアクセラレーション
        -   高いレベルのコンプライアンスへの対応
-   Proxy Protocol ヘッダー
    -   ロードバランサーでバックエンド接続用に TCP を使用する場合に、クライアントの IP アドレスを識別するのに役立つ
-   VPC で、インスタンスがカスタマーゲートウェイに到達できるようにするには、
    1. VPN 接続で使用されるルートを含め、**仮想プライベートゲートウェイを指すようにルートテーブルを設定する**必要がある
    1. 仮想プライベートゲートウェイへのルート伝播を有効にする必要がある
-   ENI を EC2 インスタンスに増やしても、ネットワーク帯域幅の増加には役立たない
-   Route 53
    -   Route53 ルーティングポリシー
        -   位置情報ルーティングポリシー
            -   ユーザーの IP アドレスから接続場所を特定し、地理的に近い場所のレコードを返す
            -   ユースケース例) ドイツ在住の人にはドイツ語のコンテンツを表示したい場合など
        -   地理的近接性ルーティングポリシー
            -   リソースの場所に基づいてトラフィックをルーティング
            -   ユースケース例) アジア地域のユーザーが地理的に近くの CloudFront リソースにルーティング
        -   シンプルルーティングポリシー
            -   ドメインで特定の機能を実行する単一のリソースがある場合に使用します。たとえば、example.com ウェブサイトにコンテンツを提供する 1 つのウェブサーバーなどです。
        -   フェイルオーバールーティングポリシー
            -   アクティブ/パッシブフェイルオーバーを構成する場合に使用します。
        -   レイテンシールーティングポリシー
            -   複数の AWS リージョンにリソースがあり、レイテンシーの最も小さいリージョンにトラフィックをルーティングする場合に使用します。
        -   複数値回答ルーティングポリシー
            -   ランダムに選ばれた最大 8 つの正常なレコードを使用して Route 53 が DNS クエリに応答する場合に使用します。
        -   加重ルーティングポリシー
            -   指定した比率で複数のリソースにトラフィックをルーティングする場合に使用します。
    -   Amazon Route 53 加重ラウンドロビン
        -   パーセンテージでトラフィックを分散する
    -   Route 53 がエンドポイントをモニタリングするヘルスチェックのステータスを決定する方法
        -   ウェブサービスの場合、HTTP/HTTPS ヘルスチェックエンドポイントが必要であり、HTTP ステータスコード 2xx または 3xx でエンドポイントが応答する必要がある。
        -   また、文字列の一致はレスポンス本文の最初の 5,120 バイト内に出現している必要がある
    -   Route53 プライベートホストゾーンを別の AWS アカウントの VPC に関連付ける
        1. アカウント A の EC2 インスタンスに接続する
        2. アカウント A のプライベートホストゾーンとアカウント B の VPC 間の関連付けの承認を作成する
        3. アカウント B の EC2 インスタンスに接続する
        4. アカウント A のプライベートホストゾーンとアカウント B の VPC 間の関連付けを作成する
        5. アカウント A の EC2 インスタンスに接続する
        6. アカウント A のプライベートホストゾーンとアカウント B の VPC 間の関連付けの承認を削除する
        -   これでアカウント B の EC2 インスタンスはアカウント A のプライベートホストゾーンのレコードを解決できるようになる
-   バックアップ VPN 接続を使用した AWS Direct Connect
    -   コストを抑えながら AWS とオンプレの接続の冗長化を確保する
    -   デフォルトでは AWS は常に Direct Connect 接続を開始してトラフィックを送信することを選択するため、プライマリ接続とバックアップ接続を定義するための追加の構成は不要
-   AWS Direct Connect 仮想インタフェース
    -   AWS のサービス(パブリックリソース)にアクセスするには、パブリック仮想インタフェースを作成し、BGP セッションを確立する必要がある。
        -   AWS のパブリックエンドポイントに専用ネットワークパフォーマンスを利用して DirectConnect 接続できる
    -   また、パブリック仮想インターフェイスを作成して、BGP セッションを確立すると、ルータがルートを学習してデータを転送できる。
    -   インターネットを経由せずに、インターフェイス経由でパブリックネットワークにアクセス出来る
    -   プライベート仮想インターフェイス
        -   プライベート IP アドレスを利用して Amazon VPC にアクセスできる
-   BGP(Border Gateway Protocol) セッション
    -   ISP などの相互接続時にお互いの経路情報をやり取りするために使われる経路制御プロトコル
    -   BGP セッションを確立すると、ルーターがルートを学習してデータを転送できる
-   スタティックルーティング(静的ルート)
    -   経路情報の更新を人間の手で行う
-   Direct Connect ゲートウェイ
    -   Direct Connect ゲートウェイをいずれかの AWS リージョンに作成すると、**AWS の全リージョンに複製**され、相互接続できる
-   パブリック IP アドレスへのアクセス制限は、パブリック IP アドレスが変更される可能性があり、リスクが増大する
-   IAM ポリシー

    ```
    "Condition" : {
    "条件演算子1": {
        "キー1": ["値1","値2"]
        "キー2": "値3"
    },
    "条件演算子2": {
        "キー3": "値4"
    }
    }
    ```

    -   条件演算子 1 と 2 は AND
    -   キー 1 内の値 1 と値 2 は OR
    -   キー 1 とキー 2 は AND
-   認証情報はハードコーディングしないこと
-   グローバルサービスイベント
    -   IAM, Route53, CloudFront, WAF etc
-   DynamodB
    -   DynamoDB のスループット削減
        -   SQS を使用してアーキテクチャを分離し、DynamoDB のスループットを削減してパフォーマンスを維持し、コストを低く抑えることが出来る
        -   読み取りキャッシュに SQS は使用しないこと。ユーザーの応答を非同期にしてしまい、エクスペリエンスとパフォーマンスに影響を与える
    -   DynamoDB のパフォーマンス
        -   DAX(DynamoDB Accelerator) は読み取りパフォーマンスを改善します。
            -   DynamoDB にインメモリキャッシュ型の機能を付加する
    -   DynamoDB クロスリージョンレプリケーション
        -   必要な RPO と RTO と Lastupdated 時間を持つ DR のために役立ち、更新された項目だけをレプリケートするのに役立つ
        -   クロスリージョンレプリケーションを使用すると、ある AWS リージョンから別のリージョンの DynamoDB テーブルへの DynamoDB テーブルデータの定期的なコピーを構成できる
    -   DynamoDB は自動スケーリングされたインスタンスを介した取り込みスループットをサポートできる
        -   RDS では高い読み込みスループットに対応出来ない
    -   データベースの書き込みを一切落とさないために、Amazon SQS を使用して、メッセージの少なくとも 1 回の配信で耐久性を提供し、DynamoDB への書き込みをバッファリングできる
    -   DynamoDB はユーザのプリファレンスを保存するのに最適。
        -   プリファレンス
            -   あるソフトウェアの挙動や表示の仕方などを利用者が好みや必要に応じて変更するための**設定情報や設定画面、設定ファイルなど**のこと
    -   DynamoDB ストリームはデータに加えられた変更に対してリアルタイムにストリームを提供できる
        -   Lambda 関数にてデータを Kinesis Data Streams に共有して異常を検出し、SNS 通知を使用して送信することが出来る
    -   Kinesis Data Streams および Lambda を使用すると、コスト効率の高い取り込みソリューションが可能。また、DynamoDB は、データベース層のスケーリングに役立ち、必要な書き込みパフォーマンスを提供する
    -   DynamoDB の TTL ユースケース
        -   アプリケーションで 1 年間非アクティブ状態が続いた後、ユーザーまたはセンサーのデーターを削除する
        -   Streams および AWS Lambda を使用して、期限切れの項目を Amazon D3 データレイクにアーカイブする
        -   契約上の義務または規制上の義務に従って、機密データを一定期間保持します
-   IAM の権限は委譲できない
    -   明示的な拒否のみ
-   Amazon Data Pipeline
    -   データの移動や変換を簡単に自動化する
-   CUDA(Compute Unified Device Architecture)(クーダ)
    -   NVIDIA が開発・提供している GPU 向けの汎用並列コンピューティングプラットフォーム
-   DHCP オプションセット
    -   VPC 内に関連付ける DHCP 関連の設定のこと
    -   ドメイン名、ドメインネームサーバー、NTP サーバ、NetBIOS ネームサーバーなどが設定できる
    -   変更する場合、既存のものは変更ができないため、新しい DHCP オプションセットを作成し、それを VPC に関連付ける
-   プロビジョンド IOPS SSD(io1) ボリューム
    -   ボリュームサイズに対するプロビジョンド IOPS の最大割合は(50GB 単位)50:1
    -   例) 100GB のボリュームだと最大 5,000 IOPS でプロビジョニングできる
-   ENI(Elastic Network Interface)
    -   プライベート IP アドレス、固定の MAC アドレスなどの属性情報を含めることが可能
    -   ENI を削除することなく EC2 リストアの際に MAC アドレスを引き継ぐことが可能
    -   固定 MAC アドレスを設定して、ライセンスファイルを関連付けることが出来る
-   VPC とサブネットのサイズ設定
    -   各サブネットは CIDR ブロックの最初の 4 つの IP アドレスと最後の IP アドレスは使用できず、インスタンスに割り当てることが出来ない
    -   ELB はトラフィックスパイクのために拡張されると IP アドレスを消費する
-   VPC の予約アドレス
    -   0, 1, 2, 3, 255 が予約されている
-   EC2 削除保護
    -   有効にすると、削除保護を無効にしない限り、インスタンスを終了できなくなる
-   IP マルチキャスト、IP ユニキャスト
    -   マルチキャスト(複数の相手にデータを送信)
    -   単一の相手にデータを送信
-   同時に EC2 インスタンスに割り当てることが出来るのは 1 つの IAM ロールだけ
-   RDS はスケーラブルでなく、費用対効果も高くない
-   Beanstalk
    -   データベースを Elastic Beanstalk 環境に追加する
        -   環境の一部となったデータベースは、環境のライフサイクルに固定される
        -   一度追加すると環境から削除できず、環境を終了するとデータベースインスタンスも終了する
    -   ブルーグリーンデプロイメント
        -   Swap Environment URLs を使用してブルーグリーンデプロイを行う
-   同じ物理ホスト上で実行する必要があるライセンスを持つソフトウェアパッケージを実行する方法
    -   ホストのアフィニティを Host に設定した Dedicatesd Host でインスタンスを実行する
-   VPC に関連したインスタンスのテナンシー(テナント属性)
    -   default
        -   VPC で起動されたインスタンスはデフォルトで共有ハードウェアで実行される
        -   他のアカウントと同居する
    -   dedicated
        -   VPC で起動されたインスタンスはデフォルトでハードウェア専有インスタンス
        -   ただし、インスタンスの起動時に host のテナントを明示的に指定しない場合
    -   ハードウェア専有インスタンスとは
        -   ハードウェアレベルで物理的に分離されインスタンスが実行される
-   VPN は接続をプライベートに保つのに役立ち、費用対効果が高く、プライベートサブネットにも配置できる
-   インスタンスフリート
    -   スポットインスタンスを利用すると、予想外に終了する可能性があるが、インスタンスフリートを利用することで、高い予測性を保証する定義期間(スポットブロック)を使用できる。スポットインスタンスはその期間を過ぎると終了するが、期間が終了する前に中断されることはない
-   データベースのシャード
    -   データベースにおける分割手法の一つで、データを複数のノードのディスクに分割配置することで、データベースへのリクエストを分散し全体のスループットを上げる目的で利用する
-   AWS Snowball
    -   オンプレミスから Amazon S3 に大量のデータを転送するための迅速で費用対効果の高いオプションを提供する
    -   **80TB の容量**を持つ物理アプライアンスを配送し、オンプレミス → クラウド間の回線に依存しないデータ転送を実現
    -   運搬も含めると 10 日程度でデータ移行完了
-   10TB を超える DB を AWS に移行する方法
    1. AWS Snowball を使用してデータを移行する
    1. DB インスタンスを起動する
    1. DB インスタンスに AWS Snowball から S3 経由でデータをロードする
    1. VPN を介してオンプレミスデータベースから DB インスタンスへデータベースのレプリケーションを設定
    1. DNS を変更して DB インスタンスを指定する
    1. レプリケーションを停止する
    -   データ移行後、オンプレとレプリケーションを設定して AWS の DB インスタンスを同期させて切り替えることが出来る
-   AWS Snowmobile
    -   超大容量(PB ペタバイトサイズ)を AWS に移行するために使用するデータ転送サービス
-   オンプレミスのデータセンターと AWS 間の接続について
    -   DirectConnect は実際の工事が必要になることから期間が必要なため、VPN 接続した後 DirectConnect するのが定石
-   デフォルトのルートは変更不可であり、ルーティングテーブルを使用して VPC 内のサブネット間のルーティングを制御することはできない
    -   各ルートテーブルには、VPC 内で通信を有効にするローカルルートが含まれます。このルートは、デフォルトですべてのルートテーブルに追加されます。サブネットルートテーブルまたはメインルートテーブルでこれらのルートを変更または削除することはできません。
-   クロスネットワーク接続
    -   クロスコネクトが 90 日以内に完了しない場合、LOA-CFA(letter of Authorization and Connecting Facility Assignment) が付与した権利は無効になる。有効期限が切れた LOA-CFA を更新するには、AWS Direct Connect コンソールから再度ダウンロードできる
-   AWS 一括請求の利点
    -   組織内のすべてのアカウントの使用量を結合し、リザーブドインスタンスの割引と料金のボリューム割引を両方活用できる
-   AWS Organizations
    -   アカウントを作成すると、ルートアカウントに加えて、OrganizationAccountAccessRole ロールという管理者のアクセス許可を付与する IAM ロールが自動的に作成される
    -   マスターアカウントの IAM はスイッチロールして OrganizationAccountAccessRole を持ったユーザで切り替え先アカウントに入ることができる
    -   組織ですべての機能を有効にして組織単位(OU)を作成し、その OU にサービスコントロールポリシー(SCP)を適用することを推奨
        -   誤って主要なサービスからユーザーを締め出すことの無いように、アカウントを 1 度に少しづつ OU に移動する
    -   組織の一括請求全体に適用されるリザーブドインスタンスの料金のメリット
        -   マスターアカウントのリザーブドインスタンスでリザーブドインスタンスの共有を有効にする(デフォルト設定)
        -   組織配下の別のアカウントに一致する使用状況に対してリザーブドインスタンス割引が適用される
    -   組織間のアカウント移動
        1. 古い組織から メンバーアカウントを削除する
        1. 新しい組織から招待を送る
        1. メンバーアカウントで新しい組織への招待を受け入れる
    -   「createdBY」 タグ：誰がリソースを作成したかを追跡する AWS が定義するタグ
        -   マスターアカウントで「AWS generated tags」を有効化する
        -   タグを使用してリソースを整理し、コスト配分タグを使用して AWS のコストを詳細レベルで追跡する
    -   AWS には 2 つのタイプのコスト配分タグがある
        1. AWS generated tags
            - AWS によって AWS generated tags が定義、作成適用される
            - マスターアカウントで「AWS generated tags」を有効化する
        1. ユーザー定義タグ
            - ユーザーが定義、作成、適用する
-   SCP(Service Control Policy)
    -   SCP はユーザーの IAM ポリシーを制御しない。アカウントがどのアクションを定義するかのガードレールを定義するまで
    1. SCP を定義する
    1. さらに、ユーザーまたはロールに IAM ポリシーを追加して、実際にアクセス権限を付与する必要がある
    -   SCP と IAM のポリシー双方でアクションが許可されている場合のみ、アクセス許可される
-   Amazon RDS on VMware データベースを AWS へ
    -   ワンクリックで実行できるレプリケーションを使い、オンプレミス databases → Amazon RDS onVMware → Amazon RDS と移行できる
-   スポットインスタンスはリソースの確保を保証しない
-   リザーブドインスタンスはピーク時以外でも利用する事になりコストが増える
-   RDS への読み取りトラフィックにリードレプリカを使うことで DB インスタンスのパフォーマンスと耐久性が向上する
-   ElastiCache のインメモリキャッシュを利用して、ネットワークのレイテンシを軽減し、データベースの負荷を軽減する
-   ElastiCache は永続的なメタデータ情報の保存には適さない
-   EFS(Elastic File System)
    -   EFS ボリュームが暗号化されていないことによってもたらされるセキュリティに対処するための措置
        -   転送時の暗号化
            -   ファイルシステムをマウントするとき、伝送中のデータの暗号化を有効にできる
        -   保管時のデータの暗号化
            -   EFS ファイルシステムを作成するときに有効にする
    -   EFS は S3 と比較して高価であり、CloudFront はオリジンとして EFS をサポートしていない
-   AWS Rekognition
    -   イメージや保存済みのビデオから有名人を認識できる
    -   また、Lambda を使用するとスケーラブルでコスト効率の高いアプリケーション層が得られる
-   Aurora サーバレス
    -   予測不可能なワークロードに適する
-   Amazon RDS on VMware
    -   管理対象
        -   オンプレミスのオペレーティングシステムとデータベースエンジンへのパッチ適用
        -   オンプレミスと AWS 内両方のデータベースでの保持ポリシーに基づくオンラインバックアップ
        -   オンプレミスとクラウドのバックアップからのポイントインタイムの復元
        -   オンプレミスと AWS 内でのリードレプリカ作成
        -   データベースのストレージ
        -   CPU、メモリ のスケーリングが自動化
    -   非サポート
        -   **マルチ AZ 配置**
-   AWS Server Migration Service(AWS SMS)
    -   オンプレミスの VMware vSphere, Microsoft Hyper-V/SVMM を AMI として AWS への移行を自動化する
    -   AMI として段階的にレプリケートし、EC2 にデプロイする
-   Amazon Redshift
    -   Redshift は**シングル AZ のみをサポート**する
    -   Redshift クラスターは自動スナップショットを作成出来、障害が発生すると、S3 に保存されたスナップショットから新しい Redshift クラスターを作成出来る
    -   S3 より保管コストが高い
    -   Redshift のワークロード管理(WLM)
        -   いくつのクエリーキューが処理に利用可能か
        -   およびそれぞれのキューがどのようにそれらのキューにルーティングされるか
        -   キュー間でのメモリ配分
        -   キューにおけるクエリータイムアウト設定
        -   などを設定できる
-   6 つの一般的なアプリケーション移行ステージ
    1. リホスト(リフトとシフト)(Re-host)
        - そのまま持っていく
    2. プラットフォーム再編(リフト、ティンカー、シフト)(Replatform)
        - コアアーキテクチャを変更することなく**いくつかクラウド最適化**する
        - DB のマネージドサービスへの移行、あるいは Elastic Beanstalk のような完全マネージド型プラットフォームへのアプリの移行
    3. 再購入(ドロップアンドショップ)(Replace)
        - 別の製品を購入する
    4. リファクタリング／再設計(Refactor)
        - この解決策は元も高コスト
    5. 使用停止(Retire)
    6. 保持(Retain)
-   AWS Trusted Advisor
    -   使用率とコスト削減のチェック
    -   リアルタイムアラートは提供しない
    -   Trusted Advisor で全ての項目をチェックするためには、ビジネスサポートプラン以上を契約する必要がある
    -   CloudWatch + Lambda + SNS は、TrustedAdvisor サービスの制限値の確認、監視、通知に役立つ
-   CloudWatch Events をトリガーにした S3 オブジェクト ACL の自動検出および修正
    1.  S3 のオブジェクトレベルのログを有効にする
    1.  CloudTrail ログでパブリック読み取りアクセス許可を持つ PutObjec API 呼び出しが検出されたときに、SNS トピックを使用して通知するように Amazon CloudWatch Events を設定する
    1.  AWS Labmda 関数を呼び出して S3 バケットを保護する Amazon CloudWatch Events ルールを設定する
-   クラスタープレイスメントグループと拡張ネットワーキング
    -   クラスタープレイスメントグループは、単一のアベイラビリティゾーン内のインスタンスを論理的にグループ化したもの。低ネットワークレイテンシー、高ネットワークスループット、またはその両方から利点が得られるアプリケーションや、ネットワークトラフィックの大部分がグループのインスタンス間で発生する場合、クラスタープレイスメントグループが推奨される
    -   プレイスメントグループへの既存のインスタンスの移動、別のプレイスメントグループへのインスタンスの移動、またはプレイスメントグループからのインスタンスの削除を行うことが出来る。インスタンスの削除をする必要はなく、Stopped 状態にすればプレイスメントグループに移動できる
    -   拡張ネットワーキングは、高い帯域幅、1 秒あたりのパケットの高いパフォーマンス、常に低いインスタンス間レイテンシーを実現する
    -   プレイスメントグループには 1 つのアカウントの 1 リージョン内で固有の名前を付ける必要がある
-   AWS Application Discovery Service
    -   サーバーのホスト名、IP アドレス、MAC アドレス、CPU 割り当て、ネットワークスループット、メモリ割り当て、ディスクリソース割り当てといった静的設定内容を含む様々なデータが収集される
    -   CPU 使用率やメモリ使用率といったリソース使用率のメトリクスも収集できる
-   Amazon Athena は、標準 SQL を使用して、Amazon S3 でのデータの直接分析を可視化するインタラクティブなクエリサービス
-   DDoS およびアプリケーションレイヤーの攻撃からの保護
    -   Route53 を使用した AWS Shield と、 CloudFront を使用した AWS WAF は EC2 インスタンスを DDoS およびアプリケーションレイヤーの攻撃から保護する
-   ELB
    -   ALB
        -   レイヤー 7 のトラフィックのみで機能する
    -   NLB
        -   プロトコルが HTTP(S)以外の TCP または UDP の場合、こちら一択
        -   レイヤー 4 のトラフィックのみで機能する
        -   WAF はアタッチ出来ない
-   AWS Schema Conversion Tool(AWS SCT)
    -   セカンダリインデックス、シーケンス、ストアドプロシージャ、トリガー、シノニム、ビューなど)を AWS の DB に移行する
    -   データベースエンジン間で既存のデータベーススキーマを変換できる
    -   ソースデータベース：ターゲットデータべース
        -   SQL Server → RDS MySQL, PostgeSQL, Aurora PostgreSQL etc
        -   Oracle → Aurora MySQL, Aurora PostgreSQL, MySQL, Oracle, PostgreSQL etc
-   AWS Database Migration Service(AWS DMS)
    -   **データ**を移行するサービス
    -   リレーショナルデータベースサービスなどのデータストアの移行に使用できるウェブサービス
    -   1 回限りの移行を実施でき、継続的な変更をレプリケートしてソースとターゲットの同期を維持することが出来る
    -   データに関係ない(セカンダリインデックス、シーケンス、ストアドプロシージャ、トリガー、シノニム、ビューなど)は移行しない
    -   唯一の要件はエンドポイントの一つが AWS のサービス上にあること
        -   AWS DMS を使用して、オンプレミスのデータベースから別のオンプレミスのデータベースに移行することはできない
    -   Elasticsearch のソースはサポートしない
-   データベースエンジンを変更する場合の流れ
    1. ローカルで AWS Schema Conversion Tool(AWS SCT)を使用してデータベーススキーマを新しいプラットフォームに変換
        - 残るはデータのみになる
    1. 次に、AWS DMS を使用してデータをターゲットデータベースへ移行する
-   Amazon Connect は呼び出しの受信、コンタクトフローの作成、処理の拡張に対応できる
    -   Amazon Lex を対応フローに組み入れることで、自然応答が自然な会話に変わる
        -   Amazon lex
            -   音声やテキストを使用して、任意のアプリケーションに対話型インターフェイスを構築する
-   CloudFormation
    -   テンプレート
        -   スタックの設計図
            -   どのリソースを構築するか(状態)を記述
            -   リソースの依存関係は AWS Cloudformation が自動判別
    -   スタック
        -   単一のユニットとして管理できる AWS リソースのグループ
        -   スタックポリシー
            -   スタックの更新中にスタックのリソースが意図せずに変更/削除されるのを防ぐ
            -   指定したリソースに対して実行できるアクションを定義する JSON ドキュメント
            -   例) RDS リソースに対する変更を禁止するポリシー
    -   使用できる主なセクション
        -   Description
            -   テンプレートの説明
        -   Parameters
            -   テンプレートに渡す値
        -   Mappings
            -   キーと値のテーブル
        -   Conditions
            -   リソース作成などを制御する条件
        -   Resources
            -   スタックの起動するリソースやプロパティを指定
        -   Outputs
            -   スタック構築後に表示・取得した値や他スタックとの連携の為の出力を指定
    -   組み込み関数
        -   Ref
            -   指定したパラメータまたはリソースの値を返す
        -   Fn::Join
            -   一連の値を特定の区切り文字で区切って 1 つの値に追加
        -   Fn::GesAZs
            -   指定されたリージョンのアベイラビリティゾーンを含んだ配列を返す
    -   Elastic Beanstalk, Step Functions は CloudFormation に依存してリソースをプロビジョニングする
    -   誤ってリソースを削除させないためには、DeletionPolicy 属性を使用する
    -   クロススタック参照
        -   あるスタックから別のスタックへリソースをエクスポートする
            -   必要なリソース出力を他のスタックから参照でき、1 つのスタックに全てのリソースを含めなくてよくなる
-   IAM ポリシーを使用して、タグ付けされた AMI からのみ EC2 インスタンスを起動するようにユーザーまたはサービスを制限できる
-   AWS Config を使用して、未承認の AMI で起動されたインスタンスをチェックするルールを定義できる
-   Amazon Inspector
    -   自動セキュリティ診断サービス
    -   EC2 にエージェントを導入し、プラットフォームの脆弱性を診断するホスト型診断サービス
    -   ルールパッケージ
        -   CVE(Common Vulnerabilities&Exposures 共通脆弱性識別子)
        -   CIS(Center for Internet Security) 米国のインターネットセキュリティ標準化団体
            -   OS のセキュリティベンチマーク
        -   セキュリティのベストプラクティス
        -   実行時の振る舞い分析
-   AWS Lambda 関数のパフォーマンス向上
    1.  実行コンテキストの再利用を活用して関数のパフォーマンスを向上させる
        -   関数の同じインスタンスで処理された後続の呼び出しは、これらのリソースを再利用できる
    2.  Lambda では、構成されているメモリの量に比例して CPU パワーが直線的に割り当てられる
-   Transit VPC
    -   グローバルネットワーク中継センターを作成するために、地理的に分散した複数の VPC を接続する戦略
    -   オンプレミスがリージョンを超えて VPC に接続することまではサポートしない
    -   今後は Transit Gateway 　を使うので覚えなくても良いかも
-   Transit Gateway
    -   VPC とオンプレミスネットワークを単一のゲートウェイに接続できるようにするサービス
-   AWS SAM を使用して、サーバレスアプリケーションをデプロイする場合、組み込みの CodeDeploy を使用して新しいバージョンの Lambda 関数をデプロイし、徐々にトラフィックを新しいバージョンにシフトし、コードを検証することができる
-   Amazon EBS-backed AMI を使用するインスタンスの場合、インスタンスを停止して再起動することで、障害が発生したホストから正常なホストへと切り替わり、障害を復旧させることが出来る
    -   インスタンスの再起動ではホストが変更されない
-   vpc エンドポイントから S3 へのアクセス制限のベストプラクティス
    -   特定のバケット(awsexamplebucket1)に対するアクセスを vpc エンドポイント ID が vpce-1a2b3c4d からのアクセス以外は拒否に制限するポリシーを設定する

    ```json
    {
        "Version": "2012-10-17",
        "Id": "Policy1415115909152",
        "Statement": [
            {
                "Sid": "Access-to-specific-VPCE-only",
                "Principal": "*",
                "Action": "s3:*",
                "Effect": "Deny",
                "Resource": [
                    "arn:aws:s3:::awsexamplebucket1",
                    "arn:aws:s3:::awsexamplebucket1/*"
                ],
                "Condition": {
                    "StringNotEquals": {
                        "aws:SourceVpce": "vpce-1a2b3c4d"
                    }
                }
            }
        ]
    }

-   Amazon Aurora Global Database
    -   複数の AWS リージョンにまたがり、低レイテンシーのグローバル読み取りを可能にする
    -   1 つのリージョンにプライマリ(読み書き操作) DB クラスターがあり、異なるリージョンにセカンダリ(読み取り専用) DB クラスターがある
-   API Gateway
    -   API キャッシュを有効にすると、Lambda 関数の呼び出し回数を減らせる
-   AWS Glue
    -   AWS Glue は、分析、機械学習、アプリケーション開発のためのデータの検出、準備、結合を簡単に行える、サーバーレスデータ統合サービス

</div>
</details>