2.3 ストレージ
AWS Storage Services
AWSは用途に応じた多様なストレージサービスを提供する。オブジェクトストレージ(S3)、ブロックストレージ(EBS)、ファイルストレージ(EFS)の特性を理解し、適切に選択することが重要である。
ストレージタイプの比較
@startuml
skinparam backgroundColor #FEFEFE
rectangle "オブジェクトストレージ" as Object #DBEAFE {
rectangle "S3" as S3 #93C5FD
note bottom of S3
HTTPアクセス
無制限容量
高耐久性 (99.999999999%)
静的コンテンツ、バックアップ
end note
}
rectangle "ブロックストレージ" as Block #D1FAE5 {
rectangle "EBS" as EBS #6EE7B7
note bottom of EBS
EC2にアタッチ
低レイテンシ
スナップショット可能
DB、OS用
end note
}
rectangle "ファイルストレージ" as File #FEF3C7 {
rectangle "EFS" as EFS #FDE68A
note bottom of EFS
NFSプロトコル
複数EC2で共有
自動スケール
共有ファイルシステム
end note
}
@enduml
図1: 3種類のストレージタイプ
| 特性 | S3 | EBS | EFS |
|---|---|---|---|
| アクセス方式 | HTTP/HTTPS API | ブロックデバイス | NFS |
| 接続 | どこからでも | 単一EC2 | 複数EC2 |
| 容量 | 無制限 | 最大64TB | 自動拡張 |
| ユースケース | 静的コンテンツ、ログ | DB、ブートボリューム | 共有ファイル |
S3(Simple Storage Service)
@startuml
skinparam backgroundColor #FEFEFE
rectangle "S3" as S3 {
rectangle "バケット (my-bucket)" as Bucket #DBEAFE {
rectangle "オブジェクト" as Obj1 #93C5FD {
file "images/logo.png" as F1
}
rectangle "オブジェクト" as Obj2 #93C5FD {
file "data/report.csv" as F2
}
rectangle "オブジェクト" as Obj3 #93C5FD {
file "backup/db.sql" as F3
}
}
}
note right of Bucket
バケット名: グローバルで一意
オブジェクトキー: パス形式
最大オブジェクトサイズ: 5TB
end note
rectangle "ストレージクラス" as Classes #FEF3C7 {
rectangle "S3 Standard" as Std #FDE68A
rectangle "S3 Standard-IA" as IA #FDE68A
rectangle "S3 Glacier" as Glacier #FDE68A
}
Bucket --> Classes : ライフサイクル\nポリシー
@enduml
図2: S3のバケットとオブジェクト構造
| ストレージクラス | 用途 | 料金(東京) |
|---|---|---|
| S3 Standard | 頻繁アクセス | $0.025/GB |
| S3 Standard-IA | 低頻度アクセス | $0.0138/GB |
| S3 Glacier | アーカイブ(取得に時間) | $0.005/GB |
| S3 Glacier Deep Archive | 長期保存 | $0.002/GB |
EBS(Elastic Block Store)
@startmindmap skinparam backgroundColor #FEFEFE * EBSボリュームタイプ ** SSD *** gp3 (汎用SSD) **** デフォルト推奨 **** 3,000 IOPS基本 **** コスト効率 *** io2 (プロビジョンドIOPS) **** 高性能DB向け **** 最大64,000 IOPS **** ミッションクリティカル ** HDD *** st1 (スループット最適化) **** ビッグデータ **** シーケンシャルアクセス *** sc1 (Cold HDD) **** アクセス頻度低 **** 最低コスト left side ** 機能 *** スナップショット **** S3に増分バックアップ **** リージョン間コピー *** 暗号化 **** AES-256 **** KMS統合 *** マルチアタッチ **** io1/io2のみ **** 最大16インスタンス @endmindmap
図3: EBSボリュームタイプの選択
注意:EBSの課金
EBSはEC2インスタンス停止中も課金が継続する。不要なボリュームは削除すること。スナップショットもS3上で課金される。
EBSはEC2インスタンス停止中も課金が継続する。不要なボリュームは削除すること。スナップショットもS3上で課金される。
出典
[1] AWS. Amazon S3 Storage Classes. https://aws.amazon.com/s3/storage-classes/
[2] AWS. Amazon EBS Volume Types. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html
[2] AWS. Amazon EBS Volume Types. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html
発展学習
→ S3 Versioning and Lifecycle Policies
→ EBS Snapshots and AMI Creation
→ S3 Versioning and Lifecycle Policies
→ EBS Snapshots and AMI Creation