AWS SAP-C02 対策 S3編
概要
AWS 認定試験 SAP-C02 合格記念にノートを晒します。
S3が絡む問題は頻出なので、覚えておくとよいです。
S3ストレージクラス早見表
ストレージクラス | アクセス頻度 | データ取得時間 | データの重要度 |
---|---|---|---|
標準(Standard) | 高い | ミリ秒 | 高い |
標準-低頻度アクセス(Standard-IA) | 低い | ミリ秒 | 高い |
1ゾーン-低頻度アクセス(One Zone-IA) | 低い | ミリ秒 | 低い |
Intelligent-Tiering | 変動する | ミリ秒 | 高い |
Glacier Instant Retrieval | ほぼない | ミリ秒 | 高い |
Glacier Flexible Retrieval(旧 S3 Glacier) | ほぼない | 1分〜12時間 | 高い |
Glacier Deep Archive | ほぼない | 12〜48 時間 | 高い |
S3データ取得オプション
Glacierの細かな数字まで覚えておくと安心です。
ストレージクラス | Expedited(迅速) | Standard | Bulk(一括) |
---|---|---|---|
Glacier Flexible Retrieval(旧 S3 Glacier) | 1~5 分 | 3~5 時間 | 5~12 時間 |
S3 Glacier Deep Archive | 利用不可 | 12 時間以内 | 48 時間以内 |
S3の料金
S3の料金は、下記で構成されます。
1年間のストレージ料金 + リクエスト料金 + データ取り出し料金 + データ転送料金
S3のクラスによって、データ転送料金以外の3つの単価が異なるので、データ特性にあったストレージクラスを選ぶことがコスト削減につながります。
最小ストレージ期間料金
最小ストレージ期間が満了する前にオブジェクトを削除した場合、日割りで按分された早期削除料金が発生します。
ストレージクラス | 最小ストレージ期間 |
---|---|
Glacier Deep Archive | 180日間 |
Glacier (Deep Archive以外) | 90日間 |
低頻度アクセス(IA) | 30日間 |
その他 | なし |
Intelligent-Tiering
Intelligent-Tieringは、アクセス頻度によって、オブジェクトを自動で階層分けしてくれるストレージクラスです。
30日間リクエストのないオブジェクトが自動で低頻度アクセス階層へ移動します。逆に、リクエストがあると、高頻度アクセス階層へ移動します。
つまり、アクセス頻度が変化する場合や、予測できない場合にコスト効率がよくなる可能性があります。
別途、モニタリングコストとしてオブジェクト 1,000 件あたり 0.0025USD 発生します。試験で問われることは恐らく無いですが、実務でS3のクラス選択をする際には念頭に置いておきましょう。
S3リクエスタ支払い
S3料金のうち、リクエスト料金とデータ転送料金をリクエストした側のアカウントに請求する設定のこと。有効にした場合、AWSアカウント以外からのアクセスができなくなります。
リクエストする側は、課金されることを了承している旨を示すため、リクエストのヘッダーにx-amz-request-payer
を含める必要があります。
レプリケーション
異なるアカウント、異なるリージョンにもレプリケート(自動・非同期的にコピー)できます。
S3 Replication Time Control (S3 RTC)
有効にすることで、ほとんどのオブジェクトは数秒、99.99%のオブジェクトは15分以内にレプリケートされます。15分の閾値を超えた場合と、15分の閾値経過後にレプリケートされたオブジェクトのイベント通知を作成できます。
パフォーマンス
マルチパートアップロード
マルチパートアップロードはAPIとして提供されており、オブジェクトを複数のパートに分けて並列アップロードできます。スループットの向上、アップロードの一時停止・再開ができる、などのメリットがあります。
そもそも、S3では、アップロード方法によって、扱えるサイズが決まっています。
そのため、例えば、CLIで巨大なサイズのファイルをアップロードしようとした場合、裏では勝手にマルチアップロードが実行されています。なので、利用自体は無料です(データ転送料金はもちろん発生する)。
料金という観点では、アップロードが完了せずに不完全な状態で残ってしまった場合でも、ストレージ料金の対象になってしまうという問題があります。しかし、これはライフサイクルポリシーで自動削除の設定をすることで簡単に対処できます。
S3 Transfer Acceleration
有効にすることで、全世界のエッジロケーション経由でデータ転送ができます。
S3バケットを利用するアプリケーション側では、Transfer Acceleration専用のエンドポイントを指定する必要があります。
暗号化
すべてのバケットに対して、基本レベルの暗号化として、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) が適用されます。
SSE-S3暗号化では、各S3オブジェクトが、強力な多要素暗号化を使用する一意のデータキーで暗号化されます。
ネットワーク
VPCエンドポイントを利用してアクセスします。
VPCエンドポイントには下記の2種類が存在し、それぞれS3に対応しています。
- ゲートウェイエンドポイント
- 無料
- オンプレミスや別リージョンからのアクセスは不可
- インターフェイスエンドポイント(AWS PrivateLink)
- 有料
- オンプレミスや別リージョンからのアクセスが可能
よって、同一VPC内からのアクセスであれば無料のゲートウェイエンドポイント、オンプレミスや別リージョンからのアクセスの場合、インターフェイスエンドポイントを利用します。
S3バッチオペレーション
オペレーション | 補足内容 |
---|---|
オブジェクトのコピー | 異なるリージョンのバケットにもコピー可能 |
Lambda関数のコール | - |
オブジェクトのすべてのタグの置換 | すべてが対象なので、既存のタグは保持されない |
オブジェクトのすべてのタグの削除 | - |
アクセスコントロールリスト[1]の置換 | - |
オブジェクトの復元 | Glacier にアーカイブされたオブジェクトの復元 |
オブジェクトロック[2]の保持 | 保持期間を一括設定 |
オブジェクトロックのリーガルホールド[3] | 有効化・解除の一括設定 |
Discussion