よくわかるAWS・クラウド

  • AWS入門
  • AWS

Amazon S3とは?メリットや豊富な機能、料金、使い方をわかりやすく解説

Amazon S3とは?

Amazon S3 (Amazon Simple Storage Service) は、AWSが提供するクラウド型のオブジェクトストレージサービスです。データのバックアップ・復元、災害対策、アーカイブやデータ分析の基盤として広く利用されています。
その耐久性、セキュリティ、コストパフォーマンスに優れた特長やメリット、主な機能と活用方法、ストレージクラス、料金についてわかりやすく解説します。

Amazon S3のメリット

Amazon S3の主な3つのメリットを紹介します。

1.スケーラブルな容量無制限のストレージ

Amazon S3は保存できるデータ容量に上限がなく、無制限です。使っているストレージの空き容量を気にすることがなく、容量が足りないためにデータを削除しなければならないといったこともおこりません。ビジネスの成長に伴うストレージ容量の調達に悩まされることが無くなります。

Amazon S3はAWSのコンソール上で「バケット(bucket)」というデータの入れ物を作成すると、その中にファイルを入れてデータを保存しはじめることができます。1つのバケットに保存できるデータの総容量とファイル(オブジェクト※)数は無制限ですが、1つのオブジェクトについては5TB(テラバイト)までという制限があります。1つのAWSアカウントで最大100のバケットを作成できますが、AWSに申し送りすることで最大1000まで増やすこともできます。
※バケット内に保存する個々のデータファイルを「オブジェクト」と呼びます。

2.高い可用性・耐久性、堅牢性を誇るクラウドストレージ

安全にそして、継続的に利用できることは重要なポイントとなります。

Amazon S3は、保管するオブジェクトの耐久性が、99.999999999%(イレブンナイン)になるよう設計されています。S3に格納されたオブジェクトは、リージョン内で切り離された最低3つのアベイラビリティーゾーン(独立したデータセンター)にまたがって、自動的に冗長化して保存されます。1つのアベイラビリティーゾーンに障害が発生した場合でも、別のアベイラビリティーゾーンに保存されたオブジェクトには影響が及ばず、AmazonS3にデータを保存することで、データ消失、障害やエラーなどの脅威からデータを保護することができます。

3.低コストで高い耐久性を実現

Amzaon S3は、初期費用がなく、保存されたデータ容量、リクエスト数、データ転送量により料金が決まる従量性で、必要最低限の費用で安価に利用を開始できます。また、頻繁に利用されない特性のデータは、データアクセス頻度の低い用途に設計された低コストのストレージクラスを利用することで、コストを抑えられます。また、データへのアクセスパターンにもとづき低コストのストレージクラスに自動で移動するようライフサイクルポリシーを設定することも可能です。

AWS運用の自動化機能の資料

<AWS運用の自動化機能とは?>
インフラ担当者の業務負荷を軽減!

AWSにはシステム運用を自動化するサービスが取り揃えられており、本資料では、これら機能の概要をわかりやすく解説します。

Amazon S3のセキュリティ

保存したオブジェクトはアクセス制限や暗号化機能を使い、不正アクセスなどの脅威からデータを保護しセキュリティを高めることができます。

アクセス制限

認証されたユーザーのみ操作を許可するなど、細かくアクセス制限ができます。
また、制限のあるオブジェクトに対して、一時的なURLを使って制限付きのアクセス許可を設定することもできます。

暗号化

Amazon S3では、サーバー側の暗号化と、データをアップロードするクライアント側の暗号化に対応しています。S3バケットのデフォルトの暗号化を有効にすることで、以降、そのバケットに保存されたデータは自動的に暗号化されます。

コンプライアンス/監査機能

PCI-DSS、HIPAA/HITECH、FedRAMP、EU データ保護指令、および FISMA などの各種コンプライアンス規制の要件を満たした設定が可能で、さまざまな業界で利用できます。また、S3のバケットやオブジェクトなどに対してどのようなリクエストがあったかを表示できる監査ログの機能もあります。

Amazon S3の豊富な機能を活用したユースケース

Amazon S3には、柔軟性の高い機能が豊富にあり、さまざまな利用方法で活用できます。Amazon S3を活用したユースケースをいくつか紹介します。

Webサーバーにもなる静的Webサイトのホスティング

Amazon S3をそのままWebサイトとして利用できます。ただし、サーバー側でのスクリプト処理が必要のない、静的なhtmlコンテンツ(JavaScriptやcssを含む)のWebサイトに限ります。

Webサーバーとして利用する場合、S3バケットのパブリックアクセスを許可して、静的Webサイトの設定をすると、httpプロトコルによるアクセスにhtmlドキュメントを返すことが可能となります。通常のWebサーバーと同様に、エラーの表示やアクセスログの記録、独自ドメインを割り当てることも可能です。ただし、SSL接続はサポートしていません。SSL接続を提供したい場合は、Webコンテンツの配信を高速化するウェブサービスであるAmazon CloudFrontを併せて利用します。

