未経験エンジニアがAWSアソシエイト勉強でつまづいた内容 part5

<h3>DynamoDB特徴</h3>

・インデックスを持ったテーブルを構築することでスループットを向上させることができる

・３つのAZにテーブルを保持することにより、信頼性を向上させている

Dynamo DBでは、テーブル内のデータに高速にアクセスできるよう、様々なインデックス（書籍の索引のようにデータを一意に特定する仕組み）を作成することができる
インデックスを効果的に作成することはスループットの向上につながり、コストダウンの効果も期待できる

Dynamo DBでは自動的に３つのAZにデータが保存される
単一障害点（SPOF：Single Point Of Failure：ある箇所が故障すると、システム全体が機能不全になる箇所）を持たず、高い信頼性を持つ

<h3>AWS Organizationsで実現できること</h3>

複数のAWSアカウントをまとめて管理する機能に「AWS Organizations」がある
AWS Organizationsでは、管理するAWSアカウントに対して権限を設定したり、管理するAWSアカウントへの請求情報をひとまとめにすることができる

<h3>クラウドコンピューティングサービスモデル</h3>

クラウドコンピューティングの代表的なサービスモデルに、IaaS、PaaS、SaaSがあります

・IaaS（Infrastructure as a Service)
ネットワークやストレージを含むサーバー機能を提供するサービスです。ユーザーはサーバーのスペックを選択し、OSやミドルウェアの導入をする。

・PaaS(Platform as a Service)
OSやミドルウェア、ランタイムなどのアプリケーション実行環境を含むプラットフォームを提供するサービスです。
ユーザーはインフラを意識せずに、アプリケーションの開発・導入ができる

・SaaS（Software as a Service)
アプリケーションを含むすべての機能を提供するサービスです
ユーザーは機能オプションを設定するだけでアプリケーションを利用できる。

<h3>Auto Scalingグループでスケールアウトが発生した時に起動するリソース</h3>

・起動設定で設定したインスタンスが起動する

Auto Scalingグループでスケールアウトが発生した時に起動するリソースは、Auto Scalingの「起動設定」で設定する。例えば、Amazon EC2の場合は、AMIやインスタンスタイプ、セキュリティグループなどEC2インスタンスを作成するための設定と同じ項目を指定する。

<h3>EC2インスタンスのメモリ使用量をAmazon CloudWatchの監視対象に加えたい手段</h3>

・EC2インスタンス上で取得した情報をCloud Watchへプッシュしカスタムメトリクスとして扱う

Amazon CloudWatchが監視する様々なリソースの情報は「メトリクス」と呼ばれる
あらかじめ定義されているメトリクスは「標準メトリクス」と呼ばれており、AWS側で取得できるリソースに関数する情報が提供されている。EC2においてはインスタンスのCPU使用率やディスクの使用状況（読み取り・書き込みの量）が標準メトリクスに該当する
一方、メモリ使用量やディスクの空き容量などのインスタンス内部の情報はAWSでは取得できないため、ユーザーがカスタムメトリクスとして取得する必要がある

カスタムメトリクスを設定するには、EC2インスタンスへ「CloudWatchエージェント」をインストールし、AWS CLIコマンドやAPIを用いて監視項目をCloudWatchへ送信する。

<h3>Active Directory(AD)</h3>

Windows OS向けのディレクトリサービス
認証を統合したり、ファイルやディレクトリなどに対するアクセス制限を行うこともできる。
ADは内部でクライアントを制御するためにSMBプロトコルを利用している
AWSのStorage GatewayのファイルゲートウェイはSMBに対応しており、オンプレミスのADとの統合もサポートされている

SMB(Server Message Block),NFS(Network File System)
どちらもサーバーなどへ保存されたファイルを複数のクライアントで共有するためのネットワークプロトコル（通信手順）

<h3>AWS Elastic Beanstalk</h3>

AWS Elastic Beanstalkは、アプリケーションが動作する定番の構成を提供する
アプリケーションの開発者は、Elastic Beanstalkによって用意されている定番構成の中からアプリケーションの実行環境に適したものを選んで数クリックするだけで、環境（インフラ）を作成することができる
EC2インスタンスは、OSはもちろん、Webサーバーソフトウェアやアプリケーションの実行環境などがインストール・設定された状態で提供される。単一インスタンス・複数インスタンス（Multi-AZ）の構成を選択でき、関連する各種AWSサービス（ELBやS3、Auto Scalingグループなど）も設定済みのため、開発者はアプリケーションをアップロードするだけでデプロイ（実行環境への展開）を行うことができる。

