SOA(SysOPS)に合格するためAWSサービスの理解を深める

# はじめに
SOAに合格するため各資料などから得た知識を自分用にメモとして残しておく。（随時更新予定）

# 各種AWSサービス
## Application Load Balancer
  - アクセスログ
  - Elastic Load Balancingは、ロードバランサーに送信されるリクエストについての詳細情報をキャプチャしたアクセスログを提供する
  - 各ログには、リクエストを受け取った時刻、クライアントのIPアドレス、レイテンシー、リクエストのパス、サーバーレスポンスなどの情報が含まれる
## Amazon Budgests
  - 概要
    - AWSのサービスを使用する際に、コストや使用量などの予算を設定して管理できるサービス
    - 予算を超えた場合や超えると予測された場合にアラートを発信する機能がありコストの最適化に役立つ
## AWS CloudFormation
  - スタックの出力値のエクスポート
    - スタックの出力ちをエクスポートするには、スタックのテンプレートのOutputセクションのExportフィールドを使用する
    - これらの値をインポートするには、他のテンプレートの「Fn::ImportValue」関数を使用する
  - 例
    - 1つ目のテンプレートのOutputセクションにExportフィールドを追加することで、関連リソース情報を他のテンプレートと共有できる
    - 2つ目のテンプレートでは「Fn::ImportValue」関数を使用して、一つ目のテンプレートでエクスポートされた値をインポートし、アプリケーションリソースをデプロイするために必要なリソースを参照できる
## Amazon CloudTrail
  - 整合性検証機能
    - AWS CloudTrailは、改ざんを簡単に検証するためのログファイルの整合性の検証を提供する
    - CloudTrailがS3バケットにログファイルを保存する際に、ダイジェストファイルも作成する
    - ダイジェストファイルには、ログファイルのハッシュ値も含まれており、これを利用してログファイルの整合性を検証することが出来る
  - ログファイルの整合性の検証
    - ログファイルの整合性の検証を有効にすることで、ログファイルがS3バケットに配信された後に変更されたか、修正されたか、削除されたかを簡単に検出できる
## Amazon CloudWatch
  - procstat
    - procstatプラグインは、特定の実行中のプロセスのCPUメトリクスを収集して送信するために使用出来る
    - Amazon EC2 LinuxインスタンスでのCPU使用率の急上昇に関連するプロセスID（PID）を見つけるためにprocstatプラグインを設定して実行中のプロセスのCPUメトリクスを収集して送信出来る
    - ※デフォルトのCPU使用率メトリクスにはPID情報が含まれていないため
## Amazon Config
  - AWS Configのカスタムルールを作成して、セキュリティグループの変更を監視し、Systems Managerランブック（オートメーションドンキュメント）を使用して変更することで修正出来る
## Amazon Control Tower
  - 概要
    - 自身で作成したリソースやアカウントを一元管理していくサービス
  - ランディングゾーン
    - コントロールタワーで設定する管理画面をランディングゾーンと呼ぶ
    - 複数のアカウントの環境の設定やガバナンスを行うためのサービス
    - AWSのベストプラクティスに基づいた安全なマルチアカウント環境を提供する仕組みの総称
## Amazon Data Lifecycle Manager(Amazon DLM)
  - 概要
    - DLMを使用して、EBSスナップショットとEBS-backed AMIの作成、保持、削除を自動化できる。スナップショットとAMI管理を自動化すると次のことが出来るようになる
      - 定期的なバックアップスケジュールを実施して貴重なデータを保護する
      - 定期的に更新できる標準化されたAMIを作成する
      - 監査担当者または社内のコンプライアンスが必要とするバックアップを保持する
      - 古いバックアップを削除してストレージコストを削減する
      - 分離されたリージョンまたはアカウントにデータをバックアップするディザスタリカバリ用バックアップポリシーを作成する
## EC2
  - コンピュート最適化インスタンス
    - コンピューティング最適化インスタンスは、高パフォーマンスプロセッサと高いCPUパワーを備えており、コンピューティングバウンドな用途に最適
    - CPUを多く使用するレガシーアプリケーションのパフォーマンス改善に役立つ
  - 垂直スケーリング
    - システムリソース（CPU、メモリ、ストレージなど）を増強することでパフォーマンスを向上させる手法
  - 水平スケーリング
    - 複数のインスタンスやノードを追加することでパフォーマンスを向上させる手法
  - 起動テンプレート
    - 簡易スケーリングポリシー（シンプルポリシー）
      - 1つのメトリクスに足しいて1種類の調整値に基づいてスケーリングする
    - ターゲット追跡スケーリング
      - メトリクスおよびターゲットの値を決めると、その値を維持しようとスケーリングする方法
