ストレージサービス
Amazon Simple Storage Service(S3)
- 高耐久・大容量のオブジェクトストレージサービス
- データをオブジェクトとして扱い、IDとメタデータによって管理する
- バケットと呼ばれる単位で作成し、その中にオブジェクトを保管する
- 耐久性は99.999999999%に達するため、バックアップストレージとしても利用できる
- 利用した容量分の料金が発生する
バケット名はグローバルで重複できない
データの復元性と大規模災害対策に関するS3の機能
◉誤ってデータを削除してしまった場合
バージョニング機能
- オブジェクトの世代管理を提供する
- 設定に基づいて、以前の世代に戻すことができる
- バージョンはオブジェクト単位でバージョンIDで管理される
- 同名オブジェクトをアップロードすると標準で上書きされる
バージョニング機能を有効化することで復元性は向上するが、その分のコストが発生する
◉大規模災害対策として
クロスリージョンレプリケーション
- 別のリージョンのS3バケットにオブジェクトを自動複製する
- 複製先に別のAWSアカウントも指定可能
S3に保存したデータは、デフォルトで同じリージョン内の3ヶ所のAZに自動複製される
S3におけるセキュリティ対策
◉アクセス制御
◎IAMポリシーによるアクセス制御
IAMユーザー/IAMロールからRead/Get/Put操作に対する制御が可能
◎バケットポリシーによるアクセス制御
S3バケットにJSONコードを記載してバケット全体のアクセス制御が可能
◎ACL(Access Control List)によるアクセス制御
- S3バケットに対して、AWSアカウントレベルのアクセス制御を行う
- ACLからパブリックアスセスの設定を行い、不特定多数のユーザへファイル公開も可能
◎ブロックパブリックアスセスによるアスセス制御
バケットポリシーやACLの設定に対して、一括で制限を設けることができる
パケットポリシー/ACLによる制御はS3の各バケットやオブジェクトデータを監視しないと、意図せず外部に公開されてしまう可能性がある
◉暗号化
- S3のデフォルトキーを使用したAES-256暗号化
- AWS Key Management Service(KMS)で管理されている鍵によるAES-256暗号化
- ユーザー任意の鍵によるAES-256暗号化
・デフォルトキー/AWS KMSを利用した場合、AWS側で鍵の管理を行う
・ユーザー任意の鍵は、暗号化キーと暗号化したオブジェクトのマッピングはユーザーが管理する
S3のコスト最適化
◉ストレージクラスの種類
ユースケースに応じて利用形態を選択する
◎スタンダード
- デフォルトのストレージクラス
- 99.999999999%の高耐久性
◎標準低頻度アクセス(Standard-Infrequent Access)
- スタンダードと同じ耐久性で低コストで利用可能なストレージ
- データの読み取りに対して課金される
- 長期保管やバックアップに利用される
◎1ゾーン低頻度アクセス(One Zone-Infrequent Access)
- 標準低頻度アクセスほど耐久性を必要としない場合に利用
- 1ヶ所のAZのみにデータ保存のため、標準低頻度よりさらに低コスト
####◎低冗長化ストレージ(Reduce Redundancy Storage)
- スタンダードでは3ヶ所のAZに複製するものを、2ヶ所に複製する
- 耐久性は落ちるがコストが抑えられる
◎Amazon S3 Glacier
- アーカイブを目的としたストレージ
- 大容量データを安価で補完できるがデータアクセスに時間がかかる
- S3 Glacierよりもアクセスに時間がかかるがより安価な、GlacierDeep Archiveもある
アーカイブ
専用の記憶領域に保存すること
◎Intelligent-Tiering
- 低頻度/高頻度の2階層のストレージ層を用意し、オブジェクトへのアクセス頻度の応じてストレージ層を自動的に使い分ける
- コストが自動で最適化される
◉柔軟なライフサイクルポリシー
ライフサイクルポリシーを設定することで、設定期間が経過したらオブジェクトを自動削除/アーカイブする
S3のデータ転送効率化を実現する機能
◉マルチパートアップロード
- 大容量のオブジェクトをパートと呼ばれる複数の単位に分割してアップロードする
- 全てのパートのアップロードが完了するとS3側で自動的にオブジェクトを再構築
◉Amazon S3 Transfer Acceleration
- 機能を有効化することでクライアントとS3間の通信を高速化する
- データ転送時にエッジロケーションとAWSネットワークを利用
ストレージ以外でのS3の用途
◉Webサイトホスティング
- 静的コンテンツのWebサイトホスティング機能
- サーバー構築せずに公開できる
- Route 53のDNSフェイルオーバー機能と組み合わせてWebサイトのSorryページとして利用される
Sorryページ
Webサイトのメンテナンス/障害発生時に表示するページ
◉データストア
実質目制限にデータ保管できるため、データレイクやビックデータ分析用のデータストアとして利用される
データレイク
規模に関わらずデータをそのままの形で保存できるストレージレポジトリ
◉署名付きURL
AWS CLIやAWS SDKを利用してS3上のデータに対して一定時間アクセスを許可するURLを発行する
Amazon Elastic Block Store(EBS)
- 永続可能なブロックストレージサービス
- AZ間ではなく、AZ内で自動複製される
- AZ障害時には影響を受けるが、単一ディスク障害を回避できる
◉EBSの機能
◎複数のボリュームタイプ
○汎用SSD(General Purpose SSD:gp2)
- デフォルトのボリュームタイプで安価
- 確保した容量に対してIOPSが設定されている
- OSのルート領域や高性能なI/Oを要求されないデータ領域で利用
I/O
inputとoutputの頭文字(入出力)のこと
IOPS
1秒あたりに処理できるI/Oのアクセス数
○プロビジョンドIOPS SSD(PIOPS SSD:io1, io2)
- ユーザーが自由にIOPSを設定できる
- 汎用SSDより高パフォーマンス
- ストレージ容量/指定したIOPSに対して課金される
○スループット最適化HDD(st1)
HDDタイプで大容量ストレージを安価に利用できる
○コールドHDD(sc1)
- アクセス頻度が低い大量データの保存に適している
- st1より安価
○マグネティック
旧世代のHDD
SSD(Solid State Drive)
容量単価がHDDより高い
HDD(Hard Disk Drive)
容量単価として安くなる
◎スナップショットによるバックアップ
- スナップショットは自動的にS3に保管
- 初回はフルバックアップ、以後は増分を取得
オンプレ環境のストレージはバックアップ取得完了までの待ち時間がある
EBSスナップショットは取得実行した時点のものが保管されるため待ち時間がない
Amazon Elastic File System(EFS)
複数のEC2インスタンスから共有ファイルストレージとして利用できる
◉EFSの特徴
◎高可用性
- 複数のAZに冗長化してデータ保管する
- AZをまたいでもファイルアクセス可能
◎自動スケーリング
- ストレージ容量/パフォーマンスを自動的にスケーリング
- ファイル削除時は自動で縮小
- EBSより柔軟に対応できる
◎標準的なファイルシステム
- NFSによってアクセスする
- EC2インスタンスだけでなくオンプレサーバーからも利用可能
NFS(Network File System)
LinuxなどのUNIX系のOSで利用されるファイル共有システム
Amazon FSx
- コスト効率の良いファイルシステム
- サイジング/冗長化/ソフトウェア管理/バックアップなどの検討事項を簡素化する
◉FSxの特徴
◎高可用性と高耐久性
- マルチAZに対応している
- S3へのバックアップが可能
◎高速で柔軟なパフォーマンス
データ保管用ストレージはSSD/HDDに対応している
◎セキュリティ保護
- FSxに保管されたデータ/通信中のデータは全て暗号化されている
- IAMポリシーによるAPIコールやセキュリティグループによるアクセス制御が可能
◎FSxのファイルシステム
○Fxs for Windows
- Windowsサーバーで使われるSMBプロトコルを利用してデータアクセス可能なファイルシステム
- Active Directoryとの連携
- WindowsのACLによるアクセス制御可能
○FSx for Lustre
- 機械学習など、処理速度を重視するシステムに利用されるLinuxベースのファイルシステム
- Linuxコマンドで実行でき、アプリケーションの変更を加えずに利用可能
SMB(Server Message Block)
主にWindows OSのネットワークでファイル/プリンタ共有などに使用される通信プロトコル
その他のストレージサービス
◉インスタンスストア(エフェメラルディスク)
- 特定のEC2インスタンスで利用できる無料ストレージサービス
- ホストコンピュータのローカル領域を使用
高パフォーマンスだがインスタンスが停止するとデータが消失するため冗長化の検討が必要
◉AWS Storage Gateway(SGW)
- S3へNFS/SMB/iSCSIなど標準プロトコルでアクセスできるサービス
- EC2インスタンス/オンプレサーバーにS3を認識させ(マウントして)利用する
iSCSI(Internet Small Computer System Interface)
データ転送にTCP/IPを使用する仕組み
◉SGWの種類
◎キャッシュ型ボリュームゲートウェイ
- データはS3に保管するが、アクセス頻度の高いデータはローカルにキャッシュ
- インターフェイスにiSCSIを使用
キャッシュ
PCやスマホに一時的にWebページのデータを保存しておいて、次に開いた時に素早く表示させる仕組み
◎保管型ボリュームゲートウェイ
- データをスナップショットとしてS3に保管
- インターフェイスにiSCSIを使用
◎テープゲートウェイ
- 物理テープ装置の代替として、データをS3(Glacier)に保管
- インターフェイスにiSCSIを使用
◎ファイルゲートウェイ
- データをオブジェクトとして直接S3に保管
- インターフェイスにNFSを使用
◉AWS Import/Export
- ユーザーから送付された物理ディスクのデータをAWSがAWS内のストレージに転送(Import)
- ユーザーの物理ディスクにデータを書き出す(Export)
・通常のネットワーク転送では非常に時間がかかるため、大容量のデータ移行に有効
・反面、高価なディスクを購入したりディスクの耐久性/セキュリティに懸念事項がある
◉AWS Snowball(80TB)
- AWSから物理的に搬送される耐久性の高い筺体に大容量のデータを保管
- 保管した筺体はAWSマネジメントコンソールからジョブを作成し、登録先の住所へ発送
- 指定したリージョン、AZにあるストレージへ転送される
- Snowball内のデータは自動的に暗号化される
◉AWS Snowball Edge(100TB)
- Snowballより大容量で多くのネットワークインターフェイスをサポート
- S3のAPIやNFSによる転送が標準で行うことが可能
参考