AWS SAP資格試験メモ(自分用)

# はじめに
半年前からAWS案件に関わるようになり、汎用的な知識が欲しかったので、CLI,SAA,DVA,SOAを立て続けに取得しました。

SAPを2日後(oh....)に取る予定ですが、これまでとは異なり
中々ややこしい箇所もあるので、細かい所を定着させるために自分用のメモを残しておきます。(メモ書き適度の内容です)


# メモ

### Compute Savings Plans vs EC2 Instance Savings Plans
- Compute Savings Plans
    - EC2インスタンスやLambda、ECS Fargateに対して適用される
- EC2 Instance Savings Plans
    - 割引対象とするサービスをEC2に限定する代わりに、Compute Savings Plansよりも割引率の高いプラン 


### ETag
- S3にアップロードしたオブジェクトの整合性チェック

### インスタンスストア vs EBS
- インスタンスストア
    - 別名、「エフェメラルディスク」
    - EC2インスタンスに内蔵されているローカルストレージ
    - EC2の一時的なデータが保持され、EC2の停止・終了と共にクリアされる
    - 無料で使用可能
    - 一時ファイル置き場

- EBS
    - EC2インスタンスにアタッチして利用できるブロックレベルのストレージサービス
    - インスタンスストアとは異なり、再起動してもデータが消えない
    - 1つのボリュームで最大16TB
    - スナップショットをS3に保存可能
    - 別途、EBS料金が必要
    - OS/アプリケーションのインストール先

### VPCテナント属性
- インスタンスを立てるAWSのハードウェアを他のユーザと共有するか、自分だけで専有するか選択できる
- テナント属性には「Default(共有)」「Dedicated Instance」「Dedicated Host(s)」

### VM Import/Export 
- オンプレから AWS に仮想マシンをインポートできる
- AWS からオンプレにエクスポートできる

- Import
    - インポート中に VM を AMI に変換
    - AMI から EC2 を起動
    - EC2 として起動することで AWS サービスとの連携が可能になる
- export
    - EC2 の API ツールを使用
    - VM を S3 に出力
    - オンプレで S3 からダウンロードして起動する

### EIP割り当て
- NLBには割り当て可能。
- ALBには直接割り当て不可
- 外部にIPアドレスを提供したい場合は、global accelerator ALBのエンドポイントを渡す

### AWS Identity and Access Management Access Analyzer
- S3の公開バケットを監視できる
- リソースが外部のエンティティに公開されているか確認するサービス


### AWS Storage Gateway
- オンプレミス環境のデータとクラウドストレージのデータを橋渡しするサービス
- アプリケーションをオンプレミス環境に残したまま、データ保管領域だけをクラウドで構成することが実現できる

### NLBとALBの連携
- ALBを固定IPで接続できる
- NLBのターゲットとして直接ALBを設定できるようになり、NLBに設定したElastic IPでALBにアクセスできるようになった。


### AWS Firewall Manager
- 複数のアカウントやouのルールを一元管理できる

### Amazon s3 Select
- 単一オブジェクトのクエリに使用


### EC2インスタンス削除保護
- コンソール、CLI、APIは制御可能
- Auto Scalingは制御できない

### Auto Scaling下のEC2インスタンス調査法
- terminateプロセスを一時中断して、session managerでログインして調査


### スティッキーセッション
- 有効にするとステートフルでありながらスケーリングができる

### AWS WAF のレートベースルール
- AWS WAF が発信元 IP アドレスのリクエスト数をカウントし、設定したしきい値を超えるリクエスト数が確認された際に対象の IP を自動でブロックできる
- 過剰なリクエストをしているIPアドレスをブロック

### 不完全なマルチパートアップロードを削除するためのバケットライフサイクル設定
- 失敗したマルチパートアップロードをアップロードを削除できる


### CloudWatch Synthetics
- APIなどエンドポイントに対する死活監視及び障害監視や、取得したメトリクスを利用した性能監視ができる

### DynamoDB
- 特定のテーブルへの許可はIAMポリシー条件で実現可能

### S3ファイルゲートウェイ
- オンプレサーバーやEC2上でS3へのアップロードをローカルファイルシステム操作として実施できる。リアルタイム

### AWS Batch
- 大規模なバッチ処理向け。短時間タスクには不向き

### ラウンドロビン
- デフォルトのロードバランサーポリシー。順番に振り分けられる。

### ADConnector
- クラウド内の情報をキャッシュせずにディレクトリリクエストをオンプレにリダイレクトするために使用できるディレクトリゲートウェイ

### 予算額に達したときにサービスを終了する構成
- budget,sns,lambda

### AWS Compute Optimizer
- 機械学習を使って過去のデータを分析し、最適なAWSリソースを推奨してくれるサービス
- データ収集に最大 12 時間かかる場合があり

### AWS Stotage Gateway ファイルデートウェイ　vs テープゲートウェイ
- ファイルゲートウェイ
    - オンプレに保存しているファイルをS3のオブジェクトとして保存
    - S3で直接アクセスできる
- テープゲートウェイ
    - s3で直接アクセスできない
    - aws storage gateway apiを使用する必要がある

### AWS private link 
- 異なるVPC間でのIPアドレス競合を避けることができる

### S3イベント通知
- S3からLambdaへのイベント通知はLambdaがこけても再試行しない
- 再試行させるならEventBridgeを導入する必要がある

### Amazon Macie
- 機械学習とパターンマッチングを用いて機密データを発見し、データセキュリティリスクを可視化し、そのリスクに対する自動保護を可能にするデータセキュリティサービス

### Amazon Aurora Serverless v1 vs v2
- v1
    - 定時間アクセスがない場合は自動停止してくれる
    - 初回起動が遅く、利用可能になるまでに少し時間がかかる
    - マルチAZ機能なし
    - 検証むけ？
- v2
    - V1と比べると1ACUあたりの費用が2倍かかる
    - V1のように一時停止することができない
    - AZに障害が発生した場合に、マルチAZフェイルオーバーを実行してくれる 
    - 本番向け

### Snowmobile vs Snowball
- 10 PB を超えるor1つの場所に移行:AWS Snowmobile。

- 10 PB 未満or複数の場所に分散して以降:Snowball

### RDSリードレプリカ
- ALBでトラフィックを分散することはできない(Route53の加重ルーティングが必要)
- AutoScalingグループに配置できない➡auroraレプリカはできる


### メモ
```言語:タイトル
resource "aws_lb" "main" {
  name               = "h4b-ecs-alb"
  internal           = false
  load_balancer_type = "application"
  security_groups    = [aws_default_security_group.default.id]
  subnets            = [aws_subnet.public1.id, aws_subnet.public2.id]
}

resource "aws_lb_listener" "main" {
  load_balancer_arn = aws_lb.main.arn
  port              = "80"
  protocol          = "HTTP"

  default_action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.main.arn
  }
}

resource "aws_lb_target_group" "main" {
  name        = "h4b-ecs-targetgroup"
  port        = 80
  protocol    = "HTTP"
  vpc_id      = aws_vpc.main.id
  target_type = "ip"
}
```