## EC2 Auto Scalling
  - ライフサイクルフック
    - Amazon EC2 Auto Scaling ライフサイクルフックは、Amazon EC2インスタンスの終了を制御し、Amazon Elastic Block Store(Amazon EBS)ボリューム上のすべての規制対象データの完全コピーをAmazon S3バケットに送信することが出来る
    - Amazon EC2 Auto Scalingライフサイクルフックを設定することで、インスタンスが終了する前に、インスタンスを Terminating:Wait ステータスにすることが出来る。これにより規制対象データの完全コピーがAmazon S3バケットに送信されるまで、インスタンスの終了を一時停止できる
## Amazon EFS
  - パフォーマンスモード
    - 汎用パフォーマンスモードと最大I/Oパフォーマンスモードの2つがある
    - ファイルシステムを作成するときに、ファイルのシステムのパフォーマンスモードを選択する。変更は不可
## Amazon ElastiCache for Redis
  - Redisでのクラスターのスケーリング
    - Amazon ElastiCache for Redisのクラスタモードを有効にしたレプリケーショングループにおいて、ノードグループ（シャード）の数を追加することで、読み取りと書き込みの容量を増やすことができる
## Amazon EventBridge
  - EventBridgeを使用した非準拠タグのモニタリング
    - EventBridgeを使用することで、非準拠のタグが導入されたときに監視することが出来る
## Amazon ElastiCache for Memcached
  - Evictions
    - データが保存されていき、maxmemoryに到達したとき発生する挙動のこと。どのような挙動をするかは、パターンから選択可能
    - 例えば、有効期限（TTL）が短いキーから削除してスペースを確保したり、ランダムにキーを執行させる方法などある
## IAM
  - プリンシパル
    - プリンシパルとは、アクションを実行する人、ユーザー、アプリケーションを指す
  - グローバル条件キー 
    - aws:PrincipalOrgID
      - このキーを使用して、リクエスと元のプリンシパルが属するAWS Organizationsの組織の識別子とポリシーで指定された識別子を比較する
## AWS KMS
  - キーローテーション
    - 自動キーローテーションを有効にすると、実際にはデフォルト地でキー有効尾から365日後、およびその後365日ごとに自動的にローテーションされる。７日間の頻度でローテーションを実行することは、自動キーローテーションの設定ではサポートされていない
    - インポートされたキーマテリアルを使用したAWS KMSキーは手動でローテーションが必要
    - 新しいKMSキーを作成し、キーエイリアスを更新することでローテーションが実現出来る
## AWS Network Firewall
  - 概要
    - VPC向けのファイアーフォール、IDS／IPS（補足参照）を提供するマネージドサービス
    - VPCレベルで機能し、サブネットなどの下位リソースでは機能しない
　  - VPCに出入りするトラフィックに対してディープパケットインスペクション（DPI）（補足参照）を実行できる
  - 3つのコンポーネントで構成されている
    - ファイアウォール
    - ファイアウォールポリシー
    - ルールグループ
## AWS S3
  - VPCエンドポイント
    - Amazon S3ゲートウェイエンドポイントをVPCに接続し、プライベートサブネットのルートテーブルを構成することで、プライベートサブネット内のAmazon EC2インスタンスがAmazon S3 バケットへアクセス出来るようになる
  - S3 Transfer Acceleration
    - グローバルに分散されたエッジロケーションを使用して、長距離でのファイルの高速、簡単、かつ安全な転送を可能にする
    - S3バケットへのデータ転送が最適化され、遠隔地域からのアップロード速度が向上する
  - S3 オブジェクトロック
    - コンプライアンスモード 
      - AWSアカウントのrootユーザーを含めて、ユーザーが保護されたオブジェクトのバージョンを上書き、または削除することはできない
      - コンプライスモードでオブジェクトロックをすること、そのリテンションモードを変更することはできず、保持期間を短縮することはできない
    - ガバナンスモード
      - 特別なアクセス許可を持たない限り、ユーザーはオブジェクトのバージョンの上書きや削除、ロック設定を変更することはできない
      - ガバナンスモードでは、ほとんどのユーザーからのオブジェクトの削除を防止するが、必要に応じて一部のユーザーにリテンション設定の変更、またはオブジェクトの削除の許可することができる

