AWSアソシエイト勉強でつまづいた点 part6

<h3>DAX（DynamoDB Accelerator)</h3>

DynamoDBのインメモリのキャッシュクラスタ
DAXを利用することにより、ミリ秒（千分の一秒）だったレスポンスをマイクロ秒（百万分の一秒）レベルのパフォーマンスまで向上させることができる

<h3>Redshift クロスリージョンスナップショット</h3>

Amazon Redshiftでは、スナップショットを採取することでバックアップをとる。スナップショットは、 RedshiftのディスクイメージをAmazonS3へ保存する。

スナップショットは異なるリージョンへ保存することもできる。これを「クロスリージョンスナップショット」と呼ぶ
異なるリージョンへ取ったスナップショットから Redshiftクラスタを再構築できるので、大規模な災害への対策（Disaster Recovery：ディザスタリカバリ）や異なるリージョンで Redshiftクラスタを構築する場合に有効

<h3>リザーブドキャパシティユニット</h3>

Amazon DynamoDBにおけるプロビジョニングモードの書き込み・読み込みの単位は「キャパシティユニット」という単位で管理されている。
これは1秒間にどれだけ読み込み・書き込みを行うかを予約する設定で、容量が大きいほど料金がかかる

大規模に利用する場合は「リザーブドキャパシティ」を用いることもできる
リザーブドキャパシティはWCU、RCUともに100ユニット単位で予約購入する制度で、通常のプロビジョニングモードよりも割安に利用できる

<h3>DynamoDB Streams</h3>

Amazon DynamoDB Streamsとは、テーブルに対して行われた直近の24時間の変更（追加や更新、削除）をログに保存する機能
ストリームを参照することによって、いつ誰がどのようにテーブルを更新したかがわかる

<h3>Auto Scalingシンプルスケーリング</h3>

1つのメトリクス（CPU使用率などシステムのパフォーマンスに関するデータ）に対する1つの閾値に基づいて、インスタンスを増減する。

<h3>AWS Site-to-Site VPN</h3>

AWS Site-to-Site VPN(サイト間VPN）は、カスタマーゲートウェイ（オンプレミスのルーター）とVPCの仮想プライベートゲートウェイ（VGW：Virtual Private Gateway)を、インターネットVPNで接続するサービス
Site-to-Site VPNはインターネット上に仮想の専用線であるVPNトンネルをはり、IPsecという暗号技術を使って通信を保護する。

<h3>Amazon VPCが提供するサービス</h3>

・ネットワーク
Amazon VPC（Virtual Private Cloud）は、AWS上で動作する仮想ネットワーク環境を提供するサービス
VPCでネットワーク空間を作成し、その中にインスタンスなどのAWSリソースを配置する。なお、VPCのサービスで作成したネットワーク空ALBへのアクセスをAmazon CloudFront経由にして「地理的制限」を設定する
・AWS WAFをALBに割り当てて「Web ACL」で許可する国を設定する

Amazon CloudFrontには、「地理的制限」というクライアントからのアクセスを国別に制限できる機能がある。
クライアントの接続情報から接続元の国を判別して、ホワイトリストに設定した国からのアクセスは許可、ブラックリストに設定した国からのアクセスは拒否する。
例えば、特定の国に対して法律上の理由でコンテンツの配信ができない場合などに利用する。

AWS WAF（Web Application Firewall）の「Web ACL」にも地理的制限と同等の機能がある。AWS WAFは、脆弱性を突く攻撃（クロスサイトスクリプティングやSQLインジェクションなど）から、Webアプリケーションを保護するサービスです。Amazon CloudFront、 Application Load Balancer、Amazon API Gateway、AWS AppSyncに割り当てて利用する。

※セキュリティグループは、VPC上でネットワークアクセスをインスタンスごとに制御するファイアウォール

<h3>エンベロープ暗号化</h3>

AWS KMSでは「CMK（Cusomer Master Key：カスタマーマスターキー）」「CDK（Cutomer Data Key：カスタマーデータキー）」と呼ばれる2種類の鍵を使用してデータの暗号化および複合を行う。このように二段階で鍵を保護する方式を「エンベロープ暗号化（Envelope Encryption）」という
KMSでは、CMKとCDKという2段階で鍵を管理することによってセキュリティの向上を図る
※CMKは1つの鍵で運用される