EC2インスタンスが複数のAZに配置された可用性の高い構成を組むことができる。ELBが自動的に構成される

<h3>Auroraのエンドポイントについて</h3>

Auroraにおいて、データベースインスタンスへの接続は「エンドポイント（接続先）」によって制御される
エンドポイントの種類は以下の通り

クラスターエンドポイント
更新・参照・データベースの定義変更など、データベースへの全てのアクセスを行う
接続先：プライマリインスタンス

読み取りエンドポイント（リーダーエンドポイント）
参照のみを行う
接続先：レプリカインスタンス

インスタンスエンドポイント
インスタンスへの直接アクセスを行う。接続先のインスタンスによって可能な操作が異なる
・プライマリインスタンスへ接続した場合
更新やデータベースの操作等
・レプリカインスタンスへ接続した場合
参照
接続先：各インスタンス

クラスターエンドポイントは更新も参照も行うことができるが、参照クエリが多いと更新処理を圧迫してしまう
用途ごとにエンドポイントを使い分けることで負荷を分散し、全体的なパフォーマンス改善を図ることができる

<h3>Amazon EFSのスループットモードについて</h3>

Amazon EFS（Elastic File System)では、ファイルシステムに対する読み取り・書き込み性能（パフォーマンス）をユーザが調整できる
パフォーマンスの設定には、ファイルシステムの作成時にのみ設定する「パフォーマンスモード」と、運用中に変更が可能な「スループットモード」がある。パフォーマンスモードではファイルシステムの基本的な性能を設定し、スループットモードでは秒間の転送容量（GB/秒）を調整して一時的な高負荷に対応することができる

スループットモードには以下の２つがある
・バーストスループットモード
ストレージ容量に従ってベースライン性能（基本性能）が設定され、一時的に負荷が高くなった場合はベースライン性能の２倍まで性能向上できる。

・プロビジョンドスループットモード
ユーザーが予約した（provisioned)性能をAWSが保証してスループットを提供する

バーストスループットモードのベースライン性能はストレージの容量によって設定されるため、データ量が多ければ多いほど高いスループットを得ることができる。
逆に、データ量は少ないがアクセス頻度の多いようなケースではバーストスループットモードでは性能要件を満たせない場合がある。その場合はプロビジョンドスループットモードに設定することで最適な性能を得ることができる。

<h3>Amazon EBSによるRAIDの性能向上</h3>

Amazon EBS（Elastic Block Store）では、アタッチしているEC2インスタンスのOSの機能を利用してEBSボリュームのRAID（Redundant Arrays of Inexpensive Disks:レイド）構成を組むことができる
RAIDとは複数のボリュームを論理的に１つのボリュームとして構成する技術のこと
RAIDにはいくつかの種類があるが、そのうちの１つ「RAID ０」は、複数のボリュームへデータを分散して書き込むことによって、1台のボリューム続けて書き込むよりも高速にデータアクセスを行うことができる（ストライピング）
EBSボリュームの性能上限はio1又はio2のプロビジョンドIOPS次第ですが、上限値を超えた性能が必要な場合、RAID０を構成することによって性能向上が見込める

ただし、RAIDを構成している場合はスナップショットの取得時に注意が必要
単独のEBSボリュームだけではリストア時にデータの不整合など問題が発生する可能性があるため、複数のボリュームに対してスナップショットを取得する「マルチボリュームスナップショット」を使用する
マルチボリュームスナップショットでは、特定のボリュームではなく、ボリューム群でをアタッチしているEC2インスタンスを指定してスナップショットを取得する

<h3>Auto Scaling　ライフルサイクルフックで実現可能なこと</h3>

・スケールアウトによって新たに追加したインスタンスに初期化スクリプトを実行させる
・スケールインによって終了するインスタンスにログを収集・退避させる

ライフサイクルフックは、スケーリング発生によるEC2インスタンスの起動または終了時に任意の処理を実行する機能
例えば、スケールアウト（リソースの増加）によって新たに追加したインスタンスに初期化スクリプトを実行させたり、スケールイン（リソースの削減）によって終了するインスタンスにログを収集・退避させるといった処理が行える

<h3>CIDR（Classless Inter–Domain Routing）</h3>

CIDRとは、ネットワークの範囲を指定するIPアドレスの設定方法のこと
CIDRはIPアドレスを「172.16.0.100/24」のように表記する
この「/24」をプレフィックス長と言い、IPアドレスとプレフィックス長によって所属するネットワークが決まる
プレフィックス長が「/２４」の場合、IPアドレスを２進数表記した時に左から２４ビット目までの範囲がプレフィックス
プレフィックスに該当するIPアドレスの部分がネットワークアドレスとなり、このネットワークアドレスの範囲を「CIDRブロック」という

