AWS活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回はストレージサービスの「Amazon S3」に焦点を当てて、コストを最適化するポイントを紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。以前、『円安時代に再考するAWSコスト節約術(コンピュートリソース編:「EC2」「ECS」「Lambda」)』という記事を書いた時よりもドル高円安の流れは多少落ち着きましたが、それでも数年前の1ドル=110円前後よりは依然としてドル高のままです。
また普段からAWSのコスト最適化を進めておくことはドル円レートの傾向にかかわらず必要なことだと思います。
今回は、多くのシステムで利用されているであろうストレージサービス「Amazon S3」に焦点を当てて、コストを最適化できるポイントを紹介します。
※各サービスの最新の利用料金に関しては公式の情報をご参照ください。
以前の記事でも書いた通り、AWSのサービスはリージョンごとに利用量当たりの課金料が違います。S3においてもこの原則は変わらず、S3では保存容量、アクセス数、データ転送量についても東京リージョンと比較して北米リージョンが安くなっています。
もし、ある程度大きなファイルの保管場所としてS3を利用する場合、開発用だったり、S3に保存する情報の場所に法的な要件がなかったりするなら北米リージョンを利用することをお勧めします。
S3には保存するオブジェクトの性質に合わせてさまざまなストレージクラスが用意されています。下記はストレージクラスの一覧と「どういった場合に、どれを選べばよいか」のポイントです。
保存容量、アクセス、データ取り出しにかかる料金については、冒頭で挙げた公式のS3利用料金表を参照すればいいですが、通常利用するファイルの保存についてはアクセス頻度に応じて1〜3の中から選択し、アーカイブファイルの保存用途なら、取り出し時間の要件を考慮し4〜6の中から選択すればよいでしょう。
もしも、保存するファイルの性質がまだ不明な場合は、7を選び、自動的にお得になるストレージ層を利用できる設定をしておくといいでしょう。
もし、自分で「90日後にS3標準から、S3標準-IAへ変更」という明確なルールのもとストレージクラスを変更したい場合は、S3のライフサイクルルールを設定することで実現できます。
S3は保存しているファイルの容量、データ取り出し(GB当たり)に対して課金されます。これは、もしも圧縮できるデータが多く存在しているのに非圧縮状態で存在していた場合、無駄遣いをしていることになります。
S3にファイルを置く際に圧縮した状態になるようにプログラムや「Kinesis Firehose」の設定をお勧めします。
まず簡単なところとして、利用していないファイルを削除するようにしましょう。
S3で盲点になりやすいのは、バージョニングを設定しているバケットで見た目上削除されているが、削除マーカーが付与されているだけで実体としては保存されており、保存容量がかかっている場合です。下図はバージョニングが設定されているS3管理画面のキャプチャーです。
このようにバージョンを表示しないと空のように見えますが、表示した場合、下図のように削除前のファイルが保存されていることが分かります。
バージョニングを設定していて何度も同じファイル名を更新した場合、複数のバージョンが保存されることで、見た目上のファイル数×バージョン数でコストがかかることになります。こういったバージョニングによるコスト増を防ぐためにも、前述のライフサイクルルールを利用できます。具体的には下記キャプチャーの設定でバージョンの世代管理などを細かく行えます。
大きなファイルをアップロードするときにマルチパートアップロードを利用している場合、途中で失敗した場合にゴミとして残ってしまうものを「不完全なマルチパートアップロード」といいます。保存容量を喰(く)うだけなので削除を設定しておくことをお勧めします。
上記のような「非現行バージョン」「不完全なマルチパートアップロード」「削除マーカー」を可視化できるものとしてS3には「StorageLens」機能があるので、そちらを活用することで不要なオブジェクトを把握しやすくしておくのもいいでしょう。
今回のポイントをまとめます。
本記事が皆さんのAWS利用のコスト最適化に少しでも寄与できれば幸いです。別の機会にAWSでの通信に関わるコストをテーマにしてコスト最適化について説明する予定です。お楽しみに。
株式会社システムシェアード 開発事業部所属。
ここ数年はAWSを利用したシステムの設計、開発、構築を行っています。
仕事以外では、AWSの資格をあと2つでコンプリートできるので制覇に向けて頑張っています!
Copyright © ITmedia, Inc. All Rights Reserved.