「CMK」はCDKを暗号化する際に使用し、「CDK」はデータを暗号化する際に使用する。
CDKは通常、暗号化を行う対象のサービスごとに作成する。
これにより、1つのCDKが漏洩しても他のCDKで暗号化されたサービスへは影響しない。又、CDKをCMKで暗号化することによって、運用時に頻繁に使用されるCDKを保護する。

<h3>DynamoDB スキーマレス</h3>

DynamoDBはスキーマレスのデータベース
スキーマの更新に柔軟に対応できる。
スキーマとは、データベースの構造のこと。新たなデータ項目を追加する場合、通常はスキーマの変更と既存の格納ずみデータへのスキーマ変更に対応する修正を行う必要があるが、スキーマレスのデータベースではスキーマが存在しないので変更作業自体が不要になる。

<h3>ハードウェア占有インスタンス</h3>

ハードウェア占有インスタンスは、他のAWSアカウントとは分離された専用ハードウェアでEC2インスタンスを利用できる購入オプションです。物理的なCPUソケット、コア数、ホストIDは確認できない。ハードウェア占有インスタンスは、同AWSアカウントのハードウェア占有インスタンスではないインスタンスと、ハードウェアを共有する可能性がある。

<h3>Dedicated Hosts（占有ホスト）</h3>

Dedicated Hosts（占有ホスト）は、他のEC2インスタンスとは分離された専用ハードウェアで利用できる購入オプション。物理的なCPUソケット、コア数、ホストIDを確認できる。
Dedicated Hosts（占有ホスト）のハードウェアには、ユーザーが指定したインスタンスのみ配置される

<h3>NATインスタンス</h3>

NATインスタンスは、NATゲートウェイと同じくプライベートサブネットへの通信を可能にするIPv4専用の機能。NATゲートウェイはマネージドサービスに対し、NATインスタンスはEC2インスタンスから作成するため、ユーザーが障害対応などの運用管理を実施する必要がある。

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

<h3>AWSリソースの単位</h3>

グローバル：全世界
リージョン：地域
アベイラビリティゾーン（AZ）：リージョン内の物理的および論理的に区切られたデータセンター（群）

<h3>AWS Resource Access Manager</h3>

AWSリソースを複数のAWSアカウントで共有できるサービス

<h3>Amazon EMR</h3>

Amazon EMR(旧Amazon Elastic MapReduce)とは、ビッグデータの処理や分析を行うサービス。ビッグデータを処理する既存フレームワークであるHadoop（ハドゥープ）やSpark（スパーク）を用いている。
データを複数のサーバーに配置して並列に処理する「分散処理」により、迅速かつ効率の良い処理を実現している。

「分散処理」という名の通り、Amazon EMRは3つの役割を持つノード（EC2インスタンス）でクラスターを構成し、処理を分散する。

・マスターノード
クラスター全体を管理するノード。コアノードおよびタスクノードへ処理を投入したり分散処理の調整を行う

・コアノード
演算処理を実行するノード。データを保存するファイルシステムHDFS（Hadoop Distributed File System)を持つ

・タスクノード（オプション）
コアノードと同様に演算処理を実行する。
ファイルシステムを持たない、演算処理専用のノード

クラスター内のコアノードまたはタスクノードは、手動、又は定めたポリシーなどに従って自動でスケーリングすることができる。

<h3>リードレプリカについて</h3>

Amazon RDSでは、RR（リードレプリカ）という参照専用のデータベースとして動作するレプリカ（複製）を作ることができる。データベースの参照時にかかる負荷が高い場合、RRを最大5台（Amazon Auroraは15台）増設することによってスケールアウト（処理台数の追加）することができる。

マルチAZ（異なるAZへ同期レプリケーションを行う機能）を利用してRRを複数のAZに分散したり、異なるリージョンに配置することもできる

<h3>インスタンスタイプ</h3>

インスタンスタイプは、EC2インスタンス作成時に選択できるCPU、メモリ、ストレージ性能、ネットワークキャパシティーの組み合わせ
インスタンスタイプの名前は、インスタンスファミリー、インスタンスの世代、インスタンスサイズで構成されている。

例：m5.xlarge
m
インスタンスファミリー
インスタンスタイプの用途別の分類
用途は、汎用、コンピューティング最適化、メモリ最適化、高速コンピューティング、ストレージ最適化に分けられる

5
インスタンス世代
同じインスタンスファミリーないで、インスタンス世代の数字が大きいほど新しい世代。ほとんどの場合、新しい世代ほどスペックが高く、コストパフォーマンスがいい

