Serverless Operations, inc

>_cd /blog/id_w42hpt2yycp

title

「Amazon S3」入門 ~クラウドストレージの基本から活用まで~

summary

Amazon S3(Simple Storage Service)は、2006年のAWS創業当初から提供されている最も基本的かつ重要なクラウドサービスです。ストレージサービスとして高い耐久性と可用性、無制限のスケーラビリティ、低コストといった特徴を備えており、大企業から個人まで幅広いニーズに応えるクラウドの基盤として活用されています。AWSユーザーなら既に利用している方が多いでしょうが、改めてその特徴を解説します。

S3の基本的な機能と特徴

オブジェクトストレージの仕組み

Amazon S3は、AWSが提供するもっとも基本的なサービスである、オブジェクトストレージです。オブジェクトストレージとは、データをファイルシステムのような階層構造ではなく、一意のキーに対応したオブジェクトとして保存する仕組みです。PC のようなファイルシステムとは異なり、フラットな構造を持ち、HTTPまたは HTTPSを通じてアクセスします。このシンプルな構造により、Amazon S3は高いスケーラビリティと柔軟性を実現しています。

バケットとオブジェクト

Amazon S3では、「バケット」と「オブジェクト」という概念が重要です。バケットは、オブジェクトを保存する入れ物であり、1つのAWSアカウントで最大100個までですが、別途申請することで追加料金なしで増やすことができます。バケット名はAWS全体で一意である必要があります。つまり他の利用者のバケットとは被らないようにしなければなりません。一方、保存するオブジェクトは、ファイルとそれを記述するメタデータの組み合わせで、オブジェクトあたり最大5TBまで保存できます。Amazon S3に保存できるデータは無制限ですが、個々のオブジェクトのサイズには制限がある点に注意が必要です。

非常に高い耐久性と可用性

Amazon S3の最大の特徴は、その驚異的な耐久性です。「11個の9」と表現される99.999999999% の耐久性を誇り、これは1,000万個のオブジェクトを保存した場合に、1つのオブジェクトが損失する確率が1万年に一度というレベルです。また、Amazon S3はデータを地理的に離れた複数のデータセンター(AWSではアベイラビリティゾーンと呼ぶ)に自動的に複製して保存します。そのため、一箇所のデータセンターで大規模な停電や災害が発生しても、別のデータセンターにバックアップがあるため、データ消失のリスクが大幅に軽減されます。この高い信頼性は、オンプレミス環境で実現するのは現実的にほぼ不可能なレベルです。

データの整合性

Amazon S3はデータの整合性を担保するモデルを、サービス開始当初から「結果整合性」としていましたが、2020年からは「強力な整合性」へとアップグレードしました。以前の結果整合性では、更新後しばらくの間は古いバージョンが表示される可能性がありましたが、強力な整合性になったことで、ファイルをアップロードまたは更新した直後に誰かがそのファイルにアクセスしても、常に最新版が表示されるようになりました。この改善によって、複数のシステムや端末からのファイルアクセスにおいても、食い違いが生じることがなくなり、重要なデータを扱う業務システムでも安心して利用できます。ただし、注意点として、複数のユーザーが同時に同じファイルを編集した場合、最後に保存した変更のみが反映される仕組みになっているので、システム構築時には排他制御等の考慮が必要です。

Amazon S3を活用するためのポイント

データの整理方法

Amazon S3でデータを整理するためには、「プレフィックス」という仕組みを理解する必要があります。プレフィックスは、一見すると通常のディレクトリ構造のように表示されますが、技術的には異なるものです。例えば「営業部/2023年/第3四半期/報告書.pdf」というファイルがある場合、「営業部/2023年/第3四半期/」の部分はディレクトリ階層ではなくプレフィックスに該当します。プレフィックスを活用することで、「営業部の資料だけ」「2023年のファイルだけ」といった柔軟な検索や管理が可能です。使用に際しては、通常のディレクトリと同じ感覚で使えるので、特別な操作は必要ありません。

ストレージクラスとコスト効率

Amazon S3では用途に応じて料金やパフォーマンスが異なる複数の「ストレージクラス」を提供しています。このストレージクラスは、それぞれ以下のような違いがあります。

