SAA Tips

## サービスレベル
グローバルサービス：S3
リージョンサービス：VPC, ELB
AZサービス：EC2, RDS
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412108/f0007b63-155a-4859-42b8-cba3a018631e.png">


## VPC・サブネットと他リソースの関係性
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412108/fd924858-8f9b-9cc0-b253-bbd7d14adfb1.png)


## コスト比較
**DB**
Aurora > RDS > DynamoDB
※DynamoはLambdaのように実行時のみ課金されるため、コストを抑えやすい

コンピューティング
EC2 > ECS > Lambda


## 権限管理
迷ったらロール系の選択肢

## 本番環境と遠隔のDR（ディザスタリカバリ）環境の自動化
本番環境と遠隔DR環境を別リージョンに構築して、切替管理をRoute53で実施する

## IPフローティング
障害発生時にEIPを自動で待機系に切り替える。（route53の機能の一部
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412108/f319abad-2d5d-4ee7-81b5-89ddbc5d8536.png">

## 他社アプリから自社AWSリソースへのアクセス許可
異なるAWS アカウントが有するリソースへのアクセスを委任する方法として、クロスアカウントアクセス許可とIAMロールを設定することが必要。これによって、特定のアカウントにある特定のリソースを別アカウントのユーザーと共有します。

## VPCエンドポイント
インターネットを介さずに、VPC内のサービスからVPC外のAWSサービスに接続することができる。これにより、<font color="darkorange">**同一リージョン内であれば通信料が発生しないため、**</font>コスト対策に有効

<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412108/c379feb1-e8d3-8f4b-5ee1-f834ea5d5ad6.png">

## Lambda / RDS 間のコネクション最適化
`RDSプロキシ` を利用する。
RDSエンドポイントの代わりにRDSプロキシを利用することで、コネクションを効率化できる。

## DynamoDBのデータ変更履歴を保持する
`DynamoDB`ストリームを利用する

## DynamoDBストリーム
- 変更履歴の保持
- データ変更時にLambda起動が可能
- 異なるリージョンへのレプリケーション

## DynamoDB ユースケース
- WEBセッション管理
- メタデータ保存
- 各データ項目最大40kb
- 自動でマルチAZ冗長化

## S3データの解析
| サービス| 特徴 | 
| --- | --- |
| S3 Select | S3オブジェクトに対してSQLクエリで検索できる |
| Athena| Athena SQLクエリを利用して、検索・分析を実行できる | 
| Macie | 機械学習により、S3の機密情報を検出。フルマネージド。 |
| Redshift Spectrum | S3オブジェクトに対して、Redshiftから直接クエリを実行できる |

## S3のデータ保護
管理者でも削除させない → `コンプライアンスモード`
管理者は削除できても良い → `ガバナンスモード`

## エイリアスレコード
Aレコード：IPv4
AAAAレコード：IPv6
MXレコード；メールサーバーを紐づける
CNAME：ドメインを別のドメイン名に紐づける

## EC2インスタンス起動時にスクリプト実行
`ユーザーデータ`設定を利用する

## S3データ転送の高速化
`Amazon S3 Transfer Acceleration`

## EFS→Linux, FSx→Windows

## Auto Scaling
- スケジュールドスケーリングポリシー
特定の時間帯にスケーリング実施
- 動的スケーリングポリシー
CPU使用率など、インスタンスの状態によってスケーリングを実施

## Auto Scaling キャパシティ
- 最小キャパシティ
- 最大キャパシティ
- 希望するキャパシティ

## SCP（Service Control Policies
IAM の上位に位置するもので、組織レベルでのアクセス制御を実施

SCP と IAM それぞれのポリシーにで`明示的に許可され` かつ `明示的に拒否されていない` 場合に、IAMユーザーやIAMロールはそのリソースに対する操作が許可される
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412108/c4b5fbf7-c44b-0623-4834-435c2b479b7b.png">

## VPC CIDR
/28 ～ /16 の範囲で指定可能
/24：255個
/15：127個

## デフォルト上限
VPC：5
サブネット：200
EIP：5

## EBS
Delete on Terminate: EC2インスタンスが終了する際にEBSボリュームを残すかどうか

## EBSユースケース

