よくわかるAWS・クラウド

  • AWS入門
  • AWS

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

Amazon S3とは?

クラウドコンピューティングサービスを提供するAWSの中でもよく使われる代表的なサービスの一つがAmazon S3 (Simple Storage Service) です。Amazon S3は、クラウド型のオブジェクトストレージサービスであり、データのバックアップ・復元、災害対策、アーカイブやデータ分析の基盤としてなど、さまざまな用途で活用するデータの保管場所として使われます。データの耐久性、セキュリティ、コストパフォーマンスにすぐれているAmazon S3のメリットや主な機能、ストレージクラス、料金、使い方などわかりやすく紹介します。

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を併せて利用します。

バージョン管理

S3バケットのバージョニングを有効にすると、バケットに保存されたすべてのオブジェクトのバージョンを保存して復元することができます。誤ってオブジェクトを上書きしたり、削除した場合でも復元できるため、データ保持やアーカイブ用途にも利用できます。

オブジェクトロック

S3 オブジェクトロックは、オブジェクトが上書きされたり、削除されたりしないよう、ロックをかける機能です。ロックする期間を設定することができます。

レプリケーション

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

ライフサイクル管理

ライフサイクル管理を活用すると、オブジェクトをコスト効率の高い方法で保存することができます。たとえば、作成されたオブジェクトが頻繁に利用されない特性のものであれば、保存先を S3 標準から S3 標準 – IA や アーカイブ用のS3 Glacier など に自動で移行させてよりコストの安いストレージクラスにアーカイブするよう設定できます。

イベント通知機能や他のサービスと連携

Amazon S3では、発生したイベントをきっかけに、通知メッセージを送信することが可能です(Event Notification機能)。イベントには、新しいオブジェクトの生成や削除、オブジェクトの復元、レプリケーションなどがあり、通知先としては、プッシュメッセージングサービスのAmazon SNSや、メッセージ転送サービスのAmazon SQS、サーバレスコンピューティングサービスのAWS Lambdaの3つがあります。通知を送るだけでなく、通知を元に新たな処理と連携することも可能です。Event Notification機能の設定は、Amazon S3のコンソールからバケットを選んでおこなうことができます。

ストレージの監視、ストレージクラス分析

Amazon S3のストレージ動作監視やリクエストのログなどを使って分析することもできます。

AWSには、Amazon S3の状態を監視できるツールを提供しています。指標を設定してアクションを実行できるAmazon CloudWatch のアラームや、AWSアカウントのガバナンスや運用監査などを行うツールであるAWS CloudTrailのログを使って自動的な監視が可能です。

S3 標準のストレージを、低コストのS3 標準 – IAストレージクラスに移行すべきかどうかを判断するストレージクラス分析もできます。また、組織内でたくさんのS3バケットを利用している場合に、組織全体のオブジェクトストレージを分析できるのがAmazon S3 Storage Lensです。さまざまな指標を使ってストレージの状況を把握・分析して最適化に役立てることができます。

アプリケーションで転送されるリクエスト動作を確認できるサービスのAWS X-Rayでは、Amazon S3が生成するデータにも対応しています。Amazon S3にあるオブジェクトがどのようにアプリケーションで使われているかを確認することができます。

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運用代行サービス

おすすめのサービス

おすすめの記事

おすすめのカテゴリ