xlarge
インスタンスサイズ
CPUやメモリなど各リソースのスペックのサイズ
スペックの低い順からnano,micro,small,medium,large,xlarge,2xlarge,4xlarge・・・とスペックが高くなる

<h3>DNSレコード（リソースレコード）とエイリアスレコード</h3>

DNSレコード
権威DNSサーバーが管理するゾーン情報は「DNSレコード（リソースレコード）」で構成される。DNSレコードは主に以下の種類がある

Aレコード
ドメイン名に対するIPv4アドレス

AAAAレコード
ドメイン名に対するIPv6アドレス

CNAMEレコード
ドメイン名の別名

NSレコード
ドメインのゾーン情報を管理するDNSサーバー

MXレコード
ドメイン宛てメールの配送先メールサーバー

エイリアスレコード
Route 53にはエイリアスレコードという特別なDNSレコードがある
AWSサービスの一部はドメイン名に割り当てられるIPアドレスが動的に変化するので、固定のIPアドレスを登録する必要があるAレコードを設定できない
例えばELBのパブリックDNSホスト名や、S3の静的Webサイトホスティングのエンドポイント（URL）などが該当する
このようなIPアドレスが動的に変化するAWSサービスに、独自ドメイン名を別名として割り当てたい場合はCNAMEレコードまたはエイリアスレコードを利用する。
エイリアスレコードはAWSサービスのドメイン名に割り当てた別名から直接IPアドレスへ名前解決ができるので、CNAMEレコードを使用するよりもDNSクエリへの応答が高速になる。

<h3>Elastic Beanstalk と Dockerの関係</h3>

Docker
Dockerとはコンテナ型の仮想化ソフトウェア
コンテナ型の仮想化とは、1つのホストOS上に複数の独立した環境（コンテナ）を作成できる技術のこと。独立した環境ですから、例えばコンテナに障害が発生した場合でもホストOSにはなんの影響も与えない
Dockerは、ミドルウェアの設定や各種環境をDockerfileというテキストファイルにコード化して管理できるため、同じ環境を配布したり別の環境に持ち出したりできる、などの特徴がある

Elastic BeastalkはDockerに対応しているため、作成済みのDockerfileをElastic Beanstalkへアップロードすることで、EC2インスタンスやWebアプリケーション等の準備を行うことなくコンテナを稼働することができる。
Dockerをプラットフォームとした場合、以下の2つの構成を選択できる。
・単一（シングル）コンテナ
1つのEC2インスタンスに1つのコンテナを作成する
・マルチコンテナ
1つのEC2インスタンスに複数のコンテナをサポートする

なお、コンテナが動作する環境はElastic Beanstalkによって管理されますが、コンテナ上の環境（コンテナにインストールしたソフトウェアなど）は自分で管理する必要がある

<h3>Amazon DynamoDB キャパシティユニットについて</h3>

Amazon DynamoDBでは、テーブルに対する書き込み・読み込みのスループットをキャパシティユニットという単位で管理する
これは1秒間にどれだけ読み込み・書き込みを行うかを予約する設定で、容量が大きいほど料金がかかる

キャパシティユニット
WCU（Write Capacity Unit)
最大1KBのデータを1秒間に1回の書き込み

RCU(Read Capacity Unit)
最大4KBのデータを1秒間に1回読み込み
（強い整合性を持たない読み込みの場合は2件）

また、Dynamo DBのデータはパーティションという単位で分散して保存される。パーティション分割によって1箇所にデータを集中させないようにすることで、プロビジョニング（予約）されたスループットを保てるようにしている

従って、プロビジョニングされたキャパシティの量、すなわちキャパシティユニットを増やすと、スループットも大きくなり、パーティションの数が最小限に抑えられます

<h3>KMSとCloudHSMの違い</h3>

違いは管理場所
KMSがAWSの共有サーバー上であるのに対して、CloudHSMは専用のハードウェア上で管理される。また、KMSでは鍵の管理はAWS側で行われるのに対して（旧マネージド）、CloudHSMでは鍵の生成や保管・削除などのライフサイクル管理はユーザー自身が行う。運用面においても、CloudHSMは他のAWSユーザーと分離するためにAmazon VPC内にプロビジョニングする必要があるなど、KMSよりもセキュアな運用が求められる
なお、CloudHSMでは専用のハードウェアを使用する分、KMSと比べると利用料金が高価に設定されている
法令や規制等の要件で、認定を受けたハードウェアで暗号化鍵を管理する必要があるようなケースで、CloudHSMを使用する。

