AWS Cloud Practitioner 学習記録５（１／２）

:::note info
AWS Skill Builder における下記コンテンツの学習記録（ポイントとメモ）です
AWS Cloud Practitioner Essentials (Japanese) (日本語実写版)
:::

このモジュールもボリュームがあるので、ストレージの章とデータベースの章で分けることにします。

# モジュール５：ストレージとデータベース

### 概要
コーヒーショップにて：お客さまに感謝の気持ちを示すためにロイヤリティプログラムを考えよう！
と思ったがここまでのシステムでは、誰がいつ何をどれくらい買ってくれたか？の情報、つまりデータが保存されていなかった。。。
データ種類に応じたストレージ、データベースを選択するため、AWS が提供しているサービスについて学ぶ

### インスタンスストアと Amazon Elastic Block Store (Amazon EBS)
一般的にアプリケーションは、ブロックレベルのストレージ[^1] にアクセスしてファイルを保存する
EC2 インスタンスに付属して提供されるブロックストレージの**インスタンスストア**と、
**Amazon Elastic Block Store(EBS)** で提供される永続的なストレージについて

##### インスタンスストア
EC2 インスタンスの生成により、そのタイプに応じて提供されるローカルストレージ（インスタンスストアボリューム）
EC2 インスタンスが起動された物理ホストにアタッチされたストレージであり、**データが保持される期間はインスタンスと同じ**
インスタンス停止／終了時には、このストレージもあわせて破棄されるということである
Auto Scaling で学んだ内容とあわせて考えると、EC2 インスタンスはスケーリングにより増減（起動／終了）するため、このストレージには長期的に保持しておきたいデータを格納しておくことはできない
アプリケーションが利用する一時ファイル、といった用途に適したストレージといえる

##### Amazon Elastic Block Store (Amazon EBS)
EC2 インスタンスから使用できる、ブロックレベルのストレージボリュームを提供するサービス。EC2 インスタンスにアタッチして使用する
単独のリソースであり、EC2 インスタンスの停止や削除に影響されずにデータを保存できる

##### Amazon EBS スナップショット
EBS スナップショットは、EBSボリュームの**増分バックアップ**である
最初のスナップショット時点にすべてのデータがバックアップされ、以後はスナップショット時点から変更されたデータのブロックのみをバックアップする

### Amazon Simple Storage Service (Amazon S3)
Amazon S3 はその名の通りシンプル構成のストレージサービス
どんな規模のファイルも無制限に保存／取得できるデータストアである
データは**オブジェクト**として、**バケット**[^2]に保存される

##### オブジェクトストレージ
S3 はオブジェクトストレージであり、**オブジェクトはデータ、メタデータ、キーで構成**される
+ データ：画像、動画、テキストなどファイルそのもの
+ メタデータ：データの種類、サイズなどファイルを表す情報
+ キー：オブジェクトを一意に特定する識別子

##### Amazon Simple Storage Service (Amazon S3)
AWS においてオブジェクトレベルのストレージを提供するサービス
ストレージ領域は**無制限**、オブジェクトサイズは**最大 5TB** まで
ファイルをアップロードする際に可視性とアクセス許可を設定でき、
バージョン管理によって変更を追跡することもできる

##### Amazon S3 ストレージクラス
ニーズに応じた幅広い選択肢から、以下２つの要素を考慮して検討する
+ 取得の頻度
+ 可用性の要件

ストレージクラスには以下のようなものがある
＃ S3 では、ストレージ容量とデータに対するリクエスト（POST、GETなど）に対して料金体系が設定されているという前提があることに注意して読むとなんとなく分かりやすいかも
+ S3 Standard（S3 標準）
    + 頻繁にアクセスするデータ用
    + 複数の AZ にデータが保存され、99.999999999% の耐久性、99.99% の可用性となるよう設計されたストレージ
    + 汎用的なストレージクラスであり、アーカイブ用のクラスよりは高コスト
+ S3 Standard - 低頻度アクセス（S3 Standard - IA）
    + アクセス頻度は低い[^3]が、すぐに取り出せるようにしたいデータ用
    + 耐久性や可用性は S3 Standard と同様
    + S3 Standard と比較して、ストレージ料金は安く、取り出し料金が高い