VPCを利用するには最初にVPCを作成し、その後にサブネットを作成する
VPCとサブネットの作成時に、それぞれネットワークアドレスの範囲をCIDRブロックで指定する
VPCの中にサブネットが存在するので、サブネットのCIDRブロックはVPCのCIDRブロックの範囲内で作成する必要がある
例
VPC：127.16.0.0/18で
サブネット：10.0.0.0/22や172.16.0.0/16のCIDRブロックは作成できない

VPCではCIDRブロックのプレフィックス長を/16から/28の間で指定する。
AWSは次のプライベートIPv4アドレス範囲から、CIDRブロックを指定することを推奨している
・10.0.0.0~10.255.255.255
・172.16.0.0~172.31.255.255
・192.168.0.0~192.168.255.255

<h3>ECSタスク定義で設定するもの</h3>

・コンテナから他のAWSサービスへアクセスするための権限

<h3>NATゲートウェイとNATインスタンス</h3>

・NATゲートウェイ
プライベートサブネットからインターネットへの通信を可能にするIPv4専用の機能
NAT（Network Address Translation）とは、IPアドレスを別のIPアドレスに変換する機能のこと。
プライベートサブネット内にあるAWSリソースのプライベートIPアドレスを、NATゲートウェイのパブリックIPアドレス（Elastic IPアドレス）に変換し、インターネットへ接続する。
NATゲートウェイを利用するには、Elastic IPアドレスを割り当てたNATゲートウェイをパブリックサブネット内に作成し、プライベートサブネットのルートテーブルにターゲットがNATゲートウェイのルーティングを設定する。
NATゲートウェイはプライベートサブネット内リソースからインターネットへの接続開始要求は通すが、インターネットからプライベートサブネット内リソースへの接続開始要求は通しません。
NATゲートウェイはAWSによってAZ内で冗長化されており、NATゲートウェイの機器障害時やトラフィック増加時でも継続して利用できる
ただし、AZに障害が発生した場合には利用できなくなるため、さらに可溶性を高める場合は複数のAZにそれぞれNATゲートウェイを配置する必要がある

・NATインスタンス
NATゲートウェイと同じく、プライベートサブネットからインターネットへの通信を可能にするIPv4専用の機能
NATゲートウェイはマネージドサービスなのに対し、NATインスタンスはEC2インスタンスから作成するため、ユーザーが障害対応などの運用管理を実施する必要がある。
NATインスタンスを利用するには、パブリックサブネットにパブリックIPアドレス又はElastic IPアドレスを割り当てたNATインスタンスを作成した後、プライベートサブネットのルートテーブルにターゲットがNATインスタンスのルーティングを設定する。
NATインスタンスはNATゲートウェイと同じく、プライベートサブネット内リソースからインターネットへの接続開始要求は通すが、インターネットからプライベートサブネット内リソースへの接続開始要求は通さない

NATインスタンスは、NATゲートウェイでは利用できないポート転送機能を設定できる。ここで言うポート転送とは、インターネットから送信された特定のポート番号宛のデータを、プライベートサブネット内にあるインスタンスの別のポートへ転送することを言う

NATインスタンスは運用管理が必要ですが、NATゲートウェイでは利用できないポート転送機能を設定できたり、VPC外からプライベートサブネットないへ接続する際の踏み台サーバーとして利用できる。
ポート転送とは、インターネットからNATインスタンスの特定のポート番号に接続したとき、プライベートサブネットないにあるサーバーの保守をしたい場合に、一旦NATインスタンスへSSH接続をした後、NATインスタンスから目的のサーバーへ再度SSH接続することで、VPC外からは直接接続できないプライベートサブネット内のサーバーへの接続を可能にするもの

<h3>CloudWatchで取得できないログ</h3>

・カスタムメトリクス
メモリ使用量、ディスクの空き容量・使用状況、プロセス情報

上記は、通常のCloudWatchでは取得できない
取得したい場合は、EC2インスタンスへ「CloudWatchエージェント」をインストールし、AWS CLIコマンドやAPIを用いて監視項目をCloudWatchへ送信する

<h3>S3のACL（アクセスコントロールリスト）</h3>

S3のACLは、AWSアカウント単位で、アクセス権限を設定する機能
他のAWSアカウントに対して、オブジェクトもしくはバケットへの読み取り/書き込みを許可する