Amazon S3で静的なWebサイトを構築するメリット

  • コストの削減
    容量・数が大きいとサーバーのコストが高くなる傾向の画像を安くホスティングできます。
  • 安定した運用を実現
    Amazon S3は耐久性が、99.999999999%(イレブンナイン)となるよう設計されており、最低3つのアベイラビリティーゾーンに自動でコンテンツが冗長化されるため、手間なく簡単に耐久性・可用性の高いWebサイトを構築できます。

監査で必要なデータのバックアップ・アーカイブ管理を行う

S3バケットのバージョニングを有効にすると、バケットに保存されたすべてのオブジェクトのバージョンを保存して復元することができます。誤ってオブジェクトを上書きしたり、削除した場合でも復元できるため、データ保持やアーカイブ用途にも利用できます。
またライフサイクル管理を活用することで、オブジェクトをコスト効率の高い方法で保存することができます。たとえば、作成されたオブジェクトが頻繁に利用されない特性のものであれば、保存先を S3 標準から S3 標準 – IA や アーカイブ用のS3 Glacier など に自動で移行させてよりコストの安いストレージクラスにアーカイブするよう設定できます。
S3 オブジェクトロックを利用することでオブジェクトが上書きされたり、削除されたりしないよう、ロックをかけたり、ロックする期間を設定することもできます。

Amazon S3でバージョン管理をするメリット

  • バージョン管理が簡単
    保存日数や世代数などのライフサイクルをGUIから簡単に設定・管理することができます。
  • アーカイブのコストを削減
    Amazon S3 Glacierを利用することで監査対応などで使われる、閲覧・データの取り出し頻度は低いが長期保存する必要のあるデータをコスト抑えて保存できます。

BCP対策

地震などの自然災害や大規模なシステム障害などが起きてしまったときにAmazon S3の高い可用性やレプリケーション機能を利用して迅速にシステムを復旧できるため、BCP(事業継続計画)対策でも活用が可能です。

Amazon S3でBCP対策をするメリット

  • 短時間でシステムを復旧
    オブジェクトを別のバケットに複製できるレプリケーションでは、レプリケート元のバケットと送信先バケットを指定して行います。特定のフォルダ内のオブジェクトを限定した複製も可能です。また、異なる AWS リージョンにある2つのバケット間で、オブジェクトを自動的に非同期にコピーする機能、クロスリージョンレプリケーションも利用できます。

データ分析用のデータレイク

ビッグデータ分析などで利用する分析元のデータを貯めるデータレイクとしてS3を活用できます。

Amazon S3をデータレイクとして利用するメリット

  • 容量制限なくデータを貯めることができる
    実質無制限にスケールさせることができるため、様々なデータを保管することができます。
  • データ分析サービスと簡単に組み合わせることができる
    AWS Glue、Amazon EMR、Amazon Athenaなどのデータ分析サービスと組み合わせて直接クエリを実行することができます。

Amazon S3ストレージクラスの種類

Amazon S3の「ストレージクラス」とは、用途に合わせたストレージの種類のことで、以下のようなクラスがあります。保存期間やアクセス頻度に応じてクラスを選ぶことで、コストを最適化やコンプライアンス要件を満たすデータ保管環境を実現できます。

■注意■
低頻度アクセスのストレージクラスは費用は安くなりますが、データの取り出しを頻繁に行う場合は、標準ストレージより高くなる場合もあります。

種類 用途・特徴 データ取り出し費用
S3 標準 高頻度アクセスの汎用ストレージ用。 なし
S3 Intelligent-Tiering アクセス状況が未知のデータ、またはアクセス状況が変化するデータのアクセスパターンをモニタリングし、費用対効果の高いストレージクラスにデータを自動的に移動してコスト削減を図ることができるライフサイクル管理機能のストレージクラス。 なし
S3 標準 – IA アクセス頻度は低いが、すぐに取り出すことが必要なデータ。
保存されるアベイラビリティーゾーンは3箇所。
あり
S3 1 ゾーン – IA アクセス頻度は低いが、すぐに取り出すことが必要なデータ。
保存されるアベイラビリティーゾーンは1箇所。
あり
S3 Glacier
Instant Retrieval
データのアーカイブ用。
データ取得はミリ秒レベルで可能。
あり
S3 Glacier Flexible Retrieval
(旧:S3 Glacier)
データのアーカイブ用。
データ取得は無料で数分から数時間で取得可能。
あり
S3 Glacier Deep Archive データのアーカイブ用。
データ取り出しは12時間以内で可能。
規制コンプライアンス要件を満たすために 7~10 年以上データセットを保管するように設計。
あり