<h3>CloudWatchの機能</h3>

・CloudWatch Logs
AWSサービスやEC2インスタンスのOSやアプリケーションのログを収集し、一元管理するサービス。例えば、CloudTrailにおけるAWSサービスの操作ログや、VPCフローログ（VPC利用時のIPトラフィック情報）などを収集することができる。収集したログは、メッセージの内容をフィルタリングして管理者に通知させることができる。
例：EC2インスタンスのOSログで'Error'の文字列を1時間に5回検出した場合に、管理者へメール通知する
なお、EC2インスタンス上のアプリケーションやOSのログを収集するには、対象のEC2インスタンスへ「CloudWatchエージェント」をインストールする必要がある。

・CloudWatch Logs Insights
クエリの実行による柔軟なログ解析を行う機能
CloudWatch Logsにおける単語のフィルタリングよりも高度な処理が可能で、例えば「特定のアプリケーションが一定期間に出力した'Error'を含むメッセージをカウントする」のようなクエリを実行することができる

・CloudWatch Events
AWS上のリソースの状態変化やスケジュールに応じてアクションを実行することができるサービス

・CloudWatch Alarm
CloudWatchにおいて、収集したメトリクス（リソース情報）に応じてメール通報などのアクションを行う機能

<h3>VPCエンドポイント</h3>

VPCエンドポイントはプライベートサブネットから、インターネットゲートウェイを経由せずにVPC外のAWSサービスへアクセス可能にする機能

VPCエンドポイントにはゲートウェイ型とAWS PrivateLink（インターフェイス型）があり、ゲートウェイ型はS3とDynamo DBで利用できる。
DynamoDBはゲートウェイ型のみ利用できるが、S3はゲートウェイ型とPrivateLinkの両方で利用できる。

S3バケットへの接続は、S3バケットへのアクセス元をVPCエンドポイントに限定する方法と、VPCエンドポイントが特定のS3バケットへのアクセスのみ許可する方法がある

具体的な方法
・S3バケットへのアクセス元をVPCエンドポイントに限定する方法
S3のアクセス制御方法には「バケットポリシー」「ユーザー（IAM）ポリシー」「ACL」がある。S3バケットへアクセスもとをVPCエンドポイントに限定するには「バケットポリシー」を利用する。バケットポリシーはバケット単位でアクセス権限を設定する機能
特定のVPCエンドポイントからの通信のみを許可するには、「VPCエンドポイントID」を指定して通信を許可する。

・VPCエンドポイントが特定のS3バケットへのアクセスのみ許可する方法
VPCエンドポイントを作成すると、VPC内のリソースはVPCエンドポイントからVPC街のAWSサービスへアクセスできるようになる
VPCエンドポイントの接続先を制限するには「VPCエンドポイントポリシー」を使用する。VPCエンドポイントポリシーは、VPCエンドポイントのゲートウェイ型とAWS PrivateLink（インターフェース型）の両方で利用できる。
特定のS3バケットへの通信のみを許可するには、S3バケットのAmazonリソース名（ARN）を指定する

<h3>セキュリティグループ　ネットワークACL</h3>

セキュリティグループ
VPC上でネットワークアクセスをインスタンスごとに制御するファイアウォール
設定は許可ルールのみ指定し、拒否ルールは指定できない。
デフォルトの設定では、全てのインバウンド通信（外部から内部への通信）を拒否、全てのアウトバウンド通信（内部から外部への通信）を許可しているので、インスタンスへのインバウンド通信には許可ルールを設定する必要がある。
セキュリティグループは通信の状態を管理する「ステートフル」なファイアウォールです。インバウンドまたはアウトバウンドで許可されている通信に関連する後続の通信（リクエストに対応するレスポンスなど）は、明示的に許可設定をしなくても通信が許可される

ネットワークACL
VPC上でネットワークアクセスをサブネットごとに制御するファイアウォール
IPアドレスを元に許可ルールと拒否ルールの両方を設定可能
ルールはユーザーが付与したルール番号の順番に評価され、ルール間で矛盾がある場合は小さい数字のルールが適用される。デフォルトの設定ではインバウンド通信（外部から内部への通信）、アウトバウンド通信（内部から外部への通信）ともに全ての通信が許可されている。
ネットワークACLは通信の状態を管理しない「ステートレス」なファイアウォールです。通信の関連を考慮しないので、インバウンド/アウトバウンド両方に許可設定が必要になる。例えば、インバウンドで特定のリクエストの受付を許可していても、アウトバウンドでレスポンスの送信を許可していない場合は、正常に通信できないことになる

