AWS 認定ソリューションアーキテクト – プロフェッショナル 合格への道#17

#はじめに
いきなり気温が上がって急に夏っぽくなりましたね。
早くコロナが終わってほしい。

#学習
## AWSorganizationを使ってアカウント間のリソースシェアをしたい
### AWS Resource Access Manager
[新サービス]でた！AWS Resource Access Manager(RAM)でクロスアカウントのリソース共有が可能に #reinvent
https://dev.classmethod.jp/articles/reinvent-2018-ram/

###組織で信頼されたアクセスをサポートするサービス
https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/services-that-can-integrate.html

####AWS Artifact および AWS Organizations
> AWS Artifact は、ISO レポートや PCI レポートなど、AWS セキュリティコンプライアンスレポートをダウンロードできるサービスです。マスターアカウントのユーザーは、AWS Artifact を使用して、新しいレポートやアカウントが追加されたときでも、組織のすべてのメンバーアカウントに代わって契約を自動的に受諾できます。メンバーアカウントのユーザーは、契約を表示およびダウンロードできます。

####AWS CloudFormation StackSets と AWS Organizations
>AWS CloudFormation StackSets を使用すると、1 回のオペレーションで、複数のアカウントとリージョンにわたってスタックを作成、更新、または削除できます。

#### AWS CloudTrail および AWS Organizations
> AWS CloudTrail は、AWS アカウントのガバナンス、コンプライアンス、および運用とリスクの監査を行えるように支援する AWS のサービスです。AWS CloudTrail を使用すると、マスターアカウントのユーザーは組織の証跡を作成して、組織のすべての AWS アカウントに関するすべてのイベントをログに記録できます。組織の証跡は、組織内のすべてのメンバーアカウントに自動的に適用されます。メンバーアカウントは組織の証跡を表示できますが、これを変更または削除することはできません。デフォルトでは、メンバーアカウントは Amazon S3 バケット内にある組織の証跡のログファイルにはアクセスできません。これにより、組織内のすべてのアカウントに対してイベントのログ記録戦略を一律に適用および実施できます。

#### AWS Compute Optimizer および AWS Organizations
> AWS Compute Optimizer は、 AWS リソースの設定と使用率のメトリクスを分析するサービスです。リソースの例には、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスや Auto Scaling グループがあります。Compute Optimizer は、リソースが最適かどうかを報告します。また、コストを削減し、ワークロードのパフォーマンスを向上させるための最適化に関する推奨事項を生成します。

#### AWS Config および AWS Organizations
> AWS Config のマルチアカウント、マルチリージョンのデータ集約を使用すると、複数のアカウントと AWS リージョンの AWS Config データを 1 つのアカウントに集約できます。マルチアカウント、マルチリージョンのデータ集約は、中央の IT 管理者がエンタープライズの複数の AWS アカウントのコンプライアンスをモニタリングするうえで役立ちます。アグリゲータは、複数のソースアカウントとリージョンから AWS Config データを収集する、AWS Config のリソースタイプです。集約された AWS Config データを表示するリージョンで、アグリゲータを作成します。アグリゲータの作成中、個々のアカウント ID、または組織の追加を選択できます。

#### AWS Directory Service および AWS Organizations
> Microsoft Active Directory 向け AWS Directory Service あるいは AWS Managed Microsoft AD を使用すると、Microsoft Active Directory (AD) をマネージドサービスとして実行できます。AWS Directory Service では、AWS クラウド内のディレクトリを簡単にセットアップして実行したり、AWS リソースを既存のオンプレミス Microsoft Active Directory に容易に接続できます。また、AWS Managed Microsoft AD は AWS Organizations と密接に統合して、複数の AWS アカウントとリージョン内の任意の VPC 間でシームレスにディレクトリを共有できます。

#### AWS Firewall Manager および AWS Organizations
> AWS Firewall Manager は、アカウントやアプリケーションにウェブアプリケーションのファイアウォールルールを一元的に設定、管理するセキュリティ管理サービスです。AWS Firewall Manager では、AWS 組織のすべてのアカウントの Application Load Balancer および Amazon CloudFront ディストリビューションに対して、一度に AWS WAF をロールアウトできます。AWS Firewall Manager を使用してファイアウォールのルールを一度だけ設定し、新しいリソースやアカウントが追加されているかどうかにかかわらず、組織内のすべてのアカウントやリソースに自動的に適用します。