+ S3 1ゾーン - 低頻度アクセス（S3 1 ゾーン - IA）
    + １つの AZ にデータが保存される（S3 Standard や S3 Standard - IA より**可用性**が落ちる　**※耐久性は変わらない**）ため、重要度が低い、あるいは再作成が可能なデータ用
    + そのほかの特徴は S3 Standard - IA と類似するが、ストレージ料金が安い
+ S3 Intelligent-Tiering
    + アクセス頻度が不明または変化するデータ用
    + オブジェクトごとに月額のモニタリング・オートメーション料金が発生するが、モニタリングによって解析されたアクセスパターンに応じて、**コスト効率の高いアクセス階層[^4]にデータを移動**する
+ S3 Glacier Instant Retrieval
    + 即時のアクセスが必要なアーカイブデータ用（取り出し料金が高い）
    + 数ミリ秒以内にオブジェクトを取得できる
+ S3 Glacier Flexible Retrieval（旧 S3 Glacier）
    + アーカイブ用に設計された低コストなストレージクラス
    + 数分から数時間以内にオブジェクトを取得できる[^5]
+ S3 Glacier Deep Archive
    + アーカイブ用の最も低コストなストレージクラス
    + 12時間～48時間以内にオブジェクトを取得できる[^5]
+ S3 Outposts
    + Amazon S3 Outposts に S3 バケットを作成する
    + AWS Outposts のデータ取得、保存、アクセスを簡単にする

＃S3 Outpostsは他のストレージクラスとは少し毛色が違っており、
Outposts（オンプレミス環境）において、S3 API が利用可能なオブジェクトストレージを構築できる、というのが特徴

### Amazon Elastic File System (Amazon EFS)
Amazon EFS はマネージド[^6]ファイルシステム
既存のファイルシステムを残しながら、スケーリングやレプリケーションといった作業を AWS に任せることができる
EFS は複数のインスタンスから同時にデータアクセスができる

##### ファイルストレージ
ファイルストレージでは、複数のクライアントが共有のファイルデータにアクセスできる
ブロックストレージ（EBS）やオブジェクトストレージ（S3）と比較すると、ファイルストレージは多数のサービス・リソースで同時に同じデータへのアクセスが必要な場合に適している
Amazon Elastic File System (Amazon EFS) は、AWS あるいはオンプレミスのリソースから使用できるファイルシステムを提供するサービス
ファイルの追加／削除に応じて自動的にスケーリングしてくれる

##### Amazon EBS と Amazon EFS の比較
| Amazon EBS | Amazon EFS |
|------------|------------|
| AZ レベルのリソース、1つの AZ に配置される | リージョンレベルのリソース、複数の AZ にデータを保存する |
| 同じ AZ 内の EC2 インスタンスにアタッチ  | 同じリージョン内のいずれの AZ からでも同時にアクセス可能 |


#
ストレージ部分で30分くらいでしょうか
AWS はストレージだけでも奥が深いですね
おかげでやたら注釈も多いです

[^1]:ハードディスクのことを指している。PC のドライブはボリュームに分けられ、各ボリュームではブロック単位にデータを読み書きする。
ひとむかし前には、ディスクデフラグという機能で断片化したブロックを眺めるのが流行った（？）

[^2]:S3 のアイコンがバケツ(bucket)なのは、きっとこの概念からきているのでしょう

[^3]:低頻度アクセス（IA） は Infrequent Access の略

[^4]:アクセス階層は以下の通りで、その特徴は他の S3 ストレージクラスに近しいものになっているイメージ
    + 高頻度アクセス（≒ S3 Standard）
    + 低頻度アクセス（≒ S3 Standard - IA）
    + アーカイブインスタントアクセス（≒ S3 Glacier Instant Retrieval）
    + アーカイブアクセス（≒ S3 Glacier Flexible Retrieval）（オプション）
    + ディープアーカイブアクセス（≒ S3 Glacier Deep Archive）（オプション）

[^5]:このあたりの取り出し時間はオプションによる。[アーカイブの取り出しオプション](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/restoring-objects-retrieval-options.html "アーカイブの取り出しオプション")

[^6]:マネージドサービスは、クラウドサービスのプロバイダ（ここでは AWS）が、ソフトウェアの管理や運用を実施してくれるサービスのこと