#### スループット最適化 HDD(st1)
ビッグデータ処理
データウェアハウス
ログ処理

#### プロビジョンド IOPS SSD(io1)
RDBMS
I/O負荷の高いNoSQLデータベースとリレーショナルデータベース

https://qiita.com/miyuki_samitani/items/c054cfe219cfffd2e041

## EBSとEFSの違い

- 用途
EBS：主に単一のEC2インスタンスにデータを保存するために使用。ブロックストレージ。
EFS：複数のEC2インスタンスからアクセスできるネットワークファイルシステムです。複数のインスタンスでファイルを共有したり、同時にアクセスしたりする必要がある場合

- 接続台数
EBS：１台のEC2インスタンスと接続可能
EFS：複数のEC2インスタンスと接続可能
- 耐久性
EBS：単一のAZ内で冗長化
EFS：複数のAZで冗長化
- 拡張性
EBS：手動でボリューム拡張可能
EFS：自動でボリューム拡張可能

https://business.ntt-east.co.jp/content/cloudsolution/column-64.html

## EBSとインスタンスストア
・接続
EBS：EC2インスタンスストアとネットワーク接続
インスタンスストア：ホストコンピュータのストレージを利用
・耐久性
EBS：単一のAZ内で冗長化
インスタンスストア：冗長化されない
・拡張性
EBS：ボリューム拡張可能
インスタンスストア：ボリューム拡張不可能
・料金
EBS：従量課金
インスタンスストア：無料

## 複数のEC2インスタンスで同じEBSをアタッチしたい
プロビジョンドIOPS

## EBS ボリューム暗号化
スナップショットのコピーコマンド（ec2 copy-snapshot）に「--encrypted」オプションを渡すことで暗号化されたスナップショットを作成

## EFS パフォーマンスモード
とりあえず汎用モードを選んでおけばOK

## 既存のオンプレ MS Active Directory を利用して、AWS認証
AWS Directory Service の AWS Managed MS AD を利用して、既存のMS Active Directory（MS AD AWSのIAMユーザー認証を統合して、シングルサインオンを実現

## サイト間VPN
オンプレ側に`カスタマーゲートウェイ`を設置
AWS 側に`仮想プライベートゲートウェイ`を設置
<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412108/04e7c690-4396-c445-992d-6f495169f03c.png">

## EIP
使われていない(起動中のEC2にアタッチされていない)EIPは課金される
※EC2が起動していればEIPとしては課金されない。IP枯渇を防ぐため
1つのリージョンで最大5個

## セキュリティグループ
デフォルト動作：インバウンド全て拒否、アウトバウンド全て許可

## セキュリティグループとACL
セキュリティグループはステートフルで、ネットワークACLはステートレスで
ステートフルは、ルールで許可された通信の戻りの通信も自動的に許可
ステートレスは、通信の行き（アウトバウンド）と戻り（インバウンド）で、ルールの設定が必要

| セキュリティグループ | ACL |   
| --- | --- | 
| インスタンス単位 | VPC / サブネット単位 |
| ステートフル<br>インバウンド許可すれば、自動的にアウトバウンドも許可扱い | ステートレス<br>ンバウンド許可だけではアウトバウンド許可されない | 
| 許可のみを IN/OUT で指定| 許可/拒否 を IN/OUT で指定 | 
| デフォルトでは同じグループ内通信のみ許可 | デフォルトで全ての通信を許可 | 




## Amazon Data Lifecycle Manager (Amazon DLM)
Amazon EBS ボリュームに保存されたデータをバックアップする自動化された手順です。 Amazon DLM を使用してライフサイクルポリシーを作成し、スナップショット管理を自動化します。

## Redshift プライマリクラスターがダウンしたでも即座に利用できるようにする
クラスターの`クロスリージョンスナップショット`を利用する

## Amazon Certificate Manager (ACM) を利用したHTTPS化
ACM を利用する場合、EC2にインストールするのではなくELBにインストールする

## AWSアカウントのログを追跡したい
`CloudTrail`

## 使用率の高い全てのEC2インスタンスを検出したい
Trusted Advisor

## 世界中の〇〇
CloudFrontが正解になりがち

## Amazon Transcribe
音声のテキスト変換

## Amazon Comprehend
感情分析