SAA-03に合格する＆AWSサービスの理解を深めるための自分用メモ

# はじめに
AWSサービス自体を触ったことない私が、今後 SAA-03の試験に合格するためにの勉強方法や学んだことを整理。
自分用にAWSサービスについての概要や要点をまとめたもの。

# 勉強方法
- 参考書籍を読む
  - [AWS認定資格試験テキスト　AWS認定ソリューションアーキテクト - アソシエイト　改訂第3版 (ＡＷＳ認定資格試験テキスト)](https://qr.paps.jp/fwSSU)
- AWSが提供しているSAA合格のための動画やサンプル問題を解く
  - [AWS認定ソリューションアーキテクト参考動画など](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)
- AWSが公開しているサービス別の資料を読む
  - [AWSサービス別資料](https://aws.amazon.com/jp/events/aws-event-resource/archive/?cards.sort-by=item.additionalFields.SortDate&cards.sort-order=desc&awsf.tech-category=*all)

# 試験のポイントのおさらい
## 弾力性に優れたアーキテクチャの設計
- 「単一のAZ」が正解ではないという前提に立って考える。
- AWSマネージドサービスの使用を常に優先する。
- あらゆるものはいつか故障するという前提に立って設計する。
## 高パフォーマンスなアーキテクチャの設計
- ワークロードとパフォーマンスのニーズに適切なインスタンスタイプとデータベースタイプを選択する。
- データが構造化されていない場合、Amazon S3が一般的なストレージソリューション。
- キャッシュ戦略を使用してパフォーマンスを向上させる。
- Auto Scalingを使用する場合と理由を確認する。
- システム全体のメトリクスをモニタリングする。
- 異常な状態を検知してアラートを送信する。
- 必要に応じてメトリクスへの応答を自動化する。
- IMAロールはキーやパスワードよりも簡単で安全。
## セキュアなアプリケーションとアーキテクチャの設計
- AWSアカウントのルートユーザーをロックする。
- セキュリティグループは、許可のみを行う。ネットワークACLは明示的な拒否を許可する。
- アクセスキーよりIAMロールが望ましい。
## コストを最適化したアーキテクチャの設計
- 使用することがわかっているのであれば、リザーブ(予約)する。
- 使用していないCPU時間はコストの浪費になる。
- 各ワークロードに対して最もコスト効率の良いEC2の料金も出るとインスタンスタイプを検討する。
- 最も効率の良いデータストレージサービスとクラスを使用する。

# 各種AWSサービス
## AWS Amplify
  - 概要
    - フロントエンドのウェブ／モバイルデベロッパーがAWSでフルスタックアプリケーションを簡単に構築、出荷、ホスト出来るようになる完全なソリューション。
    - ユースケースの進化に合わせて幅広いAWSサービスを活用出来る柔軟性を備えており、クラウドの専門知識は不要。
## AWS App Mesh
  - 概要
    - アプリケーション間の通信制御の状態を目に見える状態で実現するサービス。
    - HTTP通信のリトライ、タイムアウトの機能、通信のログやメトリクスの取得などの機能がある。
## AWS Aurora
  - 概要
    - リレーショナルデータベース。(key-value DBではない。)
    - 完全マネージド型サービス。ハードウェアのプロビジョニング、ソフトウェアのパッチ適用、セットアップ、バックアップといったデータベース管理タスクについて頭を悩ます必要がなくなる。
## AWS Aurora Serverless
  - 概要
    - 通常のAuroraやRDSに比べてリクエスト数によるスケーリングが柔軟に行われる。AuroraやRDSのようなサービスのスケーリング方式と違って、使用されていない期間はDBが停止してコストを押させることが可能。
## AWS Aurora グローバルデータベース
  - 概要
    - グローバル分散アプリケーション向けに設計されており、単一のAmazon Auroraデータベースを複数のAWSリージョンにまたがって運用できる。
## AWS Backup
  - 概要
    - 使用しているAWSサービスのバックアップを自動化し、さらに一元化してくれるサービス。
    - 多数のAWSリソースに対してバックアップアクティビティの監視をすることが出来る。
  - 参考資料
    - https://www.sunnycloud.jp/column/20230210-01/
## AWS Certificate Manager
  - 概要
    - SSL証明書発行サービス。
    - 転送中のデータの暗号化に使用し、保管時には使用しない。
## AWS CloudFront
  - 概要
    - S3、EC2、ELB、オンプレミスなどのサーバーに格納されているコンテンツをキャッシュして配信を高速化するWebサービス。
  - コンテンツの地理的ディストリビューションの制限
    - 地理的制限（地理的ブロックとも呼ばれる）を使用すると、CloudFrontディストリビューションを通じて配信しているコンテンツに対して特定地域のユーザーがアクセスアクセス出来ないようにする事ができる。
  - OAI
    - OAI（オリジンアクセスアイデンティティ）の略。OAIを設定するとユーザーはS3バケットから直接ではなく、CloudFront経由でのみファイルにアクセスできるようにするための特別なユーザー。 
  - Lambda@Edge
    - CloudFrontのエッジロケーションからコードを実行するLambda関数のこと。
    - ユーザに近い場所でコードが実行されるので高速なコンテンツ配信が可能になる仕組み。
    - 
## AWS CloudTrail
  - 概要
    - AWSインフラストラクチャ全体のアカウントアクティビティをモニタリングして記録し、ストレージ、分析、および修復アクションをコントロール出来る。
    - AWSアカウントの運用とリスクの監査、ガバナンス、コンプライアンスを行えるように支援るサービス。ユーザ、ロール、AWSのサービスによって実行されたアクションは、CloudTrailにイベントとして記録される。
  - 管理イベント
    - AWSアカウントのリソースで実行される管理およびネットワーク操作のAPIアクティビティ。（セキュリティグループの設定をいつ誰が変更したか。）
    - デフォルトで記録されるようになっている。
  - データイベント
    - データリクエスト操作のAPIアクティビティ（S3バケットのデータ操作をいつ誰が行ったか。）
    - デフォルトでは記録がされないようになっている。
  - Insights イベント
    - 短期間の過剰なAPI呼び出しなど異常なAPIアクティビティを検出。
    - デフォルトでは記録がされないようになっている。
  - ログファイル
    - CloudTrailログファイルの整合性の検証を有効にすると、普遍的な監査ログの要件に役立つ。
  - CloudTraiログファイルの整合性の検証
    - CloudTrailが配信した後でログファイルが変更、削除、または変更されなかったかどうかを判断するには、CloudTrailログファイルの整合性の検証を使用する事ができる。機能は業界標準のアルゴリズムを使用して構築されている。 
## AWS CloudWatch
  - 概要
    - AWSリソースと、AWSで実行されているアプリケーションをリアルタイムでモニタリングする。
    - CloudWatchを使用してメトリクスを収集、追跡できる。
## AWS Config
  - 概要
    - AWSアカウントにあるAWSリソースに関する設定の詳細ビューを提供する。
    - リソース間の関係と設定の履歴が含まれるため時間の経過とともに設定の関係がどのように変わるかを確認できる。
    - EBSボリュームやEC２インスタンスなどのリソースを追跡して新しいリソースが設定ルールに準拠しているか判断してくれる。
    - マネージドルール
      - access-keys-rotated
        - アクティブなIAMアクセスキーが指定された日数内に変更されているかどうか確認出来る。
        - Amazon EventBridgeルールを定義して、AWS Lambda関数がキーを削除するようにスケジュールすることも可能。
## AWS Comprehend
  - 概要
    - 機械学習を使用してテキスト内で意味や関係性を検出する自然言語処理サービス。
## Amazon Cognito
  - 概要
    - ウェブアプリとモバイルアプリ用に素早く簡単にユーザーのサインアップ、サインイン、アクセスコントロールの機能を追加できるサービス。
    - ユーザーはユーザー名とパスワードを使用して直接サインインすることも、信頼できるサードパーティを通じてサインインすることも出来る。
## AWS CloudFormation
  - 概要
    - インフラストラクチャをテンプレートとして記述して、スタックと呼ばれるリソースの集合として管理するサービス。
    - CloudFormationを使用することで、ハードウェアをコードとして管理出来る。
## AWS CloudHSM
  - 概要
    - ハードウェアセキュリティモジュール（HSM）を使用してキーの生成と管理を行うサービス。
    - このサービスはAWS環境内で動作し、オンプレミスでのキー生成と管理はサポートしていない。

## AWS Database Migration Service
 - 概要
   - AWS Database Migration Service(DMS)は、データベース間のデータ移行を容易にするためのサービス。
   - 異なるデータベースエンジン間でデータを転送することができる。
## AWS Data Pipeline
 - 概要
   - データ転送サービス。指定された間隔でデータを確実に処理および移動するのに役立つWebサービス。
   - データはさまざまなAWSコンピューティングおよびストレージサービスとオンプレミスのデータソース間で移動できる。
## AWS DataSync
 - 概要
   - AWS DataSyncを使用してオンプレミスからAmazonS3にデータを移動することが出来る。
## AWS Detective
  - 概要
    - AWS上のアプリケーションでのセキュリティ問題や不審なアクティビティなどあった際に原因を分析・調査することを支援するサービス。
  - 特徴
    - Detectiveは以下のようなログを収集して情報を分析する。
        - Cloud Trailログ
        - VPCフローログ
        - GuardDuty 
## AWS Direct Connect
  - 概要
    - AWS環境への専用接続を提供する。
## AWS Directory Service
  - 概要
    - AWS Directory Serviceは、Microsoft Active Directory（AD）をAWSの他のサービスと併用するための方法をいくつか提供している。
    - 
## AWS DR
  - Disaster Recoveryの略。災害からの復旧。  
    - 4つのDR対策として4つパターンがある。  
      - 1.バックアップ・リストア  
        - 定期的にシステムのバックアップを作成。障害発生時はバックアップからの復旧。
      - 2.パイロットライト
        - DR用にDBを用意しておいて、通常はデータの同期のみ。
        - 障害発生時のみ別リージョンでアプリケーションを立ち上げてDR用のDBを使用する。
      - 3.ウォームスタンバイ
        - DR用のリージョンで"縮小"した構成のシステムを常時稼働しておく。
        - 障害発生時にはDNSを切り替えて稼働する。
      - 4.マルチサイト
        - DR用のリージョンで"同様"の構成のシステムを常時稼働しておく。
        - 障害発生時にはDNSが自動でフェイルオばーでDR用の環境に切り替わる。
  - 復旧時間と費用
    - 左の方が復旧時間が長く費用が安い
      バックアップ・リストア＞パイロットライト＞ウォームスタンバイ＞マルチサイト
  - 参考資料
    - https://qiita.com/miyuki_samitani/items/43c21b4eb596e0573526
## AWS DynamoDB
  - 概要
    - key-valueのレコードをサポートするNoSQLデータベース。
  - 読み書きのキャパシティモード 
  - オンデマンドモード
    - EC2と同様に使用した分だけ課金がされる仕組み。
    - 管理が容易でスループット設定に関する手動の管理が不要。
    - アプリケーションの負荷が急増した時でも自動的に対応するためスケーラビリティが高い。
  - プロビジョニングモード
    - 事前計画が必要な課金体系。実際に使った使っていないに関わらず料金がかかる。
    - コスト予測が可能。スループットの事前設定をするため。
    - ワークロードに応じたスループットの管理が必要。
## AWS DynamoDB Accelerator
- 概要
    - フルマネージド型高可用性インメモリキャッシュ。Amazon　DynamoDB用に特化している。
    - 既存のDynamoDBのAPI互換性ががあるため、すでにDynamoDB使用していると簡単に移行できる。
    - 高パフォーマンス、高いスケーラビリティ。
## AWS DynamoDB グローバルテーブル
- 概要
    - マルチリージョンにマルチアクティブデータベースをデプロイするための完全マネージド型ソリューション。
    - 1秒未満のフェイルオーバーを提供する。
## AWS DynamoDB Streams
- 概要
    - DynamoDBテーブルのデータに変更があったときにその変更情報を暗号化してログに保存する。
    - Streamsイベントに応答するLambda関数も使用出来る。
    - Amazon DynamoDB は Amazon Lambdaと統合されているためトリガーを作成出来る。
## AWS EBS  
  - 概要
    - EBS(Elastic Block Store)は、EC2にアタッチできるブロックレベルのストレージ。
    - EC2インスタンスと同じAZにあるEBSボリュームにアタッチすることができる。
    - EC2インスタンスとは独立したストレージのためEC2インスタンスを停止や削除をしてもEBSボリュームを維持することが出来る。
    - EC2以外では使用する事ができない。EC2にEBSをアタッチ(割り当て)することによって、Cドライブのように使うことが出来る。
    - EBSではボリュームの暗号化、スナップショットに対応している。そのためその時点のバックアップを作成することが出来る。またスナップショットから復元も可能。
    - EBSボリュームはインスタンス間で共有できず、各インスタンスには独自のボリュームを持っているため、部分的なデータしか表示できない。すべてのインスタンスでAmazon EFSのような共有ファイルシステムを使用するのが理想的。
  - Amazon S3と何が違うの？
    - EBSには保存出来る容量に上限があるが、S3には上限がない。
  - EBSボリュームタイプ
    - 概要
      - EBSボリュームには、SSDとHDDの2つの主なタイプがある。
      - 各タイプには、2つのサブタイプがある。
    - SSDボリュームの特徴。
      - IOPS（Input/Output Per Second）に優れている。つまり1秒あたりの読み書きのオペレーションに優れている。
    - HDDボリュームの特徴。
      - スループット（コンピュータやネットワーク機器が単位時間あたりに処理できるデータ量のこと。）に優れているが、IOPSはSSDに劣る。
    - コスト面では
      - SSD > HDD(SSDの方が高い) 
        - SSDで比べると
          - プロビジョンドIOPS SSD > 汎用SSD
        - HHDで比べると
          - スループット最適化HDD > Cold HDD
    - どのようなボリュームがあるか
      - SSD
        - EBS プロビジョンド IOPS SSD (io2 Block Express)
        - EBS プロビジョンド IOPS SSD (io2)
        - EBS プロビジョンド IOPS SSD (io1)
        - EBS 汎用 SSD (gp3)
        - EBS 汎用 SSD (gp2)
      - HDD
        - スループット最適化 HDD (st1) 
            - 大量のログを処理するのに適している。
        - Cold HDD (sc1)
  - 参考資料　　
    - https://aws.amazon.com/jp/ebs/features/
## Amazon EC2
  - 概要
    - EC2(Elastic Compute Cloud)の略で、Amazonが提供する「仮想サーバーサービス」。
  - インスタンスメタデータ
    - インスタンスメタデータを取得する方法はリンクローカルアドレス(169.254.169.254) をEC2インスタンスで使用すること。
  - EC2インスタンスストア
      - 概要
          - EC2インスタンスストアは、インスタンス用のブロックレベルの一時ストレージを提供する。毎秒数百万のトランザクションに対して最小のレイテンシーをサポートする。データはすべてのマシンで複製されるためデータが失われる可能性はない。 
    - エフェメラルストレージ
      - インスタンスストアという領域に存在する「インスタンスストアボリューム」のこと。
  - オンデマンドキャパシティー予約
    - オンデマンドキャパシティー予約を使用すると、特定のAZで任意の所要時間だけ、Amazon EC2のインスタンスのコンピューティング能力を予約出来る。
  - Compute Optimizer
    - 運用しているインスタンスタイプが最適であるかは、 Compute Optimizerで確認出来る。直近14日間のCPU使用率などのメトリクス分析をして、レコメンデーション（提案）をレポートしてくれる。
    - EC2インスタンスだけではなく、EBSボリューム、Lambda関数、ECSサービスについても使用状況を分析してくれる。
  - スポットインスタンスの終了
    - 永続的なスポットインスタンスを終了する順序は、スポットリクエストをキャンセルしてから、スポットインスタンスを終了する。
    - リクエストタイプがワンタイムの場合は、スポットインスタンスを終了すると、リクエストも終了し再び開くことはない。 
  - プレイスメント戦略
    - クラスタープレイスメントグループ 
      - 一般的に使われるもの。単一AZ内のインスタンスを論理的にグループ化したインスタンスのプレイスメントグループ。 
      - ハイパフォーマンスコンピューティングアプリケーションで一般的なノード間通信の結合に必要な低レイテンシーのネットワークパフォーマンスを実現できる。
    - スプレッドプレイスメントグループ
      - それぞれ異なるハードウェアに配置されるインスタンスのグループ。それぞれに独自のネットワーク、電源がある、異なるラックに1つ1つのインスタンスを分割する。
    - パーティションプレイスメントグループ 
      - アプリケーションに関連するハードウェア障害の頻度を軽減するために役立つ。 
## AWS EC2 Auto Scaling
  - 概要
    - あらかじめ設定したタイミングで複数のAZに渡ってインスタンスを作成、削除が出来る。
  - 予測スケーリング
    - 予測スケーリングは、過剰なプロビジョニグを必要とせずに、需要に応じてスケーリングし、コストを削減するのに役立つ。 
  - 動的なスケーリング
    - Amazon SQSに基づくスケーリング
    - インスタンスあたりのバックログ
    - インスタンスあたりのバックログを決定するには、 SQSメトリクス　Approximate（近似）NumberOfMessages　を使用してSQSキューの長さを決定する。
  - デフォルトの終了ポリシー
    - 1.インスタンス数が最も多く、スケールインから保護されていないインスタンスが1つ以上あるAZを決定する。
    - 2.終了するオンデマンドまたはスポットインスタンスの配分戦略に残りのインスタンスが合うように、終了インスタンスを決定する。
    - 3.どのインスタンスが最も古い軌道テンプレートまたは起動設定を使用しているかを判断する。
    - 4.上記のすべての基準を適用した後で終了する保護されていないインスタンスが複数ある場合は、どのインスタンスが次の課金時間に最も近いか判断する。
## Amazon ECS
  - 概要
    - ECS(Elastic Container Service)の略で、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを容易にするフルマネージドコンテナオーケストレーションサービス。
  - 動的ポートマッピング
    - ECSを使用してサービスをデプロイする場合、動的ポートマッピングを使用して、同じコンテナインスタンス上の1つのサービスから複数のタスクをサポートすることが出来る。
  - オートスケーリング
  - ターゲット追跡スケーリングポリシー
    - 特定のメトリクスのターゲット値に基づいてサービスが実行するタスク数を増減させる。
  - ステップスケーリングポリシー
    - アラーム超過のサイズに応じて一連のスケーリング調整ちに基づいて、サービスが実行するタスクを増減させる。
  - スケジュールされたスケーリング 
    - 特定の時間に容量を増減するスケジュールアクションを作成することで、予測可能な負荷の変化に基づいてアプリケーションの自動スケーリングを設定できる。 
## Amazon ECR
  - 概要
    - ECR(Elastic Container Registry)の略で、Dockerコンテナのイメージを保存しておくためのレジストリで、Cockerコンテナイメージを保存・管理・デプロイが簡単にできる。
## Amazon EFS
  - 概要
    - EFS(Elastic File System)は、ファイルストレージを提供するサービス。
    - 管理やプロビジョニング（設備やリソースを提供できるようになる予想して準備しておく）を必要とせず、ファイルの追加や削除に応じて自動的に成長、縮小する。
    - EFSは公開ファイルをネイティブにサポートしていない。
    - EFSライフサイクル管理は、ファイルシステムのコスト効率の高いファイルストレージを自動的に管理する。有効にすると、ファイルシステムに応じて、一定期間アクセスされていないファイルを低頻度アクセスに移行する。
  - 特徴
    - 複数のEC2インスタンスから参照できる。
    - ペタバイトスケールのファイルシステム。
    - ファイルロック機能がある。
    - ACID 特性（原子性、一貫性、独立性、永続性）に準拠。
      - 原子性（Atomicity）
        - DBトランザクションはDBに対する一連の操作をまとめたもの。一連の操作がすべて実行されるか、一つも実行されないかのどちらかとなることを保証する。
      - 一貫性（Consistency）
        - DBトランザクションの前後でDBが正当な状態の維持を保証する特性。一貫性はDBの状態が常に一定のルールや制約を満たすことを保証する。
      - 独立性（Isolation）
        - 複数のユーザーやシステムやDBに同時にアクセスする場合、それぞれのトランザクションは独立して動作する必要がある。独立性はトランザクションが他のトランザクションの途中結果に影響されないことを保証する。 
      - 永続性（Durability）
        - トランザクションが一度完了したら、結果は恒久的にDBに保存されるべき。永続性はシステム障害やクラッシュが発生した場合でも、完了したトランザクションの結果が保持され続けることを保証する。 
  - ライフサイクルポリシー
    - 低頻度アクセス（IA）および、EFS Archive EFSストレージクラスとの間でファイルを移行するタイミングをライフサイクル管理に指示する。
    - IAへの移行
      - 低頻度アクセスストレージにファイルを移動するタイミングをライフサイクル管理に指示する。
      - デフォルトで標準ストレージで30日間アクセスされなかったファイルはIAに移行される。
      - 前回アクセスから最大365日間まで指定可能。
    - アーカイブへ移行
      - ファイルをアーカイブストレージクラスを移動するタイミングを財布サイクルに指示する。
      - デフォルトで標準ストレージ90日間アクセスされなかったファイルはアーカイブに移行される。 
      - 前回アクセスから最大365日間まで指定可能。
    - 標準への移行
      - IAまたはアーカイブからファイルを移行して標準ストレージに戻すかどうかをライフサイクル管理に指示する。 
## Amazon Elastic Load Balancing
  - 概要
    - 負荷分散装置とも呼ばれ、サーバーへのリクエストを分散することでサーバーの可用性と拡張性を高間めることができ
    - AWSサービスを利用してWEBサイトをSSL化する場合、EC2の手前にELBを設置し、ELBにSSL証明書をインストールす
  - ロードバランサー
  - ALB(Application)
    - アプリケーション層への対応を境界した単一のロードバランサ。
    - URL毎にサーバーへの通信トラフィックを振り分けることが可能。
  - NLB(Network)
    - TCPやUDP、TLSなどのトラフィックを負荷分散し高パフォーマンスで低遅延の維持が可能。
    - アクセス数が大きなサービスやアプリケーションではNLBの利用が推奨されている。
    - TLSリスナーを構成し、サーバー証明書をNLBにデプロイすることで、転送中のデータのセキュリティが向上させることができる。
る。
    - なお外部CAで発行したSSL証明書も可能だが、AWS Certificate Manager（ACM）で発行することも可能です。
## Amazon ElastiCache
  - 概要
    - セットアップ、運用や拡張が簡単にできるマネージド型インメモリキャッシュサービス。高速な2つのエンジン（memcached と Redis）を提供している。
  - memcached と Redisの違い
    - memcached
      - マルチスレッドで動作する。
      - CPUのコア数を上げると、パフォーマンスも上がる。
    - Redis
      - シングルスレッドで動作する。
      - snapshotベースでバックアップ・リストアに対応。
      - RDSやNoSQL DBおよびアプリケーションの負荷軽減を実現する優れた方法。
## Amazon EKS
  - 概要
    - EKS(Elastic Kubernetes Service)の略。
なお、ACMでのSSL証明書は無料。
## AWS EMR
  - 概要
    - HadoopやSparkなどの実行、構築出来るサービス。
## AWS Fargate
  - 概要
    - AWS上でコンテナをサーバーレスで実行する事が出来る機能。
  - 特徴
    - Amazon Fargateを使用する場合、アプリケーションがアイドル状態の時はコストが発生しない。
    - AWS上でコンテナをサーバーレスで実行することが出来るようにする機能を提供してくれるサービスです。サーバ運用で必要となるOSのメンテナンス等の管理が不要になることでアプリケーション開発や構築に集中して取り組むことが出来るようになります。
## Amazon FSx for Lustre
  - 概要
    - Amazon FSx for Lustre は高性能なファイルシステム。コスト効率が良く、高性能ストレージをコンピューティングワークロード向けに提供する。
## Amazon FSx for Windows File Server
  - 概要
    - Windowsファイルシステムに支えられたフルマネージMicrosoft Windowsファイルサーバーを提供する。
    - 既存のWindowsファイルサーバーからデータを簡単に移行できる。
    - また、オンプレミスのActiveDirectoryとの統合により、特定のユーザーに対してファイルへのファイルへのアクセス権を制限出来る。
    - 
    - Linuxインスタンスも利用できる。
## AWS Global Accelerator
  - 概要
    - ローカルまたは世界中のユーザーに提供するアプリケーションの可用性性とパフォーマンスを改善するサービス。
    - Amazon Web Servicesのグローバルネットワークインフラを利用して、ユーザーのトラフィックのパフォーマンスを最大60%向上させるネットワーキングサービス。
    - 2つのグローバルな静的パプリックIPが提供され、アプリケーションへの固定されたエントリポイントとして機能するため、可用性が向上する。
## Amazon GuardDuty
  - 概要
    - 悪意のあるアクティビティや異常な動作を継続的にモニタリングする脅威検出サービス。脆弱性はスキャンされない。
## AWS IAM
  - 概要
    - IAM(Identity and Access Management)の略。AWSリソースへのアクセスを安全に制御するためのサービス。
    - タスクを実行するための必要なアクションのみを許可するという「最小権限の原則」を守ること。
  - 4つの各種役割
    - 1.ユーザーグループ
      - IAMユーザーの集まり。
    - 2.ユーザー
      - AWSサービスを操作する人。
      - IAMユーザーにポリシーをアタッチする。
    - 3.ロール
      - AWSサービスにIAMポリシーをアタッチする。
    - 4.ポリシー
      - Effect
        - 許可か拒否の設定
      - Action
        - 何の権限か(PUT/DELETE...)
      - Resource
        - どのAWSリソースに対して(Dynamoのどこのテーブルか/S3のどこのバケットか...)
## Amazon Instance Scheduler
  - 概要
    - EC2およびRDSインスタンスの開始スケジュールと停止スケジュールを設定して、AWSリソースコストを管理する事が出来る。使用していないリソースを停止し、必要な時にリソースを開始することで運用コストを削減するのに役立つ。
## Amazon Inspector
  - 概要
    - 脆弱性管理ソリューションを設定するために必要な運用コストを排除できる。AWS Inspectorは、Amazon ECRの EC2インスタンスとコンテナイメージの両方を操作してソフトウェアの潜在的な脆弱性を特定して、脆弱性の重要度を分類する。
## Amazon KMS
  - 概要
    - KMS(Key Management Service)の略。
    - データの暗号化、複合化をするためのキーをセキュアに管理できるサービス。
  - マルチリージョンキー
    - カスタマーマネージドマルチリージョンKMSキーを使用することで、リージョン間で同じKMSキーを使用してデータを暗号化および複合化できる。 
## Amazon Kinesis
  - 概要
    - Kinesisは動画とデータストリームをリアルタイムで用意に収集、処理、分析するサービス。
    - ストリーミングデータをコスト効率よく処理出来る。
## Amazon Kinesis Data Firehose
  - 概要
    - リアルタイムのストリーミングデータをS3やRedshiftなどのリソースへ配信する。分析やモニタリングなど継続的にデータを収集したい場合に適している。
## Amazon Kinesis Data Streams
  - 概要
    - データストリームを使用すると、特定のニーズに合わせてストリーミングデータを処理または分析するカスタムアプリケーションを構築できる。
    - デフォルトのデータ保持期間が24時間。データが期限切れになる可能性がある場合は、データ保持期間を変更する。
## Amazon KMS
  - 概要
    - KMS（Key Management Service）の略。
    - 暗号化キーの作成と管理が出来る。
    - AWSサービスやアプリケーションでの利用を制御出来るようになる。
    - AWS CloudTrailと統合されているので、キーの使用履歴を表示出来る。
## Amazon Lambda
  - 概要
    - フルマネージド型のコンピューティングサービス。（可用性と耐障害性が初めから組み込まれている）
    - アプリケーションのコードを用意するだけで、イベントの実行、指定された間隔でコードを実行する事が出来る。
  - コスト
    - 実際にコードが実行されている実行時間に対して料金が発生する。
## Amazon Machine Image
  - 概要
    - EC2インスタンスの構築に必要な情報がまとまってい起動テンプレート。
    - EC2インスタンスのAMIをコピーして、コピー先に別の新しいリージョンへのコピーすることも可能。
## AWS Macie
  - 概要
    - S3バケットに保管された個人情報などの機密サービスを自動的に発見し、通知や保護処理を実行する事が出来る。
    - 対象となるのは、暗号化されていないバケット、パプリックアクセス可能なバケットなど。
  - 参考資料
    - https://www.sunnycloud.jp/column/20220328-01/
## AWS Migration Hub
  - 概要
    - AWSへの移行評価、計画、進捗状況を管理するサービス。
## AWS Neptune
  - 概要
    - フルマネージド型のグラフデータベースサービス。
## AWS Organization
  - 概要
    - 複数のAWSアカウントを一元管理出来るAWSのサービス。複数のアカウントをグループ化して、グループに対してポリシー（して良いこと、拒否すること）を設定出来る。
  - aws:PrincipalOrgID
      - IAMプリンシパル（ユーザートロール）のAWS Organizationを使用することで、AWSリソースへのアクセスを簡単に制御出来る。
## AWS Outposts
  - 概要
    - AWS Outpostsとは、自社のデータセンターや自社拠点にAWSのラック、またはサーバーを設置して、AWSを自社のオンプレミスサーバーのように拡張して使えるサービス。
    - このサービスを使うことによって、AWSクラウドと超レイテンシーで接続出来るなどのメリットが生まれる。
## AWS RDS DB
  - 特徴
    - Amazon RDSの暗号化を有効にするには、データのスナップショットを作成し、暗号からされたスナップショットにコピーする。暗号化されたスナップショットからデータベースを復元する。
  - リードレプリカ
    - Amazon RDSリードレプリカによってRDSデータベースインスタンスのパフォーマンスと耐久性が向上する。  
## Amazon Redshift
  - 概要
    - データを収集、統合、蓄積して分析のため保管しておくシステム。経営のダッシュボード、流通業のダッシュボード、機械学習の前処理に使われる。
    - ワークロード機能を提供している。
  - データベース暗号化
    - AWS KMS Keyを使用してクラスターの暗号化が可能。 
## AWS Rekognition
  - 概要
    - 機械学習を使用して画像認識とビデオ分析するサービス。
## AWS S3
  - 概要
    - オブジェクトストレージの一種。容量は事実上無制限。
  - 特徴
      - ストレージクラスによるが、オブジェクトは一つのリージョン内の複数のAZにまたがって保存される。
      - 暗号化オプションがある。
      - データ復旧のためのバージョニング管理オプションがある。
      - オブジェクトはイミュータブルで、わずかでも変更を加える場合は、オブジェクトを置き換える必要がある。
      - オブジェクトがレプリケートされるのは単一リージョン内の複数のAZの場合である。（全てのリージョンではない。）
  - 6つのストレージクラス
    - S3 Standard
      - 頻繁にアクセスされるデータ向け。
    - S3 Standart IA
      - 存続期間が長くあまり頻繁にアクセスされないデータ向け。
    - S3 Intelligent-Tiering
      - アクセスパターンが変化、または不明な存続期間が長いデータ向け。
    - S3 One Zone-IA
      - 存続期間が長くあまり頻繁にアクセスされない、かつ重要度が低いデータ向け。
    - S3 Glacier Instant Retrieval（即時検索）
      - Instant Retrieval（即時検索）
      - ２時間の検索時間の要件を満たす最も費用対応効果の高いアーカイブストレージ。
    - S3 Glacier Flexible Retrieval 
      - ほとんどアクセスされない低コストのバックアップデータとアーカイブデータ。
      - 数分から数時間の取り出し時間で、無償の一括取り出し。
      - コストを気にせずに、特に大量のデータを数分で取り出す必要があるバックアップと災害対策のユースケースに最適。
    - S3 Glacier Deep Archive
      - 取得時間が12時間以内許容される長期アーカイブデータ向け。
      - アクセス頻度が非常に低く、コストも非常に低いアーカイブデータ。
  - MFA Delete
    - セキュリティを強化するためには、MFA（多要素認証）Deleteに対応するようにバケットを設定する。この設定を行うと、バケット所有者は特定のバージョンを削除したりバケットのバージョニング状態を変更したりするために、すべてのリクエストに2つの認証形態を含める必要がある。
  - ライフサイクルポリシー 
      - ライフサイクルポリシーを使用すると、保存期間に基づいてオブジェクトを削除または移動出来る。これによりコストの最適化に繋がる。
  - S3オブジェクトロック
    - S3オブジェクトロックとは、保存されているオブジェクトを保護する。この機能が有効になっている場合は、S3に保存されているオブジェクト永続的に定義された期間も上書き、削除は出来ない。 
  - 署名付きURL
    - S3では、オブジェクトのアップロード用にS3で署名付きURLを作成する事ができる。URLはアップロードをウェブアプリケーション経由でルーティングする必要なく、S3アップロードへの直接アクセスを提供する。
  - お客様が指定したキーによるサーバー側の暗号化（SSE-C）の使用
    - オンプレミスで暗号化キーを生成および管理する場合、お客様が指定したキーによるサーバー側の暗号化を使用する。
## AWS S3 Transfer Acceleration
  - 概要
    - 異なる地理的な地域からS3への高速データ転送を可能になる。
    - クライアントとS3バケットの間で長距離に渡るファイル転送を高速、簡単、安全に行える。
    - エッジロケーションを使用してデータを、Amazon S3へコピーすること。
    - 1回のPUTオペレーションサイズ制限は5GB。
## AWS S3 マルチパートアップロード
  - 概要
    - 5GBを超えるファイルをS3へアップロードするために使用出来るアップロード方法。
## AWS SageMaker
  - 概要
    - 機械学習モデルを高速に開発、学習、デプロイ、するためのモジュールが用意されているフルマネージド型サービス。
## AWS Secrets Manager
  - 概要
    - データベースの認証やパスワードなどの任意のシークレット情報をAPIコールで取得できるためのAWSサービス。
    - 各サーバーからこのAPIを実行することでsークレット情報が取得でき、認証やサーバーセットアップに利用できる。
  - シークレットのローテーション
    - ローテーションとは、シークレットを定期的に更新するためのプロセスのこと。
    - ユーザーが操作しなくても指定したスケジュールに従ってローテーションするように設定できる。  
## AWS Shield
  - 概要
    - Shieldは、DDoS攻撃からの保護を提供する。
## AWS Site-to-Site VPN 
  - 概要
    - お客様独自のオンプレミスからネットワーク間の接続を指す。
    - 必要なコンポーネントとして、カスタマーゲートウェイと仮想プライベートゲートウェイが必要。
  - 特徴
    - AWS Site-to-Site VPN 仮想プライベートゲートウェイ（VGW接続）
        - オンプレミスから特定のVPCへ接続するときに有効です。VGWは内部的に冗長化がされている。
    - AWS Site-to-SIte VPN トランジットゲートウェイ（TGW接続）
        - オンプレミスから複数のVPCへ接続する際に有効です。柔軟な要件に対応することができます。TGW自体がMulti-AZに冗長化がされている。
- カスタマーゲートウェイ
    - カスタマーゲートウェイデバイスは、お客様のデータセンターでセットアップされ、設定される。
- 仮想プライベートゲートウェイ
    - 仮想プライベートゲートウェイは、VPCにアタッチされ、AWSでSite-to-Site VPN接続を作成する。
    - オープンなパプリックインターネットを経由する事なく、オンプレミスのデータセンターからVPCへのプライベート暗号化ネットトラフィックを受け入れる事が出来る。　 
## AWS SQS
  - 概要
    - SQS(Simple Queue Service)の略。メッセージキューイングサービス。リクエストや実行命令を順番待ち状態にさせて、先入先出のような仕組みを提供しているサービスのようなもの。
## AWS STS
  - 概要
    - STS（Security Token Service）を使用して、AWSリソースへのアクセスを制御できる一時セキュリティ認証を持つ、信頼されたユーザーを作成および提供する事が出来る。
  - 特徴
    - ただし、AWS STSがアプリケーションへのアクセスを制御することはない。
## AWS Snowball 
  - 概要
    - 大規模なデータ転送のための物理的なデバイス。
    - ストレージ容量や処理能力に制限がなく、テラバイト単位のデータをクラウドに簡単に移行できる。
  - Snowball Edge Compute Optimized
    - 機械学習、フルモーション動画分析、分析、 データ転送とエッジコンピューティングに適している。
  - Snowball Edge Storage Optimized
    - データ転送とストレージに最適化されている。
## AWS Snow Family
  - 概要
    - データセンターの設置が困難な厳しい環境や一貫したネットワーク接続が利用できない場所でオペレーションを実行する必要があるお客様を支援するサービス。
## AWS Storage Gateway
  - 概要
    - アプリケーションをオンプレミス環境に残しつつ、データの保管場所をAWS（クラウド）で構成することが出来る。
  - 3つの種類
    1. ファイルゲートウェイ
       - オンプレミスに保存しているファイルをS3のオブジェクトとして保存する。
    2. ボリュームゲートウェイ
       - オンプレミスのディスクデータのスナップショットをS3に保存する。
       - iSCSI（Internet Small Computer System Interfaceの略。データ共有プロトコル。）プロトコルを使用してアプリケーションにブロックストレージを提供し、AWS上にストレージを拡張出来る。
         - 保管型
           - プライマリデータはローカルに保存されてデータセット全体が低レイテンシーのアクセスのために使用可能となる。そのデータを非同期にAWSにバックアップする。
         - キャッシュ型
           - プライマリデータをS3に保存して、頻繁にアクセスされるデータはキャッシュしてローカルに保存する。
    3. テープゲートウェイ
       - オンプレミス側の物理テープから仮想テープを構築し、クラウドでのライブラリ管理を提供するサービス。
   - ハードウェアアプライアンス
     - Storage Gateway ハードウェアアプライアンスは、Storage Gateway ソフトウェアがプリインストールされている物理ハードウェアアプライアンス。
## AWS Systems Manager
  - 概要
    - AWS内に構築したAmazon EC2インスタンスなどのリソースを統合的に可視化、管理し、運用オペレーション自動化などの制御を実現するサービス。AWSのリソースだけでなく、オンプレミスに構築されたサーバーも含め、ハイブリッドでリソースや運用状況の可視化および自動化を実現できることが出来る。
  - Systems Managerの機能  
    1. OpsCenter
         - AWSリソースに関連した運用上の問題の確認、調査、解決を一元的に実施できる。
    2. Explorer
    3. リソースグループ
    4. パッチマネージャー
        - 選択したOSとアプリケーションにパッチを適用するために使用する。コンテナの脆弱性をスキャンする用件は満たしていない。
## AWS SQS 
  - ショートポーリングとロングポーリング
    - キューからのメッセージを処理するプロセスはショートポーリングを使用するか、ロングポーリングを使用するかによって異なる。SQSはデフォルトでショートポーリングを使用。
  - ロングポーリングを使用したメッセージの消費
    - ロングポーリングはからのレスポンスを減らしてメッセージが利用可能になり次第処理する。SQSの使用のコスト削除するため役立つ。  
## AWS SQS 可視性タイムアウト
  - 概要
    - キューに入ったメッセージが処理開始直後に重複して処理されないように、処理中の場合、一時的に他のプロセスからは、メッセージが存在していることを見えないようにする設定。
    - ChangeMessageVisibility APIを利用することで、以前に受け取ったメッセージの視認可能期間の期限を変更する。
  - 参考資料
    - 可視性タイムアウトについては、こちらの方の記事がわかりやすかったです。
    - [AWS SQS の可視性タイムアウトとは？何故そんなものがあるのだろうか？ を少しだけ考えてみる。( #AWS )](https://qiita.com/YumaInaura/items/30ecd643aa4d42dd4330) 
## AWS Textract
  - 概要
    - スキャンしたドキュメントからテキスト、手書き文字、およびデータを自動的に抽出する機械学習サービス。
## AWS Transfer Family
  - 概要
    - AWSでホストされるファイル転送サービスの一連の製品。
    - 対象のプロトコルがSFTPだけでなくFTP・FTPSに対応したことで、旧名のTransfer for SFTPからTransfer Familyに変更された。
    - ファイル転送用のサービスを構築する必要がなく、マネージドサービスとして簡単に利用できるメリットがある。
## AWS Transit Gateway
  - 概要
    - 仮想プライベートクラウド（VPC）とオンプレミスネットワークを相互接続するために使用できるネットワークの中継ハブ。
## AWS Transcribe
  - 概要
    - 音声をテキストに自動的に変換するサービス。
## AWS Trusted Advisor
  - 概要
    - セキュリティや信頼性、パフォーマンス、コスト、サービスにおけるベストプラクティスにおいて、アカウントに適用されているかチェックしてくれる。

## Amazon VPC
  - 概要
    - VPC(Virtual Private Cloud)の略。ユーザー専用のプライベートなクラウド環境を提供するサービス。
  - サブネット
    - パプリックサブネット
      - パクリックインターネットへの直接アクセス
      - インターネットゲートウェイへのルーティングテーブルエントリで指定
    - プライベートサブネット
      - インターネットゲートウェイへのルーティングテーブルエントリがない
      - パプリックサブネットに配置されたNAT経由で公開インターネットに間接アクセス
  - アクセス制御を行う手段
    - セキュリティグループ
       - ルールで許可された通信の行きも、戻りの通信も自動的に許可される。
       - セキュリティグループはIPアドレスをブロックするために使用できない。
   - ネットワークACL
       - 通信の行き(アウトバウンド)と戻り(インバウンド)でルールの設定が必要。
  - VPCエンドポイント
    - Virtual Private Cloud(VPC)とサポートされているサービス間の接続が有効になる。
    - VPCエンドポイントは、AWS PrivateLinkを使用する、サポートされているAWSサービスやVPCエンドポイントサービスにVPCをプライベートに接続できる。インターネットゲートウェイ、NAT、AWS Direct Connect接続は必要なし。
  - プライベートIPv4アドレス
    - プライベートIPv4アドレスは、インターネットにはアクセスできず、VPCのインスタンス間の通信で使用できる。トラフィックはAmazonネットワーク内でルーティングされ、データ転送料金はかからない。
    - パプリックIPアドレスを使用すると、トラフィックがインターネット経由でルーティングされるため、データ転送量が発生する。  
## Amazon VPCフローログ
  - 概要
    - ネットワークトラフィックを記録する。
## AWS Route53
  - 概要
    - ドメインネームシステムウェブサービス。DNSルーティング、ヘルスチェックの主要な機能を任意の組み合わせで実行出来る。
  - ルーティングポリシー
    - シンプルルーティングポリシー
      - 1つのレコードに対して1つのIPアドレスを返す。
    - フェイルオーバールーティングポリシー 
      - メインに障害が発生した場合にサブにアクセスする。
      - アクティブ／アクティブ
        - 2台とも普段から稼働系にしておく。どちらも稼働系なので片方が死んでも問題ない。
      - アクティブ／パッシブ
        - 片方を稼働系、もう片方を待機系にしておく。稼働系に障害が起きた場合に待機系が稼働系に切り替わる。
    - 複数値回答ルーティングポリシー
      - Amazon Route53がDNSクエリに対する応答としてランダムに選ばれた最大8つの正常なレコードを使用してRoute53がDNSクエリに応答する場合に使用する。
    - 加重ルーティングポリシー
      - 指定した比率で複数のリソースにトラフィックをルーティングする場合に使用する。 
    - レイテンシールーティングポリシー
      - 複数のAWSリージョンにリソースがある場合に、レイテンシーの最も小さいリージョンにトラフィックをルーティングするために使用する。 
  - ホストゾーン
    - ドメイン名の問い合わせに対して、どのような回答するかの設定をまとめたものをホストゾーンと呼ぶ。 
    - 例えば、abcd.comというドメイン名の問い合わせがあった場合に「10.10.10.10」と「20.20.20.20」という2つのIPアドレスをランダムに返すというような、設定することも可能。
## AWS WAF
  - 概要
    - 悪意のある可能性のあるSQLコード(SQLインジェクション)の存在を検出できます。AWS WAF は、悪意のある可能性のあるスクリプト (クロスサイトスクリプティング) の存在を検出することも出来る。
    - 不正なIPアドレスから攻撃を防ぐためのセキュアでスケーラブルなソリューション。

# 補足情報
## Linuxインスタンスの休止
  - 概要
    - インスタンスを休止状態にすると、インスタンスメモリ（RAM）の内容がAmazon EBSルートボリュームに保存される。インスタンスが再起動すると、インスタンスメモリの内容が再ロードされる。
    - スナップショットの復元とインスタンスの再起動は、インスタンスメモリの内容が保持されず失われる。 
## NFS
  - 概要
    - NFS(Network File System)の略。PCが持つストレージを共有する仕組みの一つ。ネットワークを介して、サーバー上のストレージ領域をローカルストレージと同様に使える。
    - Windows環境で使われることが多い、CIFS(Common Internet File System)や、MacOSに組み込まれている、AFP(Apple file Protocol)がある。
    - NFSストレージの代わりに、AWS Storage Gatewayはローカルキャッシュをサポートしているため代替手段の一つ。
## Redis
  - Redis AUTHコマンドを使用すると、パスワードで保護されたRedisサーバー上でRedisコマンドを実行する権限を付与する前に、ユーザーにパスワードの入力を要求することが出来る。（セキュリティの向上。）
  - [Redis AUTH コマンドによる認証](https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/auth.html)
## SMB
  - 概要
    - SMB（Server Message Block）の略。Windowsのネットワーク機能で利用される仕様。
    - LAN上の複数のWindowsコンピュータ間でファイル共有やプリンタ共有などを行うためのプロトコル。
## データの暗号化
  - 用語
    - SSE
      - Server Side Encryption の略。
      - 暗号化・複合をサーバー側で行う暗号方式。
    - CSE
      - Client Side Encryption の略。
      - 暗号化・複合をクライアント側で行う暗号方式。
      - 暗号化・複合のキーにはクライアント側で管理するキーだけでなく、KMSのカスタマー管理キーを使用することもできる。
    - CDK
      - Customer Data Key の略。
      - データの暗号化・複合時に実際に使用するキー。
    - CMK
      - Customer Master Key の略。
      - 上記のCDKを暗号化するキー。
  - 暗号化方式
    - 暗号化方式は、どこで暗号化・複合するか（サーバー側／クライアント側）と、暗号化のキーはどこで保管するか（S3／KMS／クライアント側）の組み合わせによって5パターンに分かれる。（具体的なパターンは参考文献を参照。）
    - サーバー側の暗号化
      - Amazon S3で管理するキー（SSE-S3）
      - AWS KMSで管理するキー（SSE-KMS）
      - 顧客が管理するキー（SSE-C）
    - クライアント側の暗号化
      - AKS KMSで管理するカスタマーキー(CSE-KMS）
      - クライアント側のマスターキー(CSE-C）
  - 参考文献
    - [S3データ格納時のサーバ側暗号化（SSE-S3、SSE-KMS、SSE-C）と、クライアント側暗号化（CSE-KMS、CSE-C）](https://qiita.com/yz2cm/items/ca33ced6e1f5fbcff459)
## TLS
  - 概要
    - TLS（Transport Layer Security）の略。
    - SSL厳密には別物。TLSはSSLの次世代規格。
# 参考文献
- [AWS認定ソリューションアーキテクト参考動画など](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)
- [AWS認定資格 無料WEB問題集＆徹底解説
](https://aws-exam.net/saa/)
- [AWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイト 改訂第2版](https://qr.paps.jp/VlDgu)
- [シングルテナントとは](https://www.intra-mart.jp/im-press/useful/a65#:~:text=%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%86%E3%83%8A%E3%83%B3%E3%83%88%EF%BC%88Single%20Tenant%EF%BC%89%E3%81%A8,%2Dtenancy%EF%BC%89%E3%81%A8%E3%82%82%E3%82%88%E3%81%B0%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82)
- [AWS Outpostsとは？概要やメリットについて解説します。](https://atbex.attokyo.co.jp/blog/detail/61/)
- [AWS SQS の可視性タイムアウトとは？何故そんなものがあるのだろうか？ を少しだけ考えてみる。( #AWS )](https://qiita.com/YumaInaura/items/30ecd643aa4d42dd4330)
- [Redis AUTH コマンドによる認証](https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/auth.html)
- [AWS Storage Gateway について知ってることをまとめてみた](https://qiita.com/MayForBlue/items/ce0d915ffdda11ffffe2)
- [【初心者向け】AWS CloudTrail について改めて整理してみた](https://zenn.dev/issy/articles/zenn-cloudtrail-overview)
- [S3データ格納時のサーバ側暗号化（SSE-S3、SSE-KMS、SSE-C）と、クライアント側暗号化（CSE-KMS、CSE-C）](https://qiita.com/yz2cm/items/ca33ced6e1f5fbcff459)