<h3>Amazon Aurora特徴</h3>

・データベースインスタンスとストレージが分離しており、必要に応じてインスタンスだけを増減できる

・ストレージは破損したデータの検出と修復を自動的に行うことができる

Amazon Auroraは、Amazonが設計・開発したMySQL/PostgresSQL互換のデータベースエンジン
フルマネージド型サービスであるAmazon RDS（Relational Database Service）で利用可能なデータベースエンジンですので、データベースのスケーリング（拡張、縮小）、高可用性、バックアップ、OS/データベースソフトウェアへのパッチ、サーバーの電源やメンテナンスなどは RDS（AWS）によって管理される

 Auroraには以下のような特徴がある
・データベースインスタンスとストレージが分離したアーキテクチャ
データベースインスタンスだけを必要に応じて増減できる。
手動でのデータベース管理が不要なサーバーレス構成や、最大15台のレプリカ（複製）インスタンスなど柔軟な構成が可能
・複数のデータコピーと自動修復機能などによるストレージの耐障害性
ストレージは、デフォルトで3つのAZに2つずつ（計6つ）のデータコピーが作成される。
これらのストレージは「クラスタボリューム」というクラスタ構成で管理される
 Auroraのクラスタボリューム内のストレージは互いに監視しあっており、データの破損が発生しても自動で検出、修復する。

<h3>Amazon RDSのパラメータグループおよびオプショングループについて</h3>

タイムゾーンや最大接続数、監査ログの有効化など、データベースの設定を変更したい場合、 RDSでは「パラメータグループ（クラスターパラメータグループ）」又は「オプショングループ」で定義する

パラメータグループ、オプショングループはDBエンジンごとに作成するパラメータ又はオプションの定義グループで、作成後は複数のデータベース（又はデータベースクラスター）へアタッチできる。
データベースを作成するとデフォルトのパラメータグループおよびオプショングループがアタッチされるが、デフォルトのグループ編集ができない
設定変更したい場合は新たにパラメータグループ又はオプショングループを作成し、データベースへアタッチする必要がある

<h3>データ転送用サービスについて</h3>

AWS DataSyncは、オンプレミスとAWS間、またはAWSストレージ間のデータ転送サービス。AWSのストレージにはS3やAmazon EFS、Amazon FSxなどがある。
データは暗号化されて転送されるため、安全かつ高速なデータ転送を行える

AWS DataSyncと同様のデータ転送サービスにはAWS SnowballやStorage Gatewayがある

Snowballは大容量のデータ転送向けのサービス
利用者に対して大容量のストレージを備えた機器がAWSから貸し出され、移行対象のデータを機器へ取り込んでからAWSへ返送すると、データがAmazon S3へ保存される仕組み

AWS Storage Gatewayは、オンプレミス（自社環境）からAWSのストレージサービスへのアクセスを高速かつセキュアに行うことができるサービス
堅牢性・耐久性に優れた S3をファイル共有ストレージとして利用したり、災害対策を目的としたバックアップやアーカイブを行ったり、あまりアクセスされないデータを自社サーバーからAWSへ移動させる（ストレージの階層化）など、様々なケースで利用できる。
Storage Gatewayは、AWSへデータを移行した後もオンプレミスから継続してアクセスしたいようなケースで利用する

<h3>Amazon SQS ロングポーリング　ショートポーリング</h3>

Amazon Simple Queue Serviceにおいて、キューからメッセージを取得する方式には「ショートポーリング」「ロングポーリング」の2種類がある

ポーリング
機器などに対して、一定間隔で順番に問い合わせ（データの送信要求など）を行うこと

メッセージ取得する際、ショートポーリングではメッセージがあった場合はメッセージを返、メッセージがない場合でも即座に「空である」というレスポンスを返す

一方ロングポーリングでは、メッセージがあった場合はメッセージを返す点は同じですが、メッセージが空である場合は設定された時間（最大20秒）を待つ
時間が経過してもメッセージを得られない場合は、「空」というレスポンスがかえる。

ショートポーリングの場合は SQSに対するAPIコールの数が増えやすく、コストが高くなる可能性がある
その場合、ロングポーリングを使用してAPIコール数を抑えることにより、コストを削減できる可能性がある。

<h3>オンプレミスからAWSへAWS Direct Connectでの接続方法　単一障害点が内設計</h3>