<h3>Amazon EMRが利用できるファイルシステム</h3>

・HDFS(Hadoop Distributed File System)
分散処理ソフトウェア「Hadoop」のファイルシステム
 EMRではマスターノードとコアノードで利用する
 EMRクラスターが終了すると、HDFS上のデータは失われる

・EMRFS(EMR File System)
Amazon S3を EMRクラスターからファイルシステムとして利用できるようにした機能
データを永続的に保持でき、 EMRクラスターが終了してもデータは失われない
また、S3がもつ機能（データの暗号化やデータ読み込み時の強い一貫性のサポートなど）も備わっている

<h3>VPCのプライベートIPアドレス</h3>

プライベートIPアドレスは、VPC内のリソース間の通信に使用したインターネットとは通信不可のIPアドレスです。プライベートIPアドレスをもつAWSリソースは、VPC内でのみ名前解決が可能なプライベートDNSホスト名が割り当てられる。プライベートIPアドレスは、パブリックサブネットとプライベートサブネットにあるEC2やRDSなど、全てのインスタンスに割り当てられる。
プライベートIPアドレスは、AWSリソースを停止・起動しても同一のIPアドレスが使われ、AWSリソースの削除時にIPアドレスが解放される

その他のIPアドレス

パブリックIPアドレス
インターネットと通信可能なIPアドレス
パブリックIPアドレスを持つAWSリソースは、パブリックDNSホスト名が割り当てられる。パブリックDNSホスト名は、名前解決要求がVPC外からであればAWSリソースのパブリックIPアドレスに解決され、VPC内からであればプライベートIPアドレスに解決される。
後述するElastic IPアドレスではないパブリックIPアドレスは、AWSリソースが停止する時にIPアドレスが解放され、AWSリソースが起動するときに新規のIPアドレスが割り当てられる

Elastic IPアドレス
インターネットと通信可能な固定のパブリックIPアドレス
Elastic IPアドレスを割り当てたAWSリソースが削除されても同一のIPアドレスが保有され、別のAWSリソースに再び割り当てることができる。Elastic IPアドレスを割り当てたAWSリソースはパブリックDNSホスト名も固定になり、Elastic IPアドレスへ名前解決される
Elastic IPアドレスは割り当てられているAWSリソースが起動している時は無料で利用でキルが、AWSリソースが停止していたり、割り当てられない時は料金が発生する。

<h3>AWS Cost Explorer</h3>

Well-Architected Frameworkの設計原則の1つ「コスト最適化」では、実現したいシステムに必要となるAWSサービスを最小限の費用で利用するための推奨事項が記載されている。
コストを最適化するにあたり、どのサービスにどの程度のコストがかかっているのかの現状把握や、将来・年間を通してどのくらいかかるのかの予測は重要

AWS Cost Explorerは、コストに関するレポートを作成し、利用状況を可視化する。
レポートは日次・月次で作成できる。また、サービスごと・ユーザーごとのグループ分けもできるので、毎月のサービスごとのコストの推移を把握したり、課金額が他と比べて多いユーザーを検出して利用状況を見直すなどといった利用ができる。
また、コストの内訳を詳細に把握するフィルター機能もある。
フィルターを利用すると、例えばRDSやS3、EC2などのデータ転送（IN/OUT）にかかった費用やAPIごとのコストを確認できる。

※AWSサービスの料金の予算を設定して予算に達した場合はアラートを受けることができるのは、AWS Budget

<h3>Auto Scalingのヘルスチェックのタイプ</h3>

Auto Scalingのヘルスチェックのタイプには「EC2」と「ELB」がある
「EC2」はインスタンスの「ステータスチェック」の結果を確認し、「ELB」は応答状態の確認をする。リソースがEC2インスタンスの場合は強制的に「EC2」が有効になっており、「EC2」と「ELB」を両方有効にすることもできる
Auto Scalingのヘルスチェックで異常となったリソースは、自動的に終了される。