#### AWS ライセンスマネージャーおよび AWS Organizations
> AWS ライセンスマネージャーは、ソフトウェアベンダーのライセンスをクラウドに移動するプロセスを効率化します。AWS でクラウドインフラストラクチャを構築するときに、Bring-Your-Own-License (BYOL) による機会を使用してコストを削減できます。つまり、クラウドリソースで使用するように既存のライセンスインベントリの用途を変更します。管理者は、ライセンスの使用でルールベースのコントロールを使用することにより、新規および既存のクラウドのデプロイにソフト制限またはハード制限を設定し、準拠していないサーバーの使用を事前に停止できます。AWS ライセンスマネージャーを AWS Organizations にリンクすることで、組織全体でコンピューティングリソースのクロスアカウントの検出を有効にすることができます。

#### AWS RAM および AWS Organizations
> AWS Resource Access Manager (AWS RAM) を使用すると、自分が所有している AWS リソースを指定して、他の AWS アカウントと共有できます。これは一元管理されたサービスであり、これにより、複数のアカウント間でさまざまなタイプの AWS リソースを一貫して共有できます。

#### AWS Service Catalog および AWS Organizations
> AWS Service Catalog では、AWS での使用が承認された IT サービスのカタログを作成および管理できます。AWS Service Catalog と AWS Organizations の統合により、組織全体でポートフォリオの共有と製品のコピーが簡略化されます。AWS Service Catalog の管理者は、ポートフォリオの共有時に AWS Organizations で既存の組織を参照し、組織のツリー構造の信頼された組織単位 (OU) でポートフォリオを共有できます。これにより、ポートフォリオ ID を共有する必要がなくなり、受信側アカウントはポートフォリオをインポートするときに手動でポートフォリオ ID を参照する必要がなくなります。このメカニズムを介して共有されたポートフォリオは、AWS Service Catalog で管理者のインポートされたポートフォリオビューに、アカウントに対して共有されているものとしてリスト表示されます。

#### サービスクォータと AWS Organizations
> サービスクォータは、一元的な場所からクォータを表示および管理できる AWS のサービスです。クォータ (制限とも呼ばれます) は、AWS アカウントのリソース、アクション、および制限の最大値です。サービスクォータが AWS Organizations に関連付けられている場合、クォータリクエストテンプレートを作成して、アカウントの作成時に自動的にクォータの引き上げをリクエストできます。

#### AWS シングルサインオン および AWS Organizations
> AWS シングルサインオン (AWS SSO) は、すべての AWS アカウントとクラウドアプリケーションにシングルサインオンサービスを提供します。AWS Directory Service から Microsoft Active Directory に接続され、そのディレクトリのユーザーは、既存の Active Directory ユーザー名とパスワードを使用して、パーソナライズされたユーザーポータルにサインインできるようになります。ユーザーは、ポータルから、そのポータルで指定したすべての AWS アカウントとクラウドアプリケーションにアクセスできます。

#### AWS Systems Manager および AWS Organizations
> AWS Systems Manager は、AWS リソースの可視性と制御を可能にする一連の機能です。これらの機能の 1 つである Systems Manager Explorer は、AWS リソースに関する情報をレポートするカスタマイズ可能なオペレーションダッシュボードです。組織 と Systems Manager Explorer を使用して、組織内のすべての AWS アカウント間でオペレーションデータを同期できます。

#### タグポリシーと AWS Organizations
> タグポリシーはポリシーの一種で、組織のアカウント内のリソース間でタグを標準化するのに役立ちます。

##シークレットとパラーメータストアの使い分け
AWSのParameter StoreとSecrets Manager、結局どちらを使えばいいのか？比較
https://qiita.com/tomoya_oka/items/a3dd44879eea0d1e3ef5

> RDS for MySQL、PostgreSQL、AuroraのDB接続情報(パスワード)の自動更新要件があるのであれば、
Secrets Managerの方が便利かもしれません。
が、有料というところが気になりますね。

