AWS Solution Architect試験メモ

# S3ストレージクラス
| ストレージクラス                  | 説明                                                                                             | 可用性              | 取り出し時間                   | データの頻度                                   | コスト (GB/月) | 耐久性                      |
| ---------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------- | ------------------------------ | -------------------------------------------- | --------------- | --------------------------- |
| S3 Standard                        | 高頻度アクセス用。低レイテンシーと高スループットが求められるデータに最適。                           | 99.99%               | 即時                           | 頻繁にアクセスされるデータ                    | 高               | 99.999999999% (11 9's)       |
| S3 Intelligent-Tiering              | 頻繁か低頻度かわからないデータに自動で階層分けし、最適なコストでストレージ提供。                     | 99.9% (IA: 99%)     | 即時 (IA: 数分)                | アクセスパターンが不明確なデータ              | 中               | 99.999999999% (11 9's)       |
| S3 Standard-IA (低頻度アクセス)    | 頻繁にはアクセスしないが、即座に取り出せる必要があるデータに最適。                                 | 99.9%                | 即時                           | あまりアクセスされないデータ                  | 低               | 99.999999999% (11 9's)       |
| S3 One Zone-IA                     | 複数のAZで冗長化せず、1つのAZにデータを保存。低コスト。                                           | 99.5%                | 即時                           | 高可用性が不要でコスト優先の低頻度アクセス   | 最低             | 99.999999999% (11 9's)       |
| S3 Glacier                         | 長期保存アーカイブ用。取り出しは数時間かかるが、非常に低コスト。                                     | 99.99%               | 数分～数時間                   | アーカイブデータ（取り出し頻度が非常に低い）  | 非常に低い       | 99.999999999% (11 9's)       |
| S3 Glacier Deep Archive            | S3で最も低コストのストレージクラス。取り出しは最大12時間かかる。                                     | 99.99%               | 12時間                         | 長期保存が必要でアクセスがほとんどないデータ  | 最安             | 99.999999999% (11 9's)       |


## 1. ストレージクラスの特徴とユースケース
各ストレージクラスがどのようなシナリオで最適かを理解することが重要です。試験では、それぞれのクラスの使い分けを問う問題が出ることがあります。

- **S3 Standard**: 頻繁にアクセスされるデータ、低レイテンシーを必要とするワークロード。
- **S3 Intelligent-Tiering**: アクセスパターンが変動するデータに対して自動でコスト最適化を行う。
- **S3 Standard-IA**: 頻繁にはアクセスされないが、即時に取り出す必要があるデータ向け。
- **S3 One Zone-IA**: コスト優先で、冗長性が不要なデータに使用（可用性は低い）。
- **S3 Glacier**: 長期保存アーカイブで、アクセスがほとんど不要なデータ向け（取り出しに数時間かかる）。
- **S3 Glacier Deep Archive**: さらに低コストで、非常にアクセス頻度が低いデータの長期保存。

## 2. コスト管理とストレージクラスの選定
S3のコストは、使用するストレージクラスによって大きく異なります。試験では、コスト最適化に関する設問が出題される可能性があるため、次の点に注意しましょう。

- **S3 Standard**は高コストで、頻繁にアクセスされるデータに適しているが、あまりアクセスされないデータをこのクラスに置くと無駄なコストが発生する。
- **S3 Intelligent-Tiering**はアクセスパターンが不明な場合に自動的にコストを最適化するため便利ですが、月額料金が少し追加されます。
- **S3 Glacier**や**Glacier Deep Archive**は非常に低コストですが、取り出しに時間がかかるため、即時アクセスが必要なデータには向かない。

## 3. 可用性と耐久性の違い
試験では、各ストレージクラスの可用性と耐久性の違いを理解しておく必要があります。

- すべてのクラスで**耐久性は99.999999999% (11 9's)** で共通しています。
- **可用性**はクラスごとに異なり、S3 Standardは**99.99%**、Standard-IAやGlacierは**99.9%**ですが、One Zone-IAは**99.5%**と低いため、利用シーンを考慮することが重要です。

## 4. 取り出し時間とパフォーマンスの違い
各クラスの取り出し時間の違いを理解することが求められます。取り出し時間の違いがコストとトレードオフとなるため、試験ではシステム要件に合ったクラスの選定が問われることがあります。

- **S3 Standard**と**Standard-IA**は即時アクセスが可能。
- **S3 Glacier**は数分から数時間かかる。
- **S3 Glacier Deep Archive**は最大12時間かかる。

## 5. ライフサイクルポリシーの適用
Amazon S3の**ライフサイクルポリシー**を使って、データのライフサイクルに応じて自動でストレージクラスを変更する設定も試験で問われることがあります。データがアクセスされなくなった場合、StandardからGlacierやGlacier Deep Archiveに移行することでコストを削減できます。


# EBSボリュームタイプ
| ボリュームタイプ        | IOPS性能               | スループット性能       | 耐久性                   | ユースケース                                                   | 最大サイズ             | ブートボリューム対応 |
|----------------------|----------------------|----------------------|------------------------|---------------------------------------------------------------|----------------------|------------------|
| 汎用SSD (gp3)          | 最大16,000 IOPS        | 最大1,000 MiB/秒      | 99.8%〜99.9% の耐久性     | 仮想デスクトップ、中規模DB、開発環境、テスト環境                | 1 GiB〜16 TiB        | 対応               |
| 汎用SSD (gp2)          | 最大16,000 IOPS        | 最大250 MiB/秒        | 99.8%〜99.9% の耐久性     | 開発・テスト環境、Webサーバー、仮想デスクトップ               | 1 GiB〜16 TiB        | 対応               |
| Provisioned IOPS SSD (io1) | 最大64,000 IOPS        | 最大1,000 MiB/秒      | 99.999% の耐久性           | 高IOPSが必要なI/O集約型アプリケーション                          | 4 GiB〜16 TiB        | 対応               |
| Provisioned IOPS SSD (io2) | 最大256,000 IOPS       | 最大4,000 MiB/秒      | 99.999% の耐久性           | I/O集約型データベースワークロード、高信頼性が必要なアプリケーション  | 4 GiB〜16 TiB        | 対応               |
| スループット最適化HDD (st1) | 最大500 IOPS (1 MiB I/O)| 最大500 MiB/秒         | 99.8%〜99.9% の耐久性     | ビッグデータ、データウェアハウス、ログ処理                     | 125 GiB〜16 TiB      | 非対応             |
| コールドHDD (sc1)       | 最大250 IOPS (1 MiB I/O)| 最大250 MiB/秒         | 99.8%〜99.9% の耐久性     | アクセス頻度が低いデータ、大容量データの低コストストレージ        | 125 GiB〜16 TiB      | 非対応             |
| 旧世代磁気ボリューム (standard) | 40〜200 IOPS            | 40〜90 MiB/秒          | 99.8% の耐久性            | 小規模なデータセット、パフォーマンスが重要でないワークロード      | 1 GiB〜1 TiB         | 対応               |

# AWS上のDR戦略
| 災害復旧アプローチ         | コスト       | 複雑さ          | 復旧時間 (RTO)           | データ損失許容時間 (RPO) | 特徴                                                  | 使用されるAWSサービス例                                                                                       |
|---------------------------|------------|-----------------|--------------------------|-------------------------|-------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
| **バックアップとリストア** | 低          | 低              | 数時間から数日            | 数時間から1日            | 定期的にデータをバックアップし、災害時に手動でリストア  | Amazon S3 Cross-Region Replication、Amazon EBSスナップショット、Amazon RDSスナップショットなど               |
| **パイロットライト**       | 中          | 中              | 数分から数時間            | 数分                    | 必要最小限のインフラが常時稼働し、災害時にフルスケール化 | Amazon RDSリードレプリカ、Amazon S3レプリケーション、Amazon DynamoDBグローバルテーブルなど                   |
| **ウォームスタンバイ**     | 中から高    | 中              | 数分                     | 数分                    | スケールダウンした状態で稼働中の環境があり、災害時にスケールアップ | Amazon EC2 Auto Scaling、Amazon RDS、Amazon Auroraなど                                                    |
| **マルチサイトアクティブ/アクティブ** | 高          | 高              | ほぼゼロ                 | ほぼゼロ                 | 複数のリージョンで同時に稼働し、災害時にも即時切り替え可能 | Amazon Route 53、AWS Global Accelerator、Amazon Auroraグローバルデータベースなど                              |

## バックアップとリストア
### 1. Amazon S3 Cross-Region Replication (CRR)

S3 Cross-Region Replicationを使用することで、データのバックアップを複数のリージョンに安全に保存でき、万が一のリージョン全体の障害やデータセンターの災害時でも、別リージョンにあるレプリケートされたデータから素早くリストアが可能です。バックアップとして保存されているデータは、障害発生時に即座にリストアすることができ、リカバリポイントを確保するための一貫性のあるデータを提供します。

### 2. Amazon EBSスナップショット

EBSスナップショットは、EC2インスタンスのストレージやアプリケーションデータを定期的にバックアップするために利用されます。障害発生時には、このスナップショットから迅速にボリュームをリストアでき、アプリケーションやシステムの状態を障害前の状態に戻すことが可能です。また、これらのスナップショットは複数リージョンにコピーできるため、地理的な冗長性を確保したリストアも可能です。

### 3. Amazon RDSスナップショット

RDSスナップショットは、データベースの完全なバックアップを作成し、障害やデータ破損時に迅速なリストアを可能にします。スナップショットを利用することで、データベース全体を別の時点にリストアすることができ、障害からの迅速な回復をサポートします。また、スナップショットは異なるリージョンにコピーすることもでき、リージョン全体の障害や災害に対する対策も強化できます。

## パイロットライト戦略

### 1. Amazon RDSリードレプリカ
Amazon RDSリードレプリカは、データベースのリアルタイムなレプリケーションを提供し、パイロットライト戦略でのデータ損失を最小限に抑えます。リードレプリカは通常、災害発生時にプライマリデータベースとして昇格でき、スムーズなリカバリを可能にします。これにより、データが常に最新の状態で保持され、復旧時のダウンタイムを最小限に抑えることができます。

### 2. Amazon S3レプリケーション
Amazon S3レプリケーションは、データを複数のリージョンに自動的に複製し、パイロットライト戦略の一環として重要なデータを他のリージョンに保持します。これにより、データセンターの障害やリージョン全体の災害に対してもデータが保護され、災害時にはレプリケートされたデータを迅速に利用できるようになります。

### 3. Amazon DynamoDBグローバルテーブル
Amazon DynamoDBグローバルテーブルは、データベースのマルチリージョンレプリケーションをサポートし、異なるリージョン間でデータを自動的に同期します。これにより、パイロットライト戦略において、各リージョンにリアルタイムのデータを提供でき、災害発生時にも迅速にリカバリが可能です。DynamoDBグローバルテーブルは低RPOを実現し、データの損失を最小限に抑えます。

## ウォームスタンバイ戦略

### 1. Amazon EC2 Auto Scaling
Amazon EC2 Auto Scalingは、災害発生時に必要なキャパシティを自動的にスケールアップし、ウォームスタンバイ環境をフルスケールの本番環境に変える役割を担います。これにより、リソースが効率的に管理され、必要に応じて迅速に本番対応が可能になります。

### 2. Amazon RDS
Amazon RDSは、データベースの冗長性と可用性を高めるための機能を提供し、ウォームスタンバイ環境でのデータベースを最小限のリソースで運用することができます。災害時には、迅速にフルスケールにリカバリできるため、ビジネスの中断を最小限に抑えます。

### 3. Amazon Aurora
Amazon Auroraは、リージョン間で自動的にデータを同期し、ウォームスタンバイ環境においても常に最新のデータを提供します。Auroraのグローバルデータベース機能により、災害発生時に即座にリージョンを切り替えて運用を継続することが可能です。

## マルチサイトアクティブ/アクティブ戦略

### 1. Amazon Route 53
Amazon Route 53は、DNSベースのトラフィックルーティングサービスで、マルチサイトアクティブ/アクティブ戦略において、複数のリージョンにまたがるエンドポイントにトラフィックを振り分ける役割を果たします。障害発生時には、迅速に別のリージョンへトラフィックを切り替えることで、サービスの継続性を確保します。

### 2. AWS Global Accelerator
AWS Global Acceleratorは、マルチリージョン環境において単一のAnyCast IPを提供し、最も近いエンドポイントにトラフィックを自動的にルーティングします。これにより、ユーザーのレイテンシーを最小限に抑えつつ、障害発生時には自動的に他のリージョンにトラフィックを切り替えることで、高可用性を実現します。

### 3. Amazon Auroraグローバルデータベース
Amazon Auroraグローバルデータベースは、複数のリージョンにまたがってデータベースを同期し、マルチサイトアクティブ/アクティブ環境において、全リージョンで常に最新のデータを提供します。これにより、どのリージョンでもリアルタイムにデータを読み書きでき、障害時にも即座にリージョンを切り替えて運用を継続することが可能です。