AWS Direct Connectロケーションとは、オンプレミスとAWSのデータセンターとを相互に接続するポイントのこと
各リージョンに複数用意されており、ユーザーは接続するロケーションを選択できる。東京リージョン（ap-northeast-1)では、東京や大阪など5つのロケーションが用意されている
Direct Connectでは、オンプレミスから複数のDirect Connectロケーションへの接続をサポートしている。利用しているロケーションの障害に備えて複数のロケーションへ接続することで、可用性を高められるようになっている
例えば、オンプレミス環境から東京に存在するロケーションと大阪に存在するロケーションへDirect Connectを接続することで、自然災害時の影響を少なくすることが期待できる。

複数のDirect Connectロケーションを利用することで、単一障害点が内設計にできる。
単一障害点（SPOF：Single Point Of Falure）
ある箇所が故障すると、システム全体が機能不全になる箇所

<h3>SQS、CloudWatch、Auto Scalingを組み合わせたサーバーの自動スケーリング構成</h3>

・SQS
アプリケーションやサービス間を連携するメッセージキューイングサービス
「メッセージキューイング」とは個々のサービスやシステムを「メッセージ」を使用して連携する仕組みのこと

・Auto Scaling
AWSリソースを負荷状況や設定したスケジュールに従って、自動的にスケーリングする機能
スケーリングの発生条件のうち「動的スケーリング」は、CPUやネットワークなどのパフォーマンスの負荷状況に応じて、自動的にスケールアウト（リソースの増加）/スケールイン（リソースの削減）を実施する

リクエストが急激に増加した場合、 SQSとCloudWatch、Auto Scalingを連携することでサーバーを自動的にスケーリングできる。
リクエストの増加によりSQSに滞留したメッセージ数が閾値を超えた時にCloudWatchがアラートをあげ、Auto Scalingがサーバーを増やす。キューにメッセージがなくなり次第スケールインすることで、コストを抑えた運用が実現できる。

※Amazon SNSからAuto Scalingグループには通知を出すことができない

SQSのメッセージキューの状態はAmazon CloudWatchにより取得・監視できる
例
「最も古いメッセージの期間（ApproximateAgeOfOldestMessage)」によりキュー内で削除されないまま残っているメッセージの経過時間を確認できる。
「キューから取得可能なメッセージ数（ApproximateNumberOfMessagesVisible)」によりキュー内に存在するメッセージの数などを取得できる。

上記を用いればSLAによりオーダーの応答時間が求められても対応することができる。
SQSのメトリクス「最も古いメッセージの期間（ApproximateAgeOfOldestMessage)」はメッセージが削除されずにキュー内に残っている時間、つまりメッセージが未処理のままキュー内でどれだけ時間が経過しているかを取得できる。
SLAで定められた応答時間が1分で、メッセージ1つあたりの処理時間が5秒ほどかかる場合、「キュー内のメッセージ残留時間が50秒を超えないようにスケーリングする」という運用をすることが可能

SLA（Service Level Agreement：サービスレベル合意書）
サービス提供者と利用者の間で交わされる契約文書のこと
サービス品質保証に関する事柄（回線速度やサーバー/アプリケーションの応答速度の最低基準など）が記載されている。

<h3>Dynamo DBの整合性について</h3>

Dynamo DBでは、自動的に3つのAZにデータが保存される
アプリケーションが書き込みを行なった場合、3つのAZのテーブルのうち2つのテーブルに書き込みができた時点で完了とみなされる。
残りの1つには後からレプリケートされる。このレプリケートされるまでの間は、書き込みが行われた後の結果と書き込みが行われる前の結果が混在することになる。この時、レプリケートが完了していないテーブルに対して読み込みが発生すると、古いデータを読み出してしまう可能性がある
Dynamo DBでは以下の2つの読み込みモードをサポートしている。
・結果整合性のある読み込み（デフォルト）
一時的には読み込んだデータが最新ではないタイミングが発生する可能性はあるが、最終的には読みだすデータは最新のものとなる（書き込みから少し時間を置くと回避できる）
・強力な整合性のある読み込み
必ず最新のデータを取り出すことができる
ただし読み込み時のコストが2倍になる、レイテンシが高くなる可能性がある、などの条件がつく

<h3>セキュリティグループとネットワークACL インバウンドルール　アウトバウンドルールのデフォルトの設定について</h3>

・セキュリティグループ
インバウンドルール　全てのインバウンド通信を拒否
アウトバウンドルール　全てのアウトバウンド通信を許可

・ネットワークACL
インバウンドルール　全てのインバウンド通信を拒否
アウトバウンドルール　全てのアウトバウンド通信を拒否

<h3>S3のアクセス制御方法</h3>

・ユーザー（IAM）ポリシー
IAMユーザー単位でアクセス権限を設定する機能