Auto Scalingグループのヘルスチェックの設定で「EC2」が有効、「ELB」が無効になっていると、ELBからのヘルスチェックに応答がないインスタンスは負荷分散先からは除外されるが、EC2の「ステータスチェック」が正常であればインスタンスが終了されない。インスタンスが終了されないと新規インスタンスも起動されないため、Auto Scalingグループの設定項目にある最小キャパシティ未満のインスタンスで負荷分散することがある
ヘルスチェックの設定で「ELB」も有効にすると、ELBからのヘルスチェックに応答がないインスタンスが終了し、新たに正常なインスタンスが起動する。

<h3>インターネットゲートウェイについて</h3>

インターネットゲートウェイは、インターネットとVPC内のAWSリソースを接続する機能です。インターネットゲートウェイを利用するには、VPCにインターネットゲートウェイを作成し、インターネットへアクセスさせたいリソースが配置されたサブネットのルートテーブルに、ターゲットがインターネットゲートウェイのルーティングを設定する。
インターネットゲートウェイのルーティングが設定されたサブネットは、パブリックサブネットになる。パブリックサブネットでは、インターネットとサブネット両方からの接続開始要求を通す。インターネットゲートウェイは1つのVPCに1つしか作成できないので、複数のパブリックサブネットで共有して利用する。

<h3>VPCエンドポイント</h3>

S3やDynamoDBなどインターネットから直接利用できるVPC外のAWSサービスへアクセスは、VPC内のAWSリソースからインターネットゲートウェイを経由して通信する。「VPCエンドポイント」は、セキュリティ上の制約でインターネットとの通信が制限されているプライベートサブネット内のAWSリソースから、インターネットゲートウェイを経由せずにVPC外のAWSサービスへアクセス可能にする機能
VPCエンドポイントにはゲートウェイ型とAWS PrivateLink（インターフェース型）があり、ゲートウェイ型はS3とDynamoDBで利用できる。DynamoDBはゲートウェイ型のみ利用できる、S3はゲートウェイ型と PrivateLinkの両方で利用できる

※VPC間のルーティングを可能にするのは、VPCピアリング

<h3>SQS 可視性タイムアウト</h3>

Amazon Simple Queue Service（SQS）において、キューのメッセージは受信側が明示的に削除指令をしないと削除されない。
SQSのメッセージを受信するクライアントが複数ある場合、タイミングによっては、メッセージが削除される前に複数のクライアントでメッセージを受信してしまうことがある
可視性タイムアウトはこれを防ぐために、一度クライアントがメッセージを受信した後、指定時間（デフォルト３０秒）が経過するまでそのメッセージが他のクライアントから見えないようにする

なお、可視性タイムアウトはデフォルトで有効になっている

可視性タイムアウトを有効にしているのに複数受信される場合は、時間を伸ばす必要がある

<h3>AWS Site-to-Site VPNの単一障害点が起きない設計</h3>

AWS Site-to-Site　VPNで使用する仮想プライベートゲートウェイ（VGW：Virtual Private Gateway）とVPNトンネルは、機器障害に対する高可用性を保つためにAWS側で冗長化されている。一方、カスタマーゲートウェイはオンプレミス内の機器なので、高可用性を保つにはAWSユーザー側で冗長化する必要がある

※複数のDirect Connectロケーションで接続するのはDirectConnect用

<h3>AWS Trusted Advisor チェック項目</h3>

AWS Trusted Advisorは、利用者のAWS環境をAWSに蓄積されたベストプラクティスと照会することにより、推奨されるアクションのアドバイスを行うサービス

チェックの観点は「コスト最適化」「パフォーマンス」「セキュリティ」「フォールトトレランス」「サービス制限」に分類されており、各観点の代表的なチェック項目には以下のようなものがある

「コスト最適化」
・EC２リザーブドインスタンス（予約購入したインスタンス）の利用状況をもとに最適な購入数を算出し、コストの節約が可能か

「パフォーマンス」
・EC2インスタンスの使用率
直近14日で１日のCPU使用率が９０％以上の日が頻出していないか

「セキュリティ」
・開かれたポート
アクセス元の制限がない（0.0.0.0/0)セキュリティグループが定義されていないか（ポート番号に応じて警告を表示）

「フォールトトレランス」
・ロードバランサ（ELB）の最適化
ELB配下のインスタンスが複数AZで稼働しているか

「サービスの制限」
・各サービスに設定された制限値と利用状況を照会し、使用率が逼迫したり上限に達していないか

<h3>Snowball Edge Storage Optimized</h3>