>> 構成とシークレット用の単一のストアが必要な場合は、パラメーターストアを使用できます。ライフサイクル管理を備えた専用のシークレットストアが必要な場合は、AWS Secrets Managerを使用

基本的にはシークレットチョイのほうが有料なのでチョイスしよう。

##リモートネットワークをAmazon VPC環境に接続するための接続設定

### Site-to-Site VPN 単一および複数接続の例
> VPC には仮想プライベートゲートウェイが関連付けられていて、リモートネットワークにはカスタマーゲートウェイが使用されています。カスタマーゲートウェイデバイスは、Site-to-Site VPN 接続を有効にするように設定する必要があります。ルーティングを設定して、VPC からユーザーネットワークに向けてのトラフィックが仮想プライベートゲートウェイにルーティングされるようにします。

![ssv.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/86c49fd1-f14b-40b3-3d10-4a6c2ac014ae.png)

### トランジットゲートウェイを持つ単一の Site-to-Site VPN 接続
> VPC には トランジットゲートウェイ が関連付けられていて、リモートネットワークにはカスタマーゲートウェイが使用されています。カスタマーゲートウェイデバイスは、Site-to-Site VPN 接続を有効にするように設定する必要があります。ルーティングを設定して、VPC からユーザーネットワークに向けてのトラフィックが トランジットゲートウェイ にルーティングされるようにします。

![ssnt.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/3d54f89a-1d5c-2ff7-ed69-592f0793c0ca.png)

### 複数の Site-to-Site VPN 接続
> VPC には仮想プライベートゲートウェイが関連付けられていて、リモートネットワークにはカスタマーゲートウェイが使用されています。カスタマーゲートウェイは、Site-to-Site VPN 接続を有効にするように設定する必要があります。ルーティングを設定して、VPC からユーザーネットワークに向けてのトラフィックが仮想プライベートゲートウェイにルーティングされるようにします。

![ssnvp.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/cf3f9c9a-d925-3bbf-6f6e-a517704c5d0a.png)

### トランジットゲートウェイを持つ複数の Site-to-Site VPN 接続
> VPC には トランジットゲートウェイ が関連付けられていて、リモートネットワークにはカスタマーゲートウェイが使用されています。カスタマーゲートウェイは、Site-to-Site VPN 接続を有効にするように設定する必要があります。ルーティングを設定して、VPC からユーザーネットワークに向けてのトラフィックが トランジットゲートウェイ にルーティングされるようにします。

![ssnvpt.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/213a662e-77d9-e7f1-accd-de7d665dcd61.png)!


### VPN CloudHub を使用して安全なサイト間通信を提供する
> 複数の AWS Site-to-Site VPN 接続がある場合は、AWS VPN CloudHub を使用して、安全なサイト間通信を提供することができます。これで、リモートサイトを有効にして、VPC のみとではなく、相互に通信します。VPN CloudHub は、VPC の有無にかかわらず使用できるシンプルなハブアンドスポークモデルで動作します。この設計は、複数のブランチオフィスと既存のインターネット接続があり、リモートオフィス間でプライマリ接続またはバックアップ接続を実現するために、便利でコストを抑えられる可能性のあるハブアンドスポークモデルを実装したいと考えている場合に適しています
サイト間で IP 範囲が重複することは許可されません

![cloudhub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/a6d6a037-431b-401f-fbc4-da927fc3255e.png)

サイト間で通信できるやつ

### 冗長な Site-to-Site VPN 接続を使用してフェイルオーバーを提供する
> カスタマーゲートウェイデバイスが使用できなくなった場合に接続が失われるのを防ぐために、2 番目のカスタマーゲートウェイデバイスを使用して、VPC および仮想プライベートゲートウェイへの 2 番目の Site-to-Site VPN 接続を設定できます。冗長な Site-to-Site VPN 接続とカスタマーゲートウェイデバイスを使用すれば、1 つのデバイスでメンテナンスを実行しながら、2 番目のカスタマーゲートウェイの Site-to-Site VPN 接続を通してトラフィックの送信を継続することができます。

![vpnj.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/f62a0e48-fa2d-e263-db9d-2100ed63f3dd.png)

### オンプレミスとVPC間の接続方法整理
https://d1.awsstatic.com/webinars/jp/pdf/services/201910_AWSInnovate_Network.pdf

