AWSのストレージサービス

出展：[AWS認定資格試験テキスト AWS認定 クラウドプラクティショナー](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%BC-%E5%B1%B1%E4%B8%8B-%E5%85%89%E6%B4%8B/dp/4797397403/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3ERB303UT76DT&keywords=aws%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%BC&qid=1578744077&sprefix=AWS%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%2Caps%2C266&sr=8-1)

#EBS
・Amazon Elastic Block Storeの略
・EC2インスタンスにアタッチして使用するブロックストレージボリューム

##EBSの特徴

###EC2インスタンスのボリュームとして使用
・EC2インスタンスのルートボリューム（ブートボリューム）または追加のボリュームとして使用
・不要になればいつでも削除することができる

###アベイラリティゾーン内でレプリケート
・同じアベイラリティゾーン内の複数サーバ間で自動的にレプリケートされる
・ハードウェア障害が発生してもデータが失われることを防ぐ

###ボリュームタイプの変更が可能
・使い始めた後に需要やニーズが変わった場合は、オンラインでボリュームを変更できる
・***汎用SSD***：
　・最大でも16,000IOPS、かつ一定の性能を約束するものではない
・***プロビジョンドIOPS SSD***：
　・持続的で一定のIOPSが必要な場合や、16,000を超えるIOPSが必要な場合に使用
　・最小のIOPSを指定することができる
　・IOPSの最大値は64,000
・***スループット最適化HDD***：
　・SSDほどの性能を必要とせず、コストを節約したい場合に使用
・***Cold HDD***：
　・アクセス頻度が低い場合に使用
・スループット最適化HDDとCold HDDはルートボリューム（ブートボリューム）としては使用できない

###容量の変更が可能
・使い始めた後にオンラインでストレージ容量を増やすことができる

###高い耐久性のスナップショット
・スナップショットをS3に保存することで高い耐久性を実現できる（***イレブンナイン***：99.999999999%）

###ボリュームの暗号化
・EBSの暗号化を有効にすればボリュームが暗号化される
・ボリュームを暗号化すると、そのボリュームから作成されたスナップショットも暗号化される
・EC2インスタンスからのデータの暗号化/複合化は透過的に行われるので、プログラムやユーザから追加の操作を行う必要はない

###永続的ストレージ
・EBSはインスタンスのホストとは異なるハードウェアで管理される
・EBSに保存したデータはインスタンスの状態に関係なく永続的に保存される
***インスタンスストア***：
・インスタンスのホストローカルのストレージを使用
・データを一時的に扱う⇒EC2のインスタンスが起動している間のみ、データを保持している

#S3
・Amazon Simple Storage Serviceの略
・インターネット対応の完全マネージド型のオブジェクトストレージ

##S3の特徴

###無制限の外レージ容量
・S3では保存したいデータ容量を先に決めておく必要はない
・***バケット***というデータの入れものを作ればデータを保存し始めることができる
・データ容量は無制限
・ストレージ容量の確保/調達を気にすることなく開発に専念できる

###高い耐久性
・S3ではリージョンを選択してバケットを作成し、データをオブジェクトとしてアップロードする。そのオブジェクトは1つのリージョン内の複数のアベイラビリティゾーンにまたがって、自動的に冗長化して保存される
・これによりS3の耐久性は***イレブンナイン***（99.999999999%）となる
・冗長化やバックアップを意識することなく開発に専念できる

###インターネット経由でアクセス
・S3にはインターネット経由（HTTP/HTTPS）でアクセスするため、世界中のどこからでもアクセスできる
・アクセスとして使うことができる可用性は99.99%

##S3のセキュリティ
・S3バケットは作成した時点では、作成したアカウントから許可されたユーザやリソースからのアクセスのみ受け付ける（デフォルトでプライベート）
・必要に応じて特定のアカウント、IAMユーザ、AWSリソースにアクセス権限を設定する

###アクセス権限
***アクセスコントロールリスト（ACL）***：
・主に以下のことが可能
　・他の特定のAWSアカウントにオブジェクトの一覧を許可
　・他の特定のAWSアカウントにオブジェクトの書き込みを許可
　・他の特定のAWSアカウントにオブジェクトの読み取りを許可
　・誰にでもオブジェクトの一覧を許可
　・誰にでもオブジェクトの書き込みを許可
　・誰にでもオブジェクトの読み取りを許可
***バケットポリシー***：
・アクセスコントロールリストよりも細かい設定が必要な場合に使用する
***IAMポリシー***：
・IAMユーザに対してアクセス権を設定する
・AWSサービスにS3へのアクセス権を設定する

###通信、保存データの暗号化
・通信中のデータの暗号化
　・HTTPSでアクセスすることによって通信が暗号化される
・保存データの暗号化
　・S3のキーを使用したサーバサイドの暗号化
　・KMS（ユーザがAWS上に作成するマスターキー）を使用したサーバサイド暗号化
　・ユーザ独自のキーを使用したサーバサイド、またはクライアントサイド暗号化

##S3の料金

###ストレージ料金
・保存しているオブジェクトの容量に対しての料金
・1ヵ月全体をとおしての平均保存料で料金が算出される
・ストレージクラスによっても料金が異なる
・ストレージクラス
　・標準：
　　・デフォルトのストレージクラス
　　・アプリケーションによって頻繁に利用されるオブジェクト、静的Webコンテンツの配信に使用
　・低頻度アクセスストレージ（標準IA）：
　　・アクセス頻度の少ないオブジェクトを格納する
　　・ストレージ料金は標準ストレージよりも安価になるが、リクエスト料金が標準ストレージよりもあがる
　　・バックアップデータなどに使用
　・1ゾーン低頻度アクセスストレージ（1ゾーンIA）：
　　・アクセスする頻度が少なく、かつ、複数のアベイラリティゾーンに冗長化される耐久性を必要としないオブジェクトを保存する場合に使用
　・Amazon Glacier：
　　・単独のサービスとしても使用できるアーカイブサービス
　　・ほとんどアクセスしないものの保存はしておかなければならないような、アーカイブデータを格納する
　　・規約によって保存年数が定められているなど、アクセスすることはほとんどなくても削除はできないデータを保存
・ライフサイクルポリシー
　・初回のアップロード時から各ストレージクラスを指定することができる
　・アップロードした日から起算して自動でストレージクラスを変更するライフサイクルポリシーを設定することもできる
　　　ex）当日：EC2（EBS）に保存
　　　　　1日～30日間：標準ストレージに保存
　　　　　31日～60日間：低頻度アクセスストレージに保存
　　　　　61日～1年間：Amazon Glacierに保存
　　　　　1年経過後：削除

###リクエスト料金
・データをアップロードしたり、ダウンロードするリクエストに対しての料金

###データ転送料金
・リージョンの外にデータを転送した場合にのみ発生
・リージョンによって異なる
・インターネットに転送した場合とリージョンへ転送した場合でも異なる

##S3のユースケース
・アプリケーションデータの保存
・HTML、CSS、JavaScript、画像、動画ファイルなどの静的コンテンツの配信
・データバックアップの保存
・ログデータ、センサーデータなどの保存
・ビッグデータのステージング
・クロスリージョンレプリケーションによるDR（ディザスタリカバリ）対策