AWSの「S3」とは?使い方や料金体系をわかりやすく解説
AWSが提供するオンラインストレージサービスの一つに「S3」があります。
S3は企業だけではなく個人利用が可能なので、さまざまなユーザーが利用しています。
AWSの導入を検討している方やAWSを導入したばかりの方は、S3のサービス内容や利用するメリットを把握しておきましょう。
そこで本記事では、AWSのS3の機能性や導入するメリット、使い方を紹介します。
そのほか、S3の料金体系もお伝えしているので、利用した場合にかかる料金を把握しておきたい方はぜひ参考にしてください。
目次
AWSの「S3」とは?そもそもAWSって何?
AWSとは、Amazon Web Services(アマゾンウェブサービス)の略称です。Amazonが提供するクラウドサービスであり、個人から大企業までさまざまなユーザーが利用しています。
AWSでは、IaaSやPaaS、SaaSなどのサービスの利用が可能です。AWS上で新たにシステムを設計したり構築したりできるほか、既存のデータをクラウド移行する際にも活用できます。
またAWSのS3は、AWSが提供しているクラウドストレージサービスの一つです。正式名称はSimple Storage Service(シンプル・ストレージ・サービス)であり、頭文字をとってS3と呼ばれています。
S3は、シンプルなインターフェースでありながら、膨大なデータを安全に保存が可能です。S3に保存したデータは、世界各地どこからでもアクセスできるので、世界中のユーザーに向けたシステムを構築したい場合に適しています。
AWS S3の機能
AWSを導入する前に、S3の機能性について理解を深めておきましょう。
ここでは、AWSのS3にどのような機能が備わっているか解説します。
ストレージ機能
S3のストレージ機能は、必要な容量に応じてデータを保存できるものです。シンプルなインターフェースですが、柔軟にストレージを調整しながら利用できるので、コストの最適化が期待できます。
またS3に保存したデータは、99.9%以上の耐久性を保証しているので、膨大なデータを扱わなくてはいけないシステムでも安心して利用できるでしょう。0.1%以下の割合で障害が起こったとしても、備わっているバックアップ機能により迅速に対応してもらえます。
セキュリティ機能
S3のセキュリティ機能には、データの暗号化・アクセス制御・イベント通知・バージョン管理・監査ログなどの性能が備わっています。
S3はデータを暗号化して保存でき、どのデータに誰がアクセスできるか制御したりできるので、セキュリティ面を重視している方に最適です。
また、オブジェクトの作成や変更などに応じて通知を受け取れる機能が備わっています。Amazon SNSやAmazon SQS、AWS Lambdaなどサービスを活用することで送信が可能です。
データ管理機能
S3のデータ管理機能には、バケット・オブジェクト・ライフサイクル・ストレージクラス・リージョンを管理できるサービスが備わっています。
バケット管理では、バケットを作成してデータを保存できます。バケットごとに名前を振り分けて、データをカテゴリ別の管理が可能です。オブジェクトレベルでの細かい管理もできます。
ライフサイクル管理では、オブジェクトの保管管理やストレージクラスなど、オブジェクトの寿命の管理が可能です。保管期間を過ぎた場合には、自動的に削除されるので手動で操作する必要はありません。
またS3で提供されているストレージクラスは複数あり、それぞれの料金体系が適用されます。たとえば、アクセスの少ないデータを管理する場合には、安い価格のストレージクラスが適用され、コストの最適化におすすめです。
リージョン間データ転送により、複数拠点間の大量のデータ転送もスムーズに行えます。
アプリケーション統合機能
S3のアプリケーション統合機能では、AWS Lambda・Amazon S3 Select・Amazon Athena・Amazon EMR・AWS Glueの5つのサービスが備わっています。
AWS Lambdaは、S3内でのデータ処理を自動化できる機能です。サーバーレスでもオブジェクトの変更などを実行でき、難しい操作なく手間をかけずに対応できます。
Amazon S3 Selectは、S3内のデータから必要なもののみを取り出せる機能です。APIとして提供しているので、他のアプリとの統合もできます。
Amazon Athenaは、S3内のデータを分析できる機能です。他のAWSサービスと統合できるので、システムの効率化や最適化が期待できます。
Amazon EMRは、分散処理フレームワークに基づいてS3内のデータを処理できる機能です。このサービスを活用することで、膨大なデータであってもスムーズかつ迅速に分析できます。
AWS Glueは、ワークフローを自動化できる機能です。S3内のデータの抽出や変換、別の場所へのロードができます。
モバイルアプリケーション向け機能
モバイルアプリケーション向け機能では、Amazon S3 Transfer Utility・Amazon S3 Batch Operations・Amazon S3 Select・ Amazon S3 Event Notificationsなどの機能が備わっています。
Amazon S3 Transfer Utilityは、モバイルアプリからS3にファイルをアップロードできる機能です。承認機能を組み込んだり、アップロード中に接続が切れても再開したりできます。
Amazon S3 Batch Operationsは、オブジェクトを一括で処理できる機能です。一括でオブジェクトを削除したり、メタデータを更新したりできるので、一つひとつを手動で対応する手間が省けます。
Amazon S3 Selectは、モバイルアプリでS3内のデータから必要なデータを抽出できる機能です。スピーディかつ効率的にデータを取り出せるので、データ処理の時間を短縮できるでしょう。
Amazon S3 Event Notificationsは、オブジェクトの作成や変更などを知らせてくれる機能です。モバイルアプリで通知を受け取れるので、スマホ画面上でその情報を確認できます。
Amazon S3の仕組み
Amazon S3を利用する前に、仕組みについて理解しておくと良いでしょう。ここでは、Amazon S3の仕組みについて9つの項目に分けて解説します。
引用:Amazon S3 とは
バケット
バケットは、オブジェクトストレージサービスであるAmazon S3におけるデータの保存単位です。ファイルやデータを格納するための仮想的なコンテナであり、特定のAWSリージョン内で作成されます。
1つのアカウントには、バケットを100個まで保存が可能です。増加をリクエストするには、Service Quotas コンソールにアクセスする必要があります。
バケットを作成するときは、バケット名を入力してAWSリージョンを選択します。一度バケットを作成したら、バケット名やリージョンを変更できません。
またバケットレベルでアクセス権限やバケットポリシーを設定でき、データのセキュリティとアクセス制御の管理が可能です。バケットはスケーラブルで耐久性の高いストレージソリューションであり、Webサイトのホスティング、バックアップ、データアーカイブなどさまざまな用途に利用されます。
オブジェクト
Amazon S3のオブジェクトは、Amazon S3で保存されるデータの基本単位です。ファイルやデータの実際のコンテンツを表し、バケット内に格納されます。
オブジェクトは最大5TBまでのサイズを持つことができ、バケット内で階層的に管理されます。オブジェクトストレージは耐久性と可用性が高く、Webホスティング、バックアップ、アプリケーションデータの保存など、さまざまな目的で利用が可能です。
またオブジェクトは、バケット内でキーとバージョンIDによって一意に特定されます。
キー
キーは、Amazon S3でオブジェクトを一意に識別するための名前です。バケット内のオブジェクトの位置を指定するために使用されます。ファイルパスのような階層的な構造を持ち、バケット名と組み合わせてオブジェクトの特定が可能です。
バケット内のすべてのオブジェクトは、厳密に1個のキーを持ちます。バケット、オブジェクトキー、およびオプションでバージョンIDの組み合わせによって、各オブジェクトが一意に識別されます。
S3 バージョニング
S3 バージョニングは、同じバケット内でオブジェクトの複数のバリアントを保持する際に使用するものです。S3 バージョニングを使用すると、 バケットに保存されたさまざまなオブジェクトのあらゆるバージョンを保存、取得、復元が可能です。
また意図しないユーザーアクションにより、データが誤って変更/削除された場合も、簡単に復旧できます。
バージョンID
バケットで S3 バージョニングを有効にすると、Amazon S3はバケットに追加されたすべてのオブジェクトに一意のバージョン IDを与えます。
オブジェクトをほかのオペレーションで変更すると、新しいオブジェクトには、新たな一意のバージョンIDが与えられます
バケットポリシー
バケットポリシーは、リソースベースの AWS Identity and Access Management(IAM)ポリシーを使用して、バケットとオブジェクトへのアクセス許可の付与が可能です。
バケット所有者のみが、ポリシーをバケットに関連付けられます。バケットに添付された許可は、バケット所有者が持っているバケットのすべてのオブジェクトに適用されます。バケットポリシーのサイズは、20KBに制限されているので把握しておきましょう。
バケットポリシーは、AWSで標準であるJSONベースのアクセスポリシー言語を用いています。バケットポリシーを使用して、バケット内のオブジェクトに対する許可を追加または拒否が可能です。
S3 アクセスポイント
Amazon S3のアクセスポイントは、Amazon S3でデータへのアクセスを制御するためのリソースです。アクセスポイントは特定のS3バケットに関連付けられ、バケット内のオブジェクトへのアクセスポリシーを定義します。
アクセスポイントは一意な名前を持ち、AWSリージョン内で作成が可能です。アクセスポイントを使用することで、セキュリティやアクセス制御を細かく設定できます。結果的に、セキュリティの向上やアクセス管理の簡素化の実現につながるでしょう。
また各アクセスポイントには、独自のアクセスポイントポリシーがあります。アクセスポイントごとに仮想プライベートクラウド(VPC)からのリクエストだけを受け入れるように設定すると、プライベートネットワークへのAmazon S3データアクセスの制限が可能です。
アクセスコントロールリスト(ACL)
アクセスコントロールリスト(ACL)を使用すると、各バケットとオブジェクトの読み取り・書き込みの許可を認可されたユーザーに付与できます。
Amazon S3バケットレベルの設定で、バケットにアップロードされる新しいオブジェクト所有権を制御し、ACLを無効にするのに使用が可能です。ACLを無効にすると、バケット所有者はバケット内のすべてのオブジェクトを所有し、バケットポリシーのみを使用してデータへのアクセスを管理できます。
またAmazon S3の最新のユースケースでは、ACLを使用する必要がなくなっているケースがほとんどです。オブジェクトごとに個別に制御する必要がある状況以外は、ACLは無効にしておくとよいでしょう。
リージョン
Amazon S3がバケット保存する際、リージョンを選択できます。リージョンを選ぶとき、コストを最小限に抑えて規制要件に対応できるものを選ぶとよいでしょう。
別のリージョンに移動またはレプリケートが必要な場合以外は、AWS リージョンに保存されたオブジェクトをほかのリージョンに移動されることはありません。
AWS S3の種類
ここでは、AWS S3の種類を7つご紹介します。
S3 標準
S3標準は、高い耐久性と可用性を備え、さまざまな種類のデータを保存するために広く利用されているオブジェクトストレージサービスです。
S3標準は、99.999999999%の耐久性を提供しており、データの損失リスクが非常に低いことを意味します。1年間で99.99%の可用性を保証しており、保存されたデータに対していつでも高速にアクセス可能です。
S3標準は、無制限のデータ量を保存できるため、大量のデータを扱う用途に適しています。データは暗号化されて保存され、多層のセキュリティ対策が施されています。ただし、1オブジェクト=5TB までの制限があります。
S3 Intelligent-Tiering
S3 Intelligent-Tieringは、異なるアクセスパターンに基づいて自動的にデータを最適なストレージ層に移動する機能を提供しているオブジェクトストレージサービスです。このサービスは、使用頻度が不規則で予測しにくいデータのコスト効率を最大化するために設計されています。
Intelligent-Tieringは、アクセスパターンをモニタリングし、データを自動的に最もコスト効率の良いストレージ層に移動します。頻繁にアクセスされないデータは、より低コストの層に自動的に移動されるため、ストレージコストの削減が可能です。
S3 標準-IA
S3 標準-IAは、頻繁にはアクセスされないが、必要時には迅速にアクセスできる必要があるデータに最適なストレージクラスです。高い可用性を持ちながらも、S3標準よりもコストが低い点が特徴です。
AWSのライフサイクルポリシー管理機能を使用して、データを自動的にS3 Standard-IAに移動できます。データは暗号化され、AWSの厳格なセキュリティ基準に準拠しています。
S3 1ゾーン-IA
S3 1ゾーン-IAは、アクセス頻度が低いデータをコスト効率良く保存するために設計されているストレージクラスです。S3 One Zone-IAは、特にそのデータが複数の可用性ゾーンにまたがる耐障害性を必要としない場合に適しています。
99.999999999%(11 9’s)の耐久性を提供しますが、耐障害性はS3標準-IAよりも低いです。アクセス頻度が低いデータ向けに設計されており、データの取り出しには料金が発生します。
Amazon S3 Glacier Instant Retrieval
Amazon S3 Glacier Instant Retrievalは、アーカイブデータの低コストのストレージと迅速なアクセスを提供するストレージクラスです。このストレージクラスは、長期間保存しますが、必要に応じて迅速にアクセスする必要があるデータに最適です。
データの取り出し時間は、数ミリ秒と非常に短く、アーカイブデータに対して即時にアクセスすることができます。長期保存に適した低コストのストレージオプションを提供し、大量のデータを経済的に保存が可能です。
Amazon S3 Glacier Flexible Retrieval(旧 S3 Glacier)
Amazon S3 Glacier Flexible Retrievalは、長期間のデータアーカイブと保存に適した低コストのソリューションを提供するストレージクラスです。このストレージクラスは、頻繁にアクセスされないデータをコスト効率良く保存するために特化しています。
非常に低い料金でデータを長期間保存できるため、大量のアーカイブデータを経済的に管理できます。データの取り出しには、数分から数時間かかるオプションがあり、コストと時間のバランスに基づいて選択が可能です。
Amazon S3 Glacier Deep Archive
Amazon S3 Glacier Deep Archiveは、長期間のデータアーカイブと保存に最もコスト効率の高いソリューションを提供するストレージクラスです。このサービスは、非常に低い頻度でアクセスされるデータ、または長期間アクセスされない可能性のあるデータの保管に特化しています。
Amazon S3の中で最も低コストなストレージオプションであり、長期間のデータアーカイブに最適です。データの取り出しには12時間から48時間かかり、非常に低頻度でしかアクセスされないデータに適しています。
AWS S3の料金体系
AWSのS3の利用を検討している方は、S3の料金体系について理解しておきましょう。
ここでは、AWSのS3の主な料金体系を3つ紹介します。S3の利用料金は、3つの合算額となります。
ストレージ料金
ストレージ料金は、S3にアップロードしたデータ量に応じてかかるものです。S3で提供されているストレージクラスに応じて料金が異なります。
ストレージクラスの一覧は、以下のとおりです。
- S3標準
- S3 Intelligent-Tiering
- Amazon S3 Express One Zone
- Amazon S3 標準 – 低頻度アクセス (S3 標準 – IA)
- Amazon S3 One Zone-Infrequent Access (S3 One Zone-IA)
- Amazon S3 Glacier Instant Retrieval
- Amazon S3 Glacier Flexible Retrieval (旧 S3 Glacier)
- Amazon S3 Glacier Deep Archive
- S3 on Outposts
データ転送料金
データ転送料金は、S3内のデータをダウンロードしたり転送したりする際にかかるものです。データ転送時に課金されますが、データをS3にアップロードする際には料金はかかりません。
リクエスト料金
リクエスト料金は、GETやPUT、POST、などのリクエストに応じてかかるものです。S3の料金体系の中でもわかりにくいと感じる方が多く、リクエスト内容によって料金が異なります。
リクエスト別の料金(アジアパシフィック(東京))は、以下の通りです。
- DELETE、CANCEL:無料
- GET、SELECT:0.00037ドル/1,000リクエスト
- PUT、POST、LIST、COPY:0.0047ドル/1,000リクエスト
AWS S3を利用するメリット
AWSを導入して活用していく方は、S3を活用するとどのようなメリットが得られるのか理解しておきましょう。
ここでは、AWSのS3を利用するメリットを3つ紹介します。
容量に上限がない
S3は容量制限がないので、大量のデータを扱わなくてはいけないシステムを構築・運用する方におすすめです。一つのデバイス上でデータを管理できるので、複数のデバイスに分けて管理する手間を省けます。
ただし、1ファイルあたり5TBまでと、ファイルごとの容量には上限があるので理解しておきましょう。
耐久性とセキュリティ性が高い
S3は、99.999999999%のデータ耐久性を実現しており、セキュリティ性がとても高いです。データをクラウド上で扱う際、障害や紛失などのリスクが不安な方に適しています。
また誰がどのデータにアクセスできるか制御できるので、許可していないユーザーがアクセスすることもありません。外部にデータが漏洩したり、他のユーザーにデータ内容を変更されたりするのを防止できます。
低コストで運用できる
S3は、従量課金制で利用した分しかコストがかかりません。そのため、今までのシステム管理にかかっていた費用を削減できる可能性があります。
たとえば、アクセス数の多い大規模なシステムには料金をかけられ、アクセス数の少ないシステムは低コストで管理が可能です。システムの規模に応じて、ストレージクラスを柔軟に変更できます。
データのライフサイクルを設定できる
AWS S3では、データのライフサイクルを設定できます。
S3のライフサイクルポリシーを利用すると、データを一定の期間後にS3 Infrequent AccessやS3 Glacierなどのストレージクラスに移行できます。これにより、アクセス頻度の低いデータのコストを低減できるでしょう。
またライフサイクルポリシーを使用し、特定の期間が経過したオブジェクトを自動的に削除できます。一時的なバックアップや古いログデータなど、一定期間後に必要とされないデータの管理に便利です。
権限を柔軟に管理できる
AWSのIAMを使用すると、ユーザー、グループ、またはAWSサービスごとにS3バケットやオブジェクトへのアクセス権限を制御できます。
オブジェクト単位でのアクセス制御が可能で、これを利用して特定のオブジェクトに対するアクセス権限を細かく設定が可能です。また有効期間付きのURLを生成し、それを通じて一時的にS3のオブジェクトへのアクセスを許可することもできます。
AWS S3にアクセスする方法
ここでは、AWS S3にアクセスする方法を4つご紹介します。
AWS Management Console
AWS Management Consoleは、AWSのサービスにアクセスして管理するためのWebベースのユーザーインターフェースです。AWSのさまざまなリソースやサービス、その設定を直感的に操作できます。
よく使用するサービスをダッシュボードにピン留めして、アクセスの迅速化が可能です。アクセス権限の管理やセキュリティ設定も行えます。
AWS Command Line Interface
AWS Command Line Interfaceは、AWSのサービスをコマンドラインから操作するためのツールです。AWS CLIを使用すると、開発者やシステム管理者はスクリプトやコマンドを通じて、AWS S3を含む多くのAWSサービスを管理できます。
AWS CLIは、テキストベースのコマンドラインインターフェースを提供し、GUIを使用せずにAWSサービスの操作が可能です。CLIコマンドをスクリプトに組み込むことで、AWSリソースの自動化された管理やバッチ処理を実現できます。
AWS SDK
AWS SDKは、AWSのサービスへのプログラム的アクセスを可能にする一連のツールとライブラリです。AWS SDKを使用すると、開発者はさまざまなプログラミング言語を用い、特にAmazon S3などのサービスを直接操作するアプリを開発できます。
AWS SDKは、Java、Python、Ruby、Node.js、PHP、C#(.NET)、Goなど、複数のプログラミング言語に対応しています。AWSのサービスに対するAPI呼び出しを簡単に行える方法を提供するため、開発者は煩雑なHTTPリクエストの詳細を気にする必要がなくなるでしょう。
Amazon S3 REST API
Amazon S3 REST APIは、AWSのS3にプログラム的にアクセスするためのインターフェースです。RESTful(Representational State Transfer)アーキテクチャに基づいており、HTTPリクエストを使用してS3リソースに対する操作を行います。
S3 REST APIは、GET、PUT、DELETEなどのHTTPメソッドを使用してS3リソースにアクセスし操作します。バケットの作成や削除、オブジェクト(ファイル)のアップロードやダウンロードなどを直接行うことが可能です。
AWS S3の使い方|5つのステップ
AWSのS3の利用を検討しているものの、使い方がわからない方もいるのではないでしょうか。事前に使い方を把握しておくことで、スムーズに導入できるでしょう。
ここでは、AWSのS3の使い方を5つのステップに分けて紹介します。
AWSアカウントを作成してログインする
まずは、AWSアカウントを作成する必要があります。こちらから無料でアカウントの作成が可能です。
次にAmazon S3にアクセスして、ログインしましょう。
バケットを作成する
データをアップロードするために、バケットを作成します。
バケット名やリージョンを設定すればすぐにバケットを作成できますが、設定後は変更できないので注意しましょう。
データをアップロードする
次に「アップロード」ボタンをクリックして、フォルダやファイルなどアップロードするデータを選択します。
該当するバケットにアップロードするデータを選んだら、右下にある「アップロード」ボタンを改めてクリックします。ステータスの欄に「成功しました」と表示されていれば、データ保存が可能です。
データをダウンロードする
データをアップロードできたら、次にダウンロードします。
ダウンロードするデータを選ぶ際、チェックボックスをクリックして選択しましょう。右上にある「アクション」をクリックして、メニューから「ダウンロード」をクリックすると完了です。
バケットを管理する
S3に保存したデータは、基本的にバケットごとの管理が必須です。
必要に応じて、データやオブジェクト、バケットを削除するケースもあるでしょう。その場合は、右上にあるボタンから「削除」ボタンをクリックして、操作を進める必要があります。
AWS S3の活用方法
AWS S3を利用する際、どのような活用方法があるのか確認しましょう。ここでは、AWS S3を活用する方法を5つご紹介します。
大容量ファイルをアップロードする
AWS S3は、スケーラブルなオブジェクトストレージサービスです。大きなファイルを複数のパーツに分割して並行してアップロードするマルチパートアップロードという機能を提供しており、大容量ファイルを効率的にアップロードできます。
S3 Transfer Accelerationを利用すると、大容量ファイルのアップロードやダウンロードを高速化することが可能です。AWS DataSyncは、オンプレミスのデータセンターや他のクラウドからS3にデータを高速かつ簡単に移動させるためのサービスです。
ほかにも、オンプレミス環境とAWSの間に専用のネットワーク接続を確立できるAWS Direct Connect、数百万、数十億のS3オブジェクトに対して一括で操作を実行できるS3バッチオペレーションなどがあります。
静的コンテンツのWebサイトを公開する
AWS S3は、静的コンテンツを持つWebサイトをホストし、公開するための機能も提供しています。静的コンテンツとは、サーバーサイドのプログラミングやデータベースの処理が不要なHTML、CSS、JavaScript、画像などのファイルを指します。
Webサイトを公開する際、グローバルなコンテンツ配信ネットワークであるAmazon CloudFrontを使用すると良いでしょう。S3でホストされているWebサイトのパフォーマンスを向上させ、低遅延と高速なデータ転送をユーザーに提供できます。
データアーカイブ先に利用する
AWS S3は、99.999999999%の耐久性、スケーラビリティ、およびコスト効率のため、多くの企業や組織にとってデータアーカイブの理想的な選択肢となっています。
S3にはいくつかのストレージクラスがあり、データのアクセス頻度や保存期間に応じて最適なクラスを選択できます。なかには、データの復元が数時間以内に完了できるストレージクラスがあります。
またアーカイブに最適化されたストレージクラスを使用すると、大量のデータを非常に低コストで保存できるでしょう。テープやハードドライブなど、物理的なストレージメディアの管理や置き換えの手間が不要になるメリットもあります。
データレイクとビッグデータを分析する
AWS S3は、データレイクの基盤としての役割を果たすことができる強力なストレージサービスです。データレイクとは、さまざまなソースからの大量の構造化、半構造化、非構造化データをそのままの形式で格納し、分析やビジネスインテリジェンスのために利用するデータストレージのことを指します。
S3は、ペタバイト規模のデータを容易に格納できるスケーラビリティを持っています。データの増減に合わせて、容量を柔軟に拡張・縮小することが可能です。その際、JSON、CSV、Parquet、画像、ログファイルなどのさまざまなデータ形式を格納できます。
またS3は、強力なセキュリティ機能を持っており、IAMポリシーやバケットポリシー、オブジェクトレベルの権限、暗号化などを通じてデータの保護が可能です。
ログデータを保存する
AWS S3は、ログデータを保存するための高いスケーラビリティ、耐久性、安全性を持つストレージサービスです。データを複数の物理的場所に分散して保存するため、データの喪失のリスクが極めて低いでしょう。
ログデータは日々蓄積されるため、容量が迅速に増大する可能性があります。S3はそのスケーラビリティの高さから、データの増加に柔軟に対応できます。
またS3に保存されたログデータは、Amazon AthenaやAmazon QuickSightなどのサービスを使用して、直接クエリや分析が行えます。これにより、ログデータからのインサイトを迅速に抽出することが可能です。
AWS S3に関するAWSサービス
AWS S3にロードしたデータは、以下のようなサービスで使用することができます。
Amazon Elastic Compute Cloud(Amazon EC2)
Amazon Elastic Compute Cloud(Amazon EC2)は、AWSが提供するクラウドコンピューティングサービスです。EC2を使用することで、ユーザーはインターネット経由で仮想コンピューターにアクセスし、さまざまなコンピューティングタスクを行うことができます。
EC2は、物理的なハードウェアの管理や設定から解放され、より柔軟かつ迅速にアプリケーションのデプロイやスケーリングの実現が可能です。多種多様なインスタンスタイプを提供しているので、特定のワークロードに最適なリソースを選択できます。
Amazon EMR
Amazon EMR(Elastic MapReduce)は、ビッグデータの処理と分析を目的としたマネージド型クラウドサービスです。Apache HadoopとApache Sparkなどの人気のあるオープンソースフレームワークを活用して、大規模なデータセットの分析や処理を簡単かつ効率的に行えます。
Amazon S3、Amazon DynamoDB、Amazon RDSなどのほかのAWSサービスと簡単に統合でき、データのインポートやエクスポートが容易です。クラスタの設定、管理、監視が簡単に行えるため、ビッグデータの専門知識がないユーザーでも利用しやすいでしょう。
AWS Transfer Family
AWS Transfer Familyは、ファイル転送サービスのひとつです。インターネット上の標準的なファイル転送プロトコルを使用して、安全にファイルをAmazon S3やAmazon EFS(Elastic File System)に転送するためのサービスです。
また、SFTP(SSH File Transfer Protocol)、FTPS(File Transfer Protocol over SSL)、FTP(File Transfer Protocol)をサポートしています。これにより、これらのプロトコルを使用する既存のワークフローをAWSに簡単に統合が可能です。
AWS S3に関するよくある質問
ここでは、AWS S3に関するよくある質問を6つご紹介します。
どれくらいのデータを保存できる?
AWS S3に格納可能なデータの総量とオブジェクトの数は、制限がありません。
オブジェクト1つのサイズは、0〜5TBまであります。1つのPUTにアップロードできるオブジェクトの最大サイズは、5GBです。100MBを超える場合は、マルチパートアップロード機能を使うと良いでしょう。
汎用バケットとは?
汎用バケットは、もともとあるAWS S3のバケットタイプです。1つの汎用バケットには、S3 Express One Zoneを除くすべてのストレージクラスに保存されたオブジェクトが含まれます。
ほとんどのユースケースとアクセスパターンに推奨されます。
ディレクトリバケットとは?
ディレクトリバケットは、S3 Express One Zone ストレージクラスに保存されたオブジェクトのみを許可します。1つのアベイラビリティーゾーン内でのデータ処理が高速になります。
各ディレクトリバケットは、バケット内のディレクトリ数に関係なく、1秒あたり何十万件のトランザクションのサポートが可能です。
トラフィックが急激に増加したらパフォーマンスに影響する?
従量制の料金設定と無制限の容量による負荷上昇でコストが変わることはなく、サービスが干渉を受けることがありません。
Amazon S3 の莫大な規模により、負荷を均等に配分することができます。これによって個別のアプリケーションが、トラフィックのスパイクによる影響を受けることもありません。AWS S3は、どのようなインターネットアプリケーションに対してもトラフィックを処理できるように設計されています。
イベント通知を使用すると何ができる?
AWS S3のイベント通知を使用すると、保存されているオブジェクトの変更に応答して、ワークフローの実行、アラートの送出、その他のアクションの実行が行えます。
また、メディアファイルがアップロードされたときのコード変換、データファイルが利用可能になったときのデータ処理、S3 オブジェクトのその他のデータストアへの同期といったアクションを引き起こすことが可能です。
アクセスレベルはカスタマイズできる?
アクセス権限が提供する定義済みアクセスレベルで使用できるため、自由にカスタマイズできるわけではありません。
アクセス権限には、READ/WRITE/READWRITEの3つのアクセスレベルがあります。READを使用すると、AWS S3からオブジェクトを表示および取得が可能です。
WRITEでは、AWS S3への書き込みや削除ができます。READWRITEでは、読み取りと書き込みの両方を行うことが可能です。
まとめ
AWSのS3は、AWSでのシステム管理やクラウド移行を手助けしてくれるサービスです。
ストレージの柔軟な調整や、データの量に合わせてコストの最適化などができるので、規模の小さいシステムから膨大な量のデータを扱うシステムまで適しています。
また99.999999999%のデータ耐久性が特徴であり、顧客情報を扱う厳重の管理が必要なシステムの運用や管理、クラウド化にもおすすめです。
S3を利用するにはAWSアカウントを作成する必要がありますが、無料ですぐに作成できるので手間もかかりません。
これからシステムを構築しようと考えている方や、データのクラウド移行を検討している方は、AWSのS3を活用してみてはいかがでしょうか。