アクセス頻度の高いデータ向け

  • S3 Standard(S3標準):日常的にアクセスするデータ向け。料金は標準的で、データの取り出し料金は発生しませんが、使用した帯域に応じたデータ転送料金が発生します
  • S3 Express One Zone:必要なアプリケーション向けに、1桁ミリ秒のデータアクセスを提供可能。S3でもっともパフォーマンスが高いストレージ
  • 低冗長化ストレージ :重要度の低いデータ向けで、S3標準よりも低い冗長性で構成されており、オブジェクトの平均年間予測喪失率は 0.01 パーセント。コスト効果を考慮するとメリットはほとんどないためAWSも利用を推奨していない
  • S3 Intelligent-Tiering:データのアクセス頻度に応じて、頻繁にアクセスされるものは「高頻度アクセス」、30日間アクセスがないと「低頻度アクセス」、90日間アクセスがないと「アーカイブインスタントアクセス」という3つの階層に自動的にデータを移動し、コストを最適化する。オプションでよりアクセス頻度が低いデータ階層も設定可能

アクセス頻度の低いデータ向け

  • S3 Standard – IA(S3標準-低頻度アクセス):月に数回程度しかアクセスしないデータ向け。保存料金は約40%安くなりますが、データを取り出す際に別途料金がかかります
  • S3 One Zone-IA:オブジェクトデータを 1 つのアベイラビリティーゾーンでのみ保存するため、S3 Standard-IA よりも安価だが、大規模災害時にデータ損失の可能性がある

ほとんどアクセスしないデータ向け

  • S3 Glacierシリーズ:年に数回程度しかアクセスしない、長期保存向け。アクセスの頻度に応じてInstant Retrieval、Flexible Retrieval、Deep Archiveの3シリーズがある。保存料金は最大で標準の20%以下になりますが、データを取り出すには時間がかかり、より高い取り出し料金が発生します

S3の開始当初は、ストレージクラスも小数でしたが、その後のニーズやユースケースの拡大に合わせて、現在ではストレージクラスもここまで多様化しています。

ビジネスにおける Amazon S3 活用シーン

データ保護・バックアップの要

オンプレミスのバックアップストレージが容量不足になったり、管理コストの増大が課題となっていたりする場合、Amazon S3は有効な解決策となります。テープライブラリやNASの代わりにAmazon S3を利用することで、容量が無制限のバックアップ環境を構築できます。バックアップの手段は、AWS CLIを用いた簡単な同期から、S3ファイルゲートウェイやAWS DataSyncなどの高度なツールまで、様々な方法でデータを転送できます。さらに、オブジェクトロック機能を活用すれば、指定した期間中はデータの書き換えを防止できるため、ランサムウェア対策としても有効です。

データレイクの基盤として

データ活用を推進する際に、各システムに分散してデータを保持している状態では非効率なため、多くの場合データレイクなどに集約することになります。Amazon S3をデータレイクとして活用することで、さまざまなソースからのデータを一箇所に集約し、柔軟な分析が可能です。Amazon S3は多くのデータ分析サービスと連携しており、Amazon Athena、AWS Glue、Amazon EMRなどを組み合わせることで、高度なデータ分析環境を構築できます。重要なのは、元データをAmazon S3に保管し、分析・加工処理を疎結合にすることで、将来の分析ニーズにも柔軟に対応できる点です

Webコンテンツ配信の効率化

Webサイトのアクセスやコンテンツのボリュームが増加し、サーバの負荷が高まった場合、静的コンテンツ(画像、動画、CSSファイルなど)をS3にオフロードすることで、Webサーバーの負荷を軽減できます。S3には静的ウェブサイトホスティング機能があり、これを使用して公開したコンテンツは、Amazon CloudFrontと組み合わせることで、世界中のエッジロケーションからより高速に配信できます。CloudFrontは、AWSが提供するCDN(コンテンツ配信ネットワーク)でS3と併用することで外部のCDNを使うことなく高速、効率的、可用性の高いコンテンツ配信が可能になります。さらに、AWS ShieldやAWS WAFなどのセキュリティサービスと連携することで、DDoS攻撃からWebサイトを保護することも可能です。

まとめ

Amazon S3は、その柔軟性と豊富な機能により、あらゆるクラウドシステムの基盤として欠かせないサービスです。料金自体もリーズナブルなものであり、またストレージクラスも多様化しており、ほとんどのシステムやユースケースは構築においてカバー可能です。コストに加え他のAWSサービスと柔軟に連携できるのもS3の大きなメリットです。したがって、クラウドでのシステム開発に際しても、ストレージクラスの選択もデータ容量や転送量が増えてきてから改めて検討しても大きなデメリットにはなりません。このように、細かい点で余り悩むことなく、大胆に始めることができるのがS3の一つの特徴とも言えます。

Written by
編集部

Serverless Operations編集部

Editing Department

Share

Facebook->X->
Back
to list
<-