#### 拠点からパブリックインターネット経由で接続
通信要件に合わせて暗号化を使用
![VPN.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/e274ca95-10e9-885a-44d6-1dd861df18d4.png)

#### 複数拠点からセキュアに接続
DXとVPNを使用することでメリハリ

![セキュアに.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/55fbb4f6-9b40-94cf-4015-10421958fdee.png)

* クライアントVPN
    * お客様のクライアントをOpen VPNベースのVPNを介してAWSへプライベートに接続するサービス
    * 自宅や出張先からアクセスしたい
    * Active Directory を使用したクライアント認証と証明書ベースの認証をサポート
    * VPCから他のVPC、AWSの各種サービス、オンプレミス、インターネットにシームレスにアクセス
* サイト間VPN
    * お客様のデータセンターやオフィスをIPsec VPNを介してAWSへプライベートに接続するサービス
    * AWS VPNはVirtual Private GatewayもしくはTransit Gatewayと接続
    * Classic VPNとAWS VPNが存在
        * Classic VPNからAWS VPNへの移行
![サイト間.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/c52cd4ba-5e9a-4872-d60e-b6629c2d0465.png)

* 専用線
    * お客様のデータセンターやオフィスを専用線を介してAWSへプライベートに接続するサービス
    * オンプレミスから専用線を介してDirect Connect ロケーションに接続
        * Direct Connect ロケーション＝AWSクラウドへの物理的な接続を提供
        * 物理接続を“Connections”、または”接続“と呼ぶ
    * Connectionは1Gbpsまたは10Gbpsのポート速度をサポート
    * ルーティングはBGPのみ
    * 接続先は以下の3つ
        * VPC(プライベート接続)
        * AWSクラウド(パブリック接続)
        * TGW用のDXGW(トランジット接続)
![DX構成.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/c19a9575-94cb-2830-446d-3cb77b3dc883.png)

![VIF.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/b7bbc089-e475-629b-6956-bdb4bf4ba40d.png)

* VPCへプライベートアドレスを介した接続を提供するのがPrivate VIF
* AWSの全リージョンへパブリックIPを介した接続を提供するのがPublic VIF
* Transit Gateway用のDirect Connect Gatewayへの接続を提供するのがTransit VIF
* 同一Connection上にPublic VIF Private VIF Transit VIFの混在が可能

----
* クラウドハブ
    * 本社、支社、データセンター間での通信（ハブアンドスポーク)
    * 一つのCloudHubにVPNとDirectConnectを含めることが可能
    * 一つのVPCに割り当て
    * サイト間での IP 範囲の重複不可
    * Direct Connect Gatewayでは非対応

* ![cloudhub間.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/97abf610-beaf-f7bd-5442-0c77a97301a2.png)
![比較.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/9cbbbbdb-9407-1a0b-48e7-0ca155d6e6ec.png)
![冗長化.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/5256f203-f2f3-18bd-403c-68c9e4570010.png)

#### 拠点から複数システム毎に異なるVPCに接続
DXゲートウェイでシステムごとのVPCへ接続

![DXGTW.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/813c1f04-603b-5954-4ee1-8c452c2a7255.png)

* 9本専用線を引かなくてもよい

![DXユースケース.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/be98df13-2d76-f043-95e7-4bfed1e2d720.png)

+ コネクションと接続先VPCは別垢でも可能
+ VIFとDXはセットで所有

![DXゲートウェイ冗長化.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/7eee37f8-73a5-0af2-ee7b-6ae69801164e.png)
専用線を二本引いて冗長化

![冗長化VPN.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/cd6885fa-b341-d5b6-6082-62a80ec6195c.png)
設定注意

![クラウドハブとは違うよ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/f09c948f-af06-8d2a-00fc-dab609b1704e.png)
クラウドハブとは違うよ