Snowball Edge Storage Optimizedは、AWS Snowballのデータ転送用のオプションで、デバイスには内蔵HDD80TBが搭載されている。オンプレミスからS3へデータをインポートする用途の他に、S3からエクスポートするケースでも利用する。インポートする際はからのデバイスが届くので、自分でデータをデバイスへ転送する。エクスポートする際は、対象のデータが格納されたS3バケットを注文時に選択すると、デバイスにデータがロードされた状態で届く
いずれも利用完了後にAWSへ返送すると、データ移動時など必要な処理が行われた後データが消去される
なお、1台あたりのストレージ容量は最大で８０TBですので、それ以上の容量を転送したい場合は複数のSnowballデバイスを申請する必要がある

<h3>CloudFrontのキャッシュの設定や機能</h3>

コンテンツ配信ネットワークはキャッシュが重要な役割を持っている。以下の設定や機能によってキャッシュを適切に管理することが大切

・キャッシュTTL（Time To Live)
キャッシュを保持する時間のこと。URLパスごとに指定できる。CloudFrontはキャッシュTTLが超過した後にクライアントからのリクエストを受けると、オリジンサーバーにコンテンツの更新有無を確認し、更新されていればキャッシュに反映しつつ応答を返す。キャッシュTTLを含むキャッシュの設定のことを「キャッシュBehavior（ビヘイビア）」という

・キャッシュ削除（Invalidation）
エッジサーバーに保存されているキャッシュを即座に削除できる機能
キャッシュを削除した後にクライアントからデータのリクエストを受け取ると、エッジサーバーは必ずオリジンサーバーへコンテンツを取得しにいくので、クライアントへ配信するコンテンツが最新かされる。削除対象のデータはフォルダ名やファイル名で指定する。

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

・タイムゾーンや最大接続数、監査ログなど、データベースに関する設定を変更する
・パラメータを変更したい場合はデータベースエンジン毎に新たに作成する

タイムゾーンや最大接続数、監査ログの有効化など、データベースの設定を変更したい場合、RDSでは「パラメータグループ（クラスターパラメータグループ）」または「オプショングループ」で定義する
パラメータグループ、オプショングループはDBエンジン毎に作成するパラメータまたはオプションの定義グループで、作成後は複数のデータベース（またはデータベースクラスター）へアタッチできる。
データベースを作成するとデフォルトのパラメータグループおよびオプショングループがアタッチされるが、デフォルトのグループは編集ができない。設定変更したい場合は新たにパラメータグループまたはオプショングループを作成し、データベースへアタッチする必要がある。

<h3>DynamoDBのバックアップ</h3>

・オンデマンドバックアップはユーザーが任意のタイミングで取得するテーブル全体のバックアップ
・ポイントタイムリカバリを有効にするとAWSが自動で差分バックアップを行う

Amazon DynamoDBには２つのバックアップ方法がある
「オンデマンドバックアップ」は、ユーザーが任意のタイミングで作成するバックアップ
マネジメントコンソールまたはAPIを利用して、テーブルの完全なバックアップを作成する
自動的にバックアップを行いたい場合は「ポイントインタイムリカバリ（PLTR)」を有効にする。オンデマンドバックアップとは違い、差分バックアップが定期てっきに自動で取得される。リカバリ時は、35日前まで遡ることができる

<h3>AWSクラウドへデータ移行を行うサービス（Snowball）</h3>

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

AWSクラウドデータ移行を行うサービスには、Snowballの他に以下のようなものがある
ーAWS Storage Gateway
オンプレミスからAWSのストレージサービスへのアクセスを高速かつセキュアに行うことができる
ーAWS Direct Connect
AWSとの物理的な専用回線を構築するサービス
ーAWS DataSync
オンプレミスのストレージと、Amazon S3,Elastic File System（EFS）,FSx For Windowsファイルサーバーなどの間でデータを移行するサービス

Snowballとのこれらとの違いは、オフラインでデータを移行できるかどうか
上述したサービスはオンプレミスからオンラインでデータアクセスを行うため、移行対象のデータが更新中のものであったり、停止できないシステムのデータを移行する場合に利用する
一方Snowballは、AWSから送付されたハードウェアに一旦データを保存し、後日AWSによって当該データがS3バケット上へ保存されるため静的なデータの移行に適している。過去のバックアップデータを移動したり、ある時点でのデータを移行してそれ以降はS3上のデータを活用するといったケースで利用するなどが良いでしょう