・バケットポリシー
バケット単位でアクセス権限を設定する機能
アクセス元のIPアドレスやドメイン単位でのアクセス制御が可能

・署名付きURL
非公開設定されたオブジェクトに対して有効期限のついたURLを発行し、AWSアカウントを持っていないユーザーでも一時的にアクセスが可能になる機能

・ACL（アクセスコントロールリスト）
AWSアカウント単位でアクセス権限を設定する機能
他のAWSアカウントに対して、オブジェクトもしくはバケットへの読み取り/書き込みを許可する
アクセス元のIPアドレスやドメイン単位でのアクセス制御はできない

<h3>SMBプロトコルに対応した共有ファイルを実現できるサービス</h3>

・Amazon FSx
Amazon FSx For Windowsファイルサーバーは、 SMBプロトコルを介して Windows Server（OS）上に構築されたファイルシステムを提供するフルマネージドのストレージサービス

Amazon EFSはLinuxベースの共有ファイルシステム

SMBプロトコル
主に Windowsコンピュータ間において、ファイル共有やプリンタ共有に使用されるプロトコル

<h3>Route53 ホストゾーン</h3>

Route 53ではゾーン情報を「ホストゾーン」で管理する。管理対象となるドメイン名がホストゾーンの名前になる。ホストゾーンは管理するドメインの範囲によって2種類に分かれている

・パブリックホストゾーン
インターネットなどVPC街に公開されたドメインのDNSレコードを管理する

・プライベートホストゾーン
VPC内に公開されたドメインのDNSレコードを管理する

<h3>S3ストレージクラスの種類</h3>