## AWS Secrets Manager
  - コード内にハードコードされた認証情報（パスワードを含む）をSecrets ManagerへのAPIコールで置き換えてプログラムでシークレットを取得することが出来る
## AWS Serivce Catalog
 - 企業内のアプリケーションやサービスの標準化されたインフラストラクチャを提供することができる
## AWS System Manager
  - オートメーションランブック
    - 概要
      - 事前定義された一連の手順を自動化するためのツール
      - 反復的な運用タスクを自動化し、ミスを減らし効率化を図ることができる。AWS環境の管理を簡素化するのに役立つツール
    - 特徴
      - 自動化された手順
        - 事前に定義された一連の手順をランブックとして保存できる
        - ランブックにはEC2インスタンスの起動、パッチ適用、AMI作成などの操作が含まれる
      - 再利用性
        - 作成したランブックは他のユーザーや環境でも再利用できる
        - 標準化された手順を共有・適用することができる
      - 柔軟性
        - ランブックはJSONやYAMLで記述でき、カスタマイズ可能
        - 入力パラメータを設定したり条件分岐を設定できる
      - 監視と記録
        - ランブックの実行状況を確認でき、ログを保存できる
        - 実行履歴の確認やトラブルシューティングに役立つ
## AWS Systems Manager Session Manager
  - 概要
    - SSHやRDP（Remote Desktop Protocol）を使わずにEC2インスタンスにアクセス出来るサービス
    - インスタンスがSession Managerでアクションを実行できるようにするためには、インスタンスに適切な権限を持たせる必要がある
## Amazon OpenSearch Service
  - 概要
    - さまざまなデータ保存サービスと統合され、それらのデータを効果的に検索および分析できる
## AWS Organizations
  - AWS CloudFormation StackSets
    - 1回の操作で複数のアカウントとAWSリージョンに渡ってスタックを作成、更新、または削除することが出来る
    - AWS Organizationsの管理アカウントのユーザーは、組織内または特定の組織単位（OU）のアカウントにスタックインスをデプロイするサービス管理された権限んでスタックセットを作成することが出来る
## VPC
  - VPCフローログ
    - VPCのネットワークインターフェイス間で送受信されるIPトラフィックに関する情報をキャプチャする機能
    - 関連するトラフィックがまだ送信されていない場合、フローログにキャプチャされる情報がなくロググループがAmazon CloudWatchで表示されない
    - VPCフローログレコードでは、デフォルトでは最大の集約間隔が10分に設定されており、その期間内に集約される。したがって管理者が10分未満しか待機していない場合は、ロググループがAmazon ClouWatchで表示されない可能性がある
  - NATゲートウェイ
    - インバウンドトラフィックを許可せず、アウトバウンドトラフィックに対して静的IPアドレスを提供できるため、サードパーティのサービスに対応することができる
## 補足
### ディープパケットインスペクション（DPI）
- ネットワーク上を流れるデータの詳細な解析を行い、データパケットの内容を検査する技術
- DPIは、パケットの送信元・送信先のアドレスやプロトコルといったヘッダ情報だけなく、通常の解析ではチェックしないペイロード（実際のデータ部分）までを解析することが特徴
### IDS／IPS
- IDS（Intrusion Detection System）不正侵入検知システム
  - 不正アクセスされたり異常な通信があったりした時にその侵入を検知して管理者に通知するシステム
- IPS（Intrusion Prevention System）不正侵入防御システム
  - 不正アクセスなどの異常を検知したときに、自動で通信士を遮断するシステムとしてIPSがある
### MemcachedとRedisの比較
  - 自動フェイルオーバーを備えたマルチAZ
    - Amazon ElastiCache for Redis（クラスターモードが有効）は、マルチAZをサポートしており、自動フェイルオーバーを提供する
    - 障害が発生した場合でもアプリケーションの可用性が維持される
  - オンラインリシャーディング
    - リシャーディングとは、ストリーム内のシャードの数を増減させること
    - Amazon ElastiCache for Redis（クラスターモードが有効）は、オンラインリシャーディングをサポートしている
    - これによりクラスタのシャードを追加または削除することで、リソースの使用率やパフォーマンスを柔軟に調整出来る