よくわかるAWS・クラウド

  • AWS入門
  • AWS

Amazon S3とは?具体的な使い方や料金、仕組みについて解説

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

Amazon S3の概要と用途

Amazon S3は、データのバックアップ・復元や、災害対策、アーカイブ、データ分析、ホスティングなど、さまざまな用途に活用できます。その裏付けとなる耐久性や仕組み、セキュリティ機能、目的別のストレージの種類、そしてコストパフォーマンスなどについて解説します。

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

Amazon S3では、1年間でのオブジェクトの耐久性が、99.999999999%(イレブンナイン)になるよう設計されています。S3に格納されたオブジェクトは、リージョンにある最低3つのアベイラビリティーゾーン(独立したデータセンター)にわたる複数の箇所に冗長性を保って保存してあります。たとえば、1つのアベイラビリティーゾーンに障害が発生した場合でも、ほかの拠点には影響がないため、データの消失から保護できる可能性が高いのです。各拠点での冗長性が失われた場合に備え、データの整合性を確認できるように設計されています。

Amazon S3に格納されたオブジェクトをバージョン管理することもできます。意図せず必要なオブジェクトを上書きしたり、削除したりした場合でも回復できるため、データ保持やアーカイブ用途にも利用できます。

Amazon S3の仕組み

Amazon S3はストレージサービスですが、ハードディスクの容量のように、保存できる容量や、格納するオブジェクト数の制限はありません。ただし、保存できるオブジェクト(データ)の最大サイズは5テラバイトまでとなっています。

Amazon S3にオブジェクト(データ)を格納するには、AWSのコンソール上で操作するなどして「バケット」と呼ばれる領域を作成して行います。デフォルトでは、1つのAWSアカウントで最大100のバケットを作成できますが、AWSに申し送りすることで最大1000まで増やすことができます。

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

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

Amazon S3はデフォルトでは外部には非公開となっていますが、外部からインターネット経由でアクセスできるよう公開することもできます。このため、バケット名はグローバルに一意のものを設定する必要があります。

Amazon S3のセキュリティ(公開や制限、権限、アクセス制限、暗号化)


Amazon S3に保存したデータは、一般公開もできますが、アクセス制限や保護、暗号化をしてセキュリティを高めることもできます。Amazon S3は、HIPAA/HITECH、EU データ保護指令、FedRAMPなどの各種コンプライアンス規制の要件を満たした設定も可能です。

アクセス制限は、AWS内のあらゆるS3バケットに対して設定できます。制限があるオブジェクトを、一時的なURLを使って制限付きのアクセスを許可することもできます。S3のバケットやオブジェクトなどに対してどのようなリクエストがあったかを表示できる監査ログの機能もあります。

Amazon S3では、サーバー側の暗号化と、データをアップロードするクライアント側の暗号化も可能で、アクセス権限のないユーザーからのアクセスをブロックできます。

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

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

種類 用途
S3 標準 高頻度アクセスの汎用ストレージ用
S3 Intelligent-Tiering 未知のアクセスパターンのデータ、またはアクセスパターンが変化するデータ用
S3 標準 – IA 長期間使用するが低頻度アクセスのデータ用
S3 1 ゾーン – IA 長期間使用するが低頻度アクセスのデータ用だが、アベイラビリティーゾーンは1箇所
S3 Glacier データのアーカイブ用。取り出すのに時間がかかる
S3 Glacier Deep Archive データのアーカイブ用。取り出すのに時間がかかる

Amazon S3の料金・価格

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

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

なお、AWSの新規ユーザーは、AWS無料利用枠の適用によって、S3 標準ストレージクラスで5GBのストレージや、データ送信毎月15GBなどを、1年間無料で利用可能です。

Amazon S3の運用や監視にお困りな方必見!

マンガでわかるAWS運用代行サービス

<マンガでわかる>
AWS運用代行サービスをわかりやすく解説!

こんなことを感じていませんか?
・AWS運用のために社内のリソースが足りずに困っている
・障害発生時の対応に不安がある
・運用だけでなく構成のアドバイスもあると嬉しい

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アカウントで共有されます。バケットが削除されるまでは、同じ名前をつけることができないのです。
バケットができたら、バケットの一覧から該当のバケット画面を開き、オブジェクトのアップロードやダウンロード、別のフォルダへのコピーなどの操作が可能となります。

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

ストレージの管理

S3バケットの作成やオブジェクトのアップロードなどのほかに、さまざまな管理機能もあります。

S3バケットのバージョニングを有効にすると、バケットに保存されたすべてのオブジェクトのすべてのバージョンを保存して復元することができます。誤って削除したり上書きしたりしたオブジェクトの復旧に活用できます。

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

オブジェクトを別のバケットに複製できるレプリケーションでは、レプリケート元のバケットと送信先バケットを指定して行います。特定のフォルダ内のオブジェクトを限定した複製も可能です。

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

ストレージの監視や分析


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にあるオブジェクトがどのようにアプリケーションで使われているかを確認することができます。

S3バケットを利用してWebサイトをホスティング

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

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

Event Notification機能でほかのサービスと連携

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

一口にストレージのデータ保存といっても、その用途やプログラムとの連携、ライフサイクルの管理なども考慮するには、さまざまな知見が必要です。AWSはチュートリアルやドキュメントが充実しているとはいえ、利用するための学習コストは考えなければなりません。

NHNテコラスは、AWSの導入・移行・運用に長けたAWSのパートナーです。AWSの総合支援サービスの「C-Chorus」では、AWSを割安料金で利用できるだけでなく、経験豊富なエンジニアがしっかりサポートします。Amazon S3をはじめ、AWSの便利なサービスを早く、安心して利用したい場合は、ぜひご相談ください。

Amazon S3の料金が安くなる!請求代行サービス

マンガでわかるAWS運用代行サービス

<マンガでわかる>
AWSリセール(請求代行)サービスを解説!

こんなお悩みや疑問はありませんか?
・AWSコストを削減しなければならない
・AWS請求代行を使いたいけれど複雑でわかりにくい
・どうしてAWSが割引になるのかわからないため不安

おすすめのサービス

おすすめの記事

おすすめのカテゴリ