・S3 Standard(S3 標準）
 S3へデータをアップロードした際に、デフォルトで選択されるストレージクラス
データはリージョン内の3箇所以上のAZに保存されるため、耐久性と可用性に優れている
保存したデータに無料・低遅延でアクセスができるため、アクセス頻度が高いデータに適している。

・S3 Standard-Interfrequent Access（S3標準-低頻度アクセス）
保存料金がS3 Standardと同じ耐久性と可用性を持ち、又低遅延でのデータ取り出しができる。
保存料金がS3 Standardより安くなっているため、データ取り出し料金が別途課金される。
頻繁にアクセスしないがアクセス時には低遅延が求められる場合に適している。

・S3 Intelligent-Tiering 
実際の利用状況に応じて「S3 Standard-IA」に自動的にデータを移す
アクセス頻度の予測が難しいデータに適している

・S3 One Zone-Infrequent Access(S3 1ゾーン-低頻度アクセス)
S3 Standardと同じく、低遅延でのデータ取り出しができる
保存料金がS3 Standardより安くなっている分、別途データ取り出し料金が課金されるのと、保存したデータはリージョン内の1箇所のAZにのみに保存される
AZに障害が発生した場合は保存されたオブジェクトにアクセスできなかったり、データが消失する可能性があるため、そのようなリスクよりも安価に保存することが優先されるデータに推奨される。
IAよりも保存料金が安い

・S3 Glacier
S3 Standardと同じ耐久性と可用性をもつ
保存料金がS3 Standardより安くなっている分、保存したデータの取り出しに課金と遅延が発生する。アクセス頻度が低く、データの取り出しに数分〜数時間かかっても問題のないデータに適している

・S3 Glacier Deep Archive
S3 Standardと同じ耐久性と可用性をもつ
S3ストレージクラスの中で、最もデータの保存料金が安くなっている分、保存したデータの取り出しにS3 Glacierより高い取り出し料金と、長い遅延が発生する。半年以上の長期保存を前提としており、アーカイブデータに適している

<h3>AutoScalingに対応できない DB</h3>

・ElasticCache,Redshift

※RDSは一応は利用できるが、拡張のみしか行うことができない

<h3>CloudFormation スタックセット</h3>

AWS CloudFormationで作成したテンプレートをもとに、複数のAWSアカウントで、または複数のリージョンでスタックを構築したい場合には「スタックセット(StackSets)」を利用する。管理アカウントで作成したテンプレートを利用して、ターゲットアカウント（プロビジョニングを行うアカウント）とプロビジョニングを行うリージョンを指定することで、一度の操作で複数の同じ環境を構築できる。
テスト環境を複数構築したい場合や、新たにアカウントを払い出す際に下準備となる操作（IAMやセキュリティグループの設定など）をスタックセットとして作成しておくといった利用ができる。

<h3>CloudTrail証跡情報を登録することで実現できること</h3>

・90日以上の操作ログの保存
・ログを記録するイベントの種類の設定
・保存する先のS3バケットの設定

操作ログの詳細情報の参照はデフォルトで可能
CloudTrailでは、Lambdaの呼び出しを記録する設定はできるが、Lambdaとの連携機能はない

<h3>AWS Storage Gateway ファイルゲートウェイ</h3>

ファイルゲートウェイは、オンプレミスからNFS又は SMBを介して S3バケットへアクセスできるようにするゲートウェイタイプ
ローカル（オンプレミス）にキャッシュストレージを保つため低レイテンシでのアクセスも可能
ユーザーごとにアクセスするバケットを制御したい場合はIAMロールで制御することができる

<h3>SSE-C</h3>

・ユーザーが管理している鍵を使用する（SSE-C）
「SSE-C」は S3側で暗号化を行う「サーバー側の暗号化」の一つで、暗号化には「ユーザーが管理している鍵」を使用する

特徴としては、
鍵はユーザー側で管理している
S3側で暗号化を行う

<h3>SQSの遅延キューとメッセージタイマーについて</h3>

遅延キューとメッセージタイマーはメッセージの送信者が送信したメッセージを指定時間経過後に受信させたい場合に使用する

キューに投入されたメッセージは、指定された時間が経過した後に受信可能になる
遅延キューはキュー全体に作用し、メッセージタイマーは特定のメッセージに対して作用する

<h3> EFSの自動スケーリング</h3>

 EFSではデータ量に伴い自動的にスケーリング（拡張・縮小）が行われるため、利用開始にあたり事前に容量を確保する必要がない
保存したデータ量に応じて課金が発生する

<h3>責任共有モデルについて</h3>

AWSのセキュリティの考え方は、セキュリティ対策の責任をAWSとユーザーで分担する「責任共有モデル」

AWSとユーザーの責任範囲は、ユーザーが利用するAWSクラウドサービスに応じて変わる。AWSが提供するサービスの範囲はAWSがセキュリティ対策の責任を持ち、サービスを利用する上でユーザーが設定・変更できる範囲はユーザーがセキュリティ対策の責任を持つ

<h3>EBSボリュームの暗号化について</h3>

Amazon EBSでは、ボリュームやスナップショットを暗号化することで機密性を高めることができる。暗号化する際はAWS KMS（Key Management Service：暗号化するためのキー作成・管理するサービス）を利用する。
暗号化の設定はEBSボリュームの作成時に選択し、作成済みの EBSボリュームについては暗号化ステータスを後から変更することができない。
ただしスナップショット機能を利用することで、スナップショットをもとにボリュームを作成する際に暗号化を行うことができる。

<h3>CloudFront OAI(Origin Access Identity)</h3>

OAIは、 S3バケット内のコンテンツへのアクセスをCloudFront経由でのアクセスに限定し、クライアントから S3バケットへ直接アクセスされないようにする機能。クライアントからオリジナルコンテンツへの直接アクセスを制限することにより、オリジンサーバーのデータを保護できる

<h3>ルートテーブルについて</h3>

ルートテーブルはデータをどこに転送するかを定義する機能
ルートテーブルに従って、送信先ごとに指定したターゲットへデータを転送することを「ルーティング」という

送信先「0.0.0/0」は「デフォトルート」といい、他の送信先に当てはまらない場合は、デフォルトルートのターゲットへルーティングする

<h3>EFSのパフォーマンス設定</h3>

Amazon EFS(Elastic File System)では、ファイルシステムに対する読み取り・書き込み性能（パフォーマンス）をユーザーが調整できる
パフォーマンスの設定には、ファイルシステム作成時にのみ設定する「パフォーマンスモード」と、運用中に変更が可能な「スループットモード」がある
パフォーマンスモードではファイルシステムの基本的な性能を設定し、スループットモードでは秒間の転送容量（GB/秒）を調整して一時的な高負荷に対応することができる

スループットモードには以下の2つがある
・バーストスループットモード
ストレージの容量に従ってベースライン性能（基本性能）が設定され、一時的に負荷が高くなった場合はベースライン性能の2倍まで性能向上できる
・プロビジョンドスループットモード
ユーザーが予約した(provisioned)性能をAWSが保証してスループットを提供する

バーストスループットモードのベースライン性能はストレージの容量によって設定されるため、データ量が多ければ多いほど高いスループットを得ることができる。
逆に、データ量は少ないがアクセス頻度の多いようなケースではバーストスループットでは性能要件を満たせない場合がある。その場合はプロビジョンドスループットモードに設定することで最適な性能を得ることができる。

<h3>RDSの暗号化について</h3>

データベースインスタンスの暗号化を行うと、バックアップやスナップショット、ログ、RR（リードレプリカ：参照専用のデータベースレプリカ）へも暗号化が行われる
暗号化を行う場合はデータベースの作成時に指定する。
暗号化されていないデータベースインスタンスを暗号化したい場合は、対象のインスタンスのスナップショットを作成し、スナップショットをもとにデータベースインスタンスを復元すると、暗号化されたデータベースインスタンスが構築される。

<h3>EFSのACID</h3>

ACIDとは、原子性（Atomicity）、一貫性（Consistency）、独立性（Isolation）、耐久性（Durability）を意味する言葉で、更新処理中に中途半端なデータが書き込まれないことや、並行処理がそれぞれ独立して動作する（互いに干渉しない）ことなど、処理の信頼性を保証する性質をいう
 EFSはデータ更新時の操作結果が即時に他のデータへ反映され、操作直後でも最新のデータが参照できる「強力な整合性」を採用している
又、複数のAZで冗長化されているので高い耐久性がある。
 EFSは最大数千のEC2インスタンスから同時アクセス可能な、ACID特性のあるストレージ

<h3>Lambda関数が配置される場所</h3>

作成したLambda関数はLambda専用のセキュアなVPCに配置される
このLambda専用のVPCからは、インターネットや、インターネットを経由してパブリックサブネット内のAWSリソースにはアクセスできるが、プライベートサブネット内のAWSリソースへはアクセスできない

Lambda関数からプライベートサブネット内のAWSリソースへアクセスさせたい場合は「VPCアクセス」の設定をする。
VPCアクセスではアクセスしたいAWSリソースのあるVPCやサブネットの選択と、Lambda関数のセキュリティグループを設定する。
VPCアクセスを設定するとLambda関数がサブネットごとに接続用のENI（Elastic NetworkInterface）を作成して、プライベートサブネット内のAWSリソースへアクセスする。
VPCアクセスを設定したLambda関数は、ENIを作成したサブネットへアクセスできるようになる代わりに、インターネットへアクセスできなくなる

<h3>エイリアスコードで登録できるレコード</h3>

・Zone Apexの別名

Route 53にはエイリアスレコードという特別なDNSレコードがある
エイリアスレコードはCNAMEレコードでは登録できない
「Zone Apex」の別名を登録できる。Zone Apexとは最上位のドメイン名のことで、例えば「www.example.com」や「sub.example.com」のZone Apexが「example.com」です。
権威DNSサーバーにZone Apexを設定するとき、Zone ApexのNSレコードを必ず登録する必要がある。DNSの仕様にCNAMEレコードは別レコードで登録されているドメイン名を登録できないという制約があるため、すでにNSレコードが登録されたZone Apexの別名はCNAMEレコードで登録できない

例えば、ALBのドメイン名「example.us-east-1.elb.amazonaws.com」の別名として独自ドメイン名「example.com」をCNAMEレコードで登録しようとしても、「example.com」はZone Apexなので登録できない。このような場合にエイリアスレコードを利用すれば「example.us-east-1.elb.amazonaws.com」の別名として「example.com」を登録できる

<h3>EBS作成後の暗号化について</h3>

暗号化の設定はEBSボリュームの作成時に選択し、作成済みのEBSボリュームについては暗号化ステータスを後から変更することはできない
ただしスナップショット機能を利用することで、スナップショットを基にボリュームを作成する際に暗号化を行うことができる。
既存のEBSボリュームのスナップショットを作成した後、「スナップショットからボリュームを作成」のタイミングで暗号化ステータスを変更できる

<h3>プレイスメントグループ</h3>

Auto Scalingグループは自動スケーリング対象の管理単位
Auto Scalingグループ内でのリソースの最小数および最大数や、スケールアウト/インの実行条件などを指定する。障害等でリソースが停止してリソース数が指定した最少数未満になった場合、自動的に新しいリソースが起動される。

プレイスメントグループとは、複数のEC2インスタンスをグループ化し、インスタンス間で低遅延な通信を可能にする機能。例えば「クラスタープレイスメントグループ」では、グループ内のEC2インスタンスは単一AZ内の物理的に近い距離に配置されるため、通信の遅延が起こりにくく高速な通信が可能

複数のインスタンスをクラスタープレイスメントグループに所属させることで、インスタンス間は可能な限り低遅延で通信可能になる
又、Auto Scalingグループを作成することにより、インスタンスが異常停止した場合は自動的に新規のインスタンスが起動するので回復性も兼ね備えられる。