* Direct Connect Gateway メリット
    * 仮想インターフェイス(VIF)の数を節約可能
    * VPC増加時には、新たな仮想プライベートゲートウェイ(VGW)をDirectConnect Gatewayにアタッチするだけで通信可能
    * Direct Connect Gatewayの利用自体は無料（仮想インターフェイスの転送料金のみ）
    * 複数リージョンのVPCにAWSバックボーンを利用して閉域接続可能
    * 通常のDirect Connect仮想インターフェイス利用時には、VPCの数に関わらず「とりあえず間に挟む」事で後の拡張性が格段に増す
    * 設定時には、すべてのVPC CIDRをお客様ルーターにBGPで広報する
    * 移行時に、現在のプライベートVIFを使いまわしする事はできない
    * 特定のVPC CIDRのみと通信させたい場合「許可されたプレフィックス」にて、フィルターを設定することができる

![tangitgtw.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/b1da196c-c035-d7c7-82c0-5b2ce8fc8035.png)
接続するトランジットゲートウェイとVPCは別垢でも可能。メンバーアカウントでも可能ってこと
冗長化に関してはDX部分は変わらず、VPNの接続先がTGWになる


#### 共通リソースをAWS上に集約
トランジットゲートウェイで経路を集中管理。柔軟な経路設定

## カスタム ID ブローカーアプリケーションを作成するユーザーのフェデレーション
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html
> ID ストアに SAML 2.0 との互換性がない場合、カスタム ID ブローカーアプリケーションを作成して同じような機能を実行できます。ブローカーアプリケーションはユーザーを認証し、そのユーザー用に一時的な認証情報を AWS に要求して、それをユーザーに提供し AWS リソースにアクセスできるようにします。

![IDB.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/8be6ce16-f775-9942-2ed4-3b49f98941d4.png)

## DX使い方
* Direct Connectが機能するにはVGWのルート伝播を有効にする必要があります。
* ルートテーブルを変える

## セカンダリインデックス
テーブル構成時に設定する項目

## EMRのコンポーネントおさらい
Amazon EMR の概要
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-overview.html

###クラスターおよびノードについて
> Amazon EMR の中心的なコンポーネントは、クラスターです。クラスターとは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのコレクションのことです。クラスター内の各インスタンスは、ノードと呼ばれます。各ノードには、クラスター内での役割があり、ノードタイプと呼ばれます。Amazon EMR は、各ノードタイプにさまざまなソフトウェアコンポーネントもインストールし、Apache Hadoop などの分散型アプリケーションでの役割を各ノードに付与します

* クラスター
    * ノード
        * マスターノード
            * 処理を行うために他のノード間でのデータおよびタスクの分散を調整するソフトウェアコンポーネントを実行することで、クラスターを管理するノードです。マスターノードは、タスクのステータスを追跡し、クラスターの状態を監視します。すべてのクラスターにはマスターノードがあり、マスターノードのみで 1 つのノードクラスターを作成することができます。
        * コアノード
            * タスクを実行し、クラスター上の Hadoop Distributed File System (HDFS) にデータを保存するソフトウェアコンポーネントを持つノードです。マルチノードクラスターには、少なくとも 1 つのコアノードがあります。
        * タスクノード
            * タスクを実行するのみで、HDFS にデータを保存しないソフトウェアコンポーネントを持つノードです。タスクノードはオプションです。

コアとマスターで形成。足りないときにタスクノード

![EMR.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/0979e4a9-9e33-9c94-441b-9d5efe059d42.png)

## グローバルテーブル: DynamoDB を使用した複数リージョンレプリケーション
> Amazon DynamoDB グローバルテーブルは、マルチリージョンにマルチマスターデータベースをデプロイするための完全マネージド型のソリューションです。独自のレプリケーションソリューションを構築および管理する必要はありません。グローバルテーブルを使用すると、そのテーブルの利用を許可する AWS リージョンを指定できます。DynamoDB では、これらのリージョンに同一のテーブルを作成するのに必要なすべてのタスクを実行し、変更中のデータをすべてのテーブルに伝達します。

### Amazon DynamoDB Cross-region Replicationを試してみた
https://dev.classmethod.jp/articles/dynamodb-crossregion-replication/

> クロスリージョンレプリケーションとトリガーの両方は、Streams機能を使用して構築されています