Amazon S3の料金・価格

Amazon S3の料金は、多くのAWSサービスと同様に基本料金なしの従量課金制です。料金は、以下の6つの要素により決まります。

要素 内容
ストレージ バケットにオブジェクトを保存するための料金。容量や期間、ストレージクラスによって異なる
リクエストとデータ取り出し バケットとオブジェクトに対するリクエストにかかる料金
データ転送 S3に出入りするすべての帯域幅にかかる料金。インターネットからS3に転送されるデータなど、一部の転送は除く
管理と分析 有効になっているストレージ管理機能や分析機能の料金
レプリケーション S3バケット間でオブジェクトを自動的にコピーできるレプリケーションにかかる料金
S3 Object Lambda AWS Lambda関数を使用して、S3へのGETリクエストにプログラムコードを追加して、データを変更および処理できる機能を使う場合の料金

無料枠

AWSの新規ユーザーは、AWS無料利用枠の適用によって、S3 標準ストレージクラスで5GBのストレージと20,000件のGetリクエスト、2,000件のPut、COPY、POST、あるいはLIST リクエスト、データ送信100GBを毎月利用できます。

Amazon S3の使い方

Amazon S3を利用するには、AWSのアカウントが必要です。アカウント登録自体は無料で
、無料利用枠を超えると料金が発生します。ここでは、AWSコンソールからS3バケットの作成、保存したオブジェクトへのアクセス方法、マネージドコンソール以外のAmazon S3の操作方法を紹介します。

Amazon S3を操作(バケットの作成、オブジェクトのコピー、削除)

Amazon S3を操作するには、AWSアカウントを作成し、AWSコンソールにログインし、S3のコンソール(https://console.aws.amazon.com/s3/)を開きます。バケットの作成には、バケット名と、バケットを格納するリージョンを選択する必要があります。バケット名は、3文字から63文字までの一意な名称をつけます。Amazon S3バケット名は、インターネットのドメイン名のようにグローバルにユニークで、すべてのAWSアカウントで共有されます。バケットが削除されるまでは、同じ名前をつけることができません。

バケットを作成したら、バケットの一覧から該当のバケット画面を開き、オブジェクトのアップロードやダウンロード、別のフォルダへのコピーなどの操作が可能となります。

オブジェクトを維持していると、料金がかかります。不要となったオブジェクトは削除しましょう。バケットごと削除することもできます。

保存したオブジェクトデータへのアクセス

バケット内に保存したオブジェクトを呼び出すには、バケット名とその配下にあるフォルダ名、オブジェクト名までの格納URLパスを使います。たとえば、バケット名が「cloudnavi-nhn-techorus」で、その中の「data」というフォルダに「object.zip」というオブジェクトを格納した場合、格納URLパスは次のようになります。

s3: //cloudnavi-nhn-techorus/data/object.zip

また、Amazon S3に保存されたデータはデフォルトでは外部に非公開となっていますが、公開してインターネット経由でアクセスできるように設定ができます。このため、バケット名は全リージョン内でユニークな名前を指定する必要があり、既に他のバケットで利用されている名前は使うことができません。

api、コマンド操作など、マネジメントコンソール以外でのS3の操作

Amazon S3は、REST(REpresentational State Transfer) インターフェースを提供しています。RESTを使うと、プログラム開発のためにREST APIやAWS SDK APIを利用して、S3とのデータのやりとりができます。

また、Amazon S3をはじめ、多くのAWSのサービスは、マネジメントコンソールだけでなく、AWSコマンドラインインターフェース(CLI)からも操作が可能です。コンソールでさまざまな画面を遷移して設定するよりも、間違いが生じにくく、自動化しやすいなどのメリットがあります。S3の場合もバケットの作成や削除、オブジェクトの移動やコピー、削除ができます。

Amazon S3の導入・運用をサポートします

クラウド型のストレージサービスであるAmazon S3は、高い耐久性・堅牢性、コストパフォーマンスに優れ、さまざまなデータ活用をサポートしていることがわかりました。AWSでのITインフラ構築において欠かせないサービスであると言えます。

一口にストレージのデータ保存といっても、その用途やプログラムとの連携、ライフサイクルの管理なども考慮するには、さまざまな知見が必要です。

NHNテコラスは、世界中のAWSパートナーで1%未満の最上位ランクのAWS プレミアティア サービスパートナーです。当社のAWS総合支援サービス「C-Chorus」は、AWSを割安料金で利用できるだけでなく、AWSを熟知した経験豊富なエンジニアがAWSの最適な活用方法をご提案します。お困りごとがありましたらお気軽にご相談ください。

▼ AWS運用負荷を軽減する運用代行サービス!運用だけではなくシステム構成のアドバイスも行います。
マンガでわかるAWS運用代行サービス

おすすめのサービス

おすすめの記事

おすすめのカテゴリ