## リクエスタ支払いバケット
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/RequesterPaysBuckets.html
> 一般に、Amazon S3 のバケットのストレージおよびデータ転送にかかるコストはすべて、そのバケット所有者が負担します。ただしバケット所有者は、バケットをリクエスタ支払いバケットとして設定することができます。リクエスタ支払いバケットの場合、リクエストおよびバケットからのデータのダウンロードにかかるコストは、所有者でなくリクエストを実行したリクエスタが支払います。データの保管にかかるコストは常にバケット所有者が支払います。

**バケットでリクエスタ支払いを有効化すると、そのバケットには匿名アクセスができなくなります。**

## オンプレミス環境で利用しているパブリックIPv4アドレス範囲をオンプレミスネットワークからVPCに移行する方法
> 「BYOIP」を利用して、アドレス範囲をAWSに持ち込むと、アドレスプールとしてアカウントに表示され、そこからElastic IPアドレスを作成し、EC2インスタンス、NATゲートウェイ、ネットワークロードバランサーなどのAWSリソースで使用できます。

そのためのプロセスとしては、アドレス範囲は、地域インターネットレジストリ (RIR、Regional internet registry) に登録する必要があります。アドレス範囲は、事業体または機関エンティティについて登録を受ける必要があり、個人については登録を受けられない場合があります。

Route Origin Authorization (ROA) は、利用している RIR を介して作成できる、経路広告に関する電子署名付き証明書です。これには、アドレス範囲、そのアドレス範囲を公開することを許可された自律システム番号 (ASN)、および有効期限が含まれています。ROA は Amazon が特定の AS 番号のアドレス範囲を公開することを承認します。ただし、その AWS アカウントに対して、アドレス範囲を AWS に持ち込むことを承認するわけではありません。AWS アカウントに対してアドレス範囲を AWS に持ち込むことを承認するには、アドレス範囲について Registry Data Access Protocol (RDAP) の注釈で自己署名付きの X509 証明書を発行する必要があります。証明書にはパブリックキーが含まれており、AWS はこれを使用してあなたが提供する認証コンテキスト署名を確認します。プライベートキーを安全に管理し、これを使用して認証コンテキストメッセージを署名する必要があります。

## IAM ID プロバイダーの作成と管理
### SAML 2.0 ベースのフェデレーションについて
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_providers_saml.html
![SAML.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/4a58a184-cef9-691f-1742-42cac6d90d00.png)

* IAM ID プロバイダ
    * OpenID Connect（OIDC）ID プロバイダ
        * AWS リソースへのアクセスを必要とするモバイルアプリやウェブアプリケーションを作成するときに、カスタムサインインコードの作成や独自のユーザー ID の管理をしない場合に役立ちます
        * API.CLI.console
    * IAM SAML ID プロバイダ
        * SAML 互換 IdP 間 (Shibboleth か Active Directory フェデレーションサービスと IAM など) の信頼を確立し、組織内のユーザーが AWS リソースにアクセスできるようにする場合は、AWS ID プロバイダーを使用します。IAM の SAML プロバイダーは IAM 信頼ポリシーでプリンシパルとして使用されます。

## SAML 2.0 フェデレーティッドユーザーが AWS マネジメントコンソールにアクセス可能にする
> フェデレーティッドユーザーが AWS マネジメントコンソール にアクセスできるように、SAML 2.0 互換 ID プロバイダー (IdP) および AWS を設定するロールを使用します。このロールは、コンソールでタスクを実行するユーザーアクセス権限を付与します。AWS にアクセスするためのその他の方法を SAML フェデレーティッドユーザーに付与する場合は、以下のトピックの 1 つを参照してください。
![samle.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/6ec5b0ca-882b-5699-5f71-6e25fc3f55ff.png)

## モバイルアプリへの Amazon Cognito の使用
> 外部 ID プロバイダー (IdP) (Login with Amazon、Facebook、Google など) や任意の OpenID Connect (OIDC) 互換の IdP ですでに確立した ID を使用してサインインできるようにゲームを開発します。ゲームでは、このようなプロバイダーの認証メカニズムを活用して、ユーザーの ID を検証できます。

![webid.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/63886265-9d9a-7ccf-1076-ad27d2d37fbd.png)

## CloudWatch Logs エージェントとCloudWatch エージェント
統合 CloudWatch エージェントを使用して CloudWatch Logs の使用を開始する
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/UseCloudWatchUnifiedAgent.html

> CloudWatch Logs エージェントはCloudWatch エージェントの古いバージョンであり、利用することは可能ですが、CloudWatchエージェントを利用することが推奨されています。

## cloudfront おさらい
### コンテンツへのセキュアなアクセスとアクセス制限の設定
* CloudFront で HTTPS を使用する
    * ビューアープロトコルポリシーを編集
    * elbに証明書
* 署名付き URL と署名付き Cookie を使用してプライベートコンテンツを供給する
* オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する
    * ユーザーは S3 バケットから直接ではなく、CloudFront 経由でのみファイルにアクセス
* AWS WAF を使用してコンテンツへのアクセスを管理する
    * AWS WAF は、CloudFront に転送される HTTP および HTTPS リクエストをモニタリング可能にし、コンテンツへのアクセスを制御可能にするウェブアプリケーションファイアウォールです。クエリ文字列の値やリクエストの送信元 IP アドレスのような、指定した条件に基づいて、CloudFront はリクエストされたコンテンツまたは HTTP ステータスコード 403 (Forbidden) のリクエストのいずれかに対応します。CloudFront を設定して、リクエストがブロックされたときにカスタムエラーを返すこともできます
* コンテンツの地理的ディストリビューションの制限
    * 地域制限 (地理的ブロッキング) を使用すると、CloudFront ウェブディストリビューションを通じて配信しているコンテンツについて、特定地域のユーザーによるアクセスを回避できます。

### コンテンツのキャッシュの最適化および可用性
* キャッシュと CloudFront エッジキャッシュとの連携
    * CloudFront を使用する目的の 1 つは、オリジンサーバーが直接応答するリクエストの数を減らすことです。CloudFront キャッシュを使用すると、ユーザーに近い CloudFront エッジロケーションの方が提供されるオブジェクトが多くなります。これにより、オリジンサーバーの負荷が軽減され、レイテンシーが減少します
エッジキャッシュから CloudFront が提供できるリクエスト数が多いほど、オブジェクトの最新バージョンまたは固有バージョンを取得するために CloudFront がオリジンに転送する必要のあるビューワーリクエストが少なくなります。
キャッシュからすべてのリクエストに対して提供されるリクエストの割合を、キャッシュヒット率と呼びます。ヒット、ミス、またはエラーであるビューワーリクエストの割合は CloudFront コンソールで確認できます。
* CloudFront エッジキャッシュから提供されるリクエストの比率の向上 (キャッシュヒット率)
    * CloudFront がオブジェクトをキャッシュする期間の指定
    * クエリ文字列パラメータに基づくキャッシュ
    * Cookie 値に基づくキャッシュ
    * リクエストヘッダーに基づくキャッシュ
    * 圧縮が不要な場合に Accept-Encoding ヘッダーを削除する
    * HTTP を使用したメディアコンテンツの提供
* クエリ文字列パラメータに基づくコンテンツのキャッシュ
    * ウェブアプリケーションによっては、クエリ文字列を使用してオリジンに情報を送信します。クエリ文字列はウェブリクエストの一部で、? 文字の後に追加されます。この文字列には & 文字で区切られたパラメータを 1 つ以上含めることができます。
* CloudFront オリジンフェイルオーバーによる高可用性の最適化
    * CloudFront のプライマリオリジンとプライマリオリジンが特定の HTTP ステータスコードの失敗応答を返したときに CloudFront が自動的に切り替わる 2 番目のオリジンを指定します。

## トランザクション処理が発生する度に同じデータを2つのアプリケーション機能に送信する仕組み
> ストリーミングデータのリアルタイム処理を可能にするAmazon Kinesis Data Streamsを使用することで達成できます。Amazon Kinesis Data Streamsはレコードの順序付け、および複数のAmazon Kinesisアプリケーションに対して同じ順序でレコードを読み取ったり再生したりする機能を提供します。

## Lambda関数に関連付けられたアクセス許可ポリシーにアクセス許可を追加する
>  add-permission AWS Lambdaコマンドを実行して、Amazon API Gatewayサービスプリンシパル（apigateway.amazonaws.com）にLambda関数を呼び出すアクセス許可を付与します。 

## AWS Organizationsを利用して一括請求を設定
> ボリュームディスカウントやリザーブドインスタンスの割引適用を登録されたメンバーアカウント全体で共有することができるメリットがあります。

## AWS CLIを使用して、グループのサイズを更新せずに指定されたAuto Scalingグループからインスタンスを終了するコマンド操作
terminate-instance-in-auto-scaling-group + --should-decrement-desired-capacity または --no-should-decrement-desired-capacityを利用して、インスタンス数の調整オプションの設定が必要です。 
## ENAの使い道
Elastic Network Adapter – Amazon EC2 向けの高性能パフォーマンスネットワークインターフェイス
https://aws.amazon.com/jp/blogs/news/elastic-network-adapter-high-performance-network-interface-for-amazon-ec2/
> プレイスメントグループ内で使用した場合、低レイテンシーで安定したパフォーマンスを最大 20 Gbps でご提供します。

## Redshiftの災害対応の構成
* リージョン自体が停止したい際には1日で回復できる構成
    * 自動スナップショットを有効化して、プライマリーのRedshiftクラスターから自動スナップショットコピーを実施し、別リージョンにコピーしておくことで、障害が発生した際にそのスナップショットからRedshiftを復元し、目標となる回復性を達成します
    * Amazon Redshift は、前回のスナップショット以降にクラスターに加えられた増分変更を追跡する、増分スナップショットを自動的に作成します。自動スナップショットは、スナップショットからクラスターを復元するために必要なすべてのデータを保持します。自動スナップショットをいつ作成するかを制御するためにスナップショットスケジュールを作成できます。また、いつでも手動スナップショットを作成することもできます。これにより、プライマリーのRedshiftクラスターから自動スナップショットコピーを実施し、DR用Redshiftクラスターへと適用することができます。
* リージョン内のAZが停止した際に即時に対応できる構成
    * データウェアハウスクラスターを複数のアベイラビリティーゾーンで運用するには、2 つの Amazon Redshift データウェアハウスクラスターをそれぞれ別のアベイラビリティーゾーンに配置し、同じ Amazon S3 入力ファイルセットからデータをロードします。

## リクエストを開始するクライアントの一時ポートの範囲
エフェメラルポートからのアウトバウンドトラフィックを許可する必要があるときは 1024〜65535 を開く必要があります。

* Linux カーネル (Amazon Linux カーネルを含む)
    * ポート 32768〜61000
* Elastic Load Balancing が送信元のリクエスト
    * ポート 1024〜65535
* Windows Server 2003 を介する Windows オペレーティングシステム
    * ポート 1025〜5000
* Windows Server 2008 以降のバージョン
    * ポート 49152〜65535
* NAT ゲートウェイ
    * 1024〜65535
* AWS Lambda 関数
    * ポート 1024-65535

## AWS Systems Manager オートメーション
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-automation.html
* 自動化ワークフローを構築して、インスタンスおよび AWS リソースを設定し、管理します。

* 独自のカスタムワークフローを作成するか、または AWS によって管理された定義済みのワークフローを使用します。

* Amazon CloudWatch Events を使用して自動化タスクおよびワークフローに関する通知を受信します。

* Amazon EC2 または AWS Systems Manager コンソールを使用して、自動化の進捗状況および実行の詳細を監視します。

## AMIがリージョン間でPEMキーを移行する方式
> 利用するOSなどのライセンス認証情報はAMIに含まれているため、AMIの内容はリージョン全体にコピーされます。 ただし、その際にPEMキーはコピーされないため、別途明示的にインポートする必要があります。 PEMキーをインポートするためのAWSコンソールとAWS CLIを利用することでPEMキーを別リージョンにコピーすることができます。

###独自のパブリックキーを Amazon EC2 にインポートする
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws
>Amazon EC2 を使用してキーペアを作成する代わりに、サードパーティー製のツールで RSA キーペアを作成してから、パブリックキーを Amazon EC2 にインポートすることもできます。たとえば、ssh-keygen (標準 OpenSSH インストールで提供されるツール) を使用して、キーペアを作成できます。また、Java、Ruby、Python などのさまざまなプログラミング言語では、RSA キーペアの作成に使用できる標準ライブラリが提供されています。

あしたSSMサービス復習したい。。。。。