Amazon S3とは?
AWSのストレージサービスであるAmazon S3はAmazon Simple Storage Serviceの略で、オブジェクトストレージのサービスを指します。オブジェクトストレージとはデータをオブジェクトとしてWebアクセスするもので、簡単にいえばファイルを保管する倉庫の役割を持ちます。 参考:AWS Amazon S3
Amazon S3の特徴とメリットは?
Amazon S3はスケーラビリティとデータの可用性を高めたサービスで、最大5TBまでのオブジェクトをデータ総量の制限なく利用できる特徴を持ちます。
具体的な特徴としては99.999999999%の耐久性を実現できる設計がされており、安定したサービス提供がされています。さらに、S3 ストレージクラスの分析機能により階層化できるので性能を維持しながらコストを低減することが可能です。加えて、セキュリティを維持しながら安価にサービスが利用できる点もメリットとして挙げられます。
Amazon S3の利用料金は?
Amazon S3の利用料金は、従量課金制を取っています。以下の6つのコスト要素により料金が計算され、料金は安価に設定されています。
・ストレージ料金 S3バケットという保存領域に保存するオブジェクトのサイズ・オブジェクトを保管した期間の長さ・ストレージクラスにより計算されます。 ・リクエストとデータ取り出しの料金 S3 バケットとオブジェクトに対して行われた、PUT・COPY・POST・LIST・GET・SELECT・ライフサイクル移行・データ取り出しに対して費用が発生します。 ・データ転送と転送高速化の料金 インターネットおよびS3バケットで発生した転送データが料金支払いの対象となります。 ・データ管理機能および分析機能の料金 ストレージ管理機能と分析 (Amazon S3 インベントリ・S3 ストレージクラス分析・S3 Storage Lens・S3 オブジェクトタグ付け)により費用が発生します。 ・レプリケーション プライマリコピーとレプリケーション PUT リクエストのストレージに関して、データ転送料金が発生します。 ・S3 Object Lambda AWS Lambda 関数の利用とアプリケーションに戻るデータ量に応じて費用が発生します。
Amazon S3では、AWS無料枠が設定されていますので有効活用しましょう。新規サインアップにより、S3標準ストレージクラスで 5GB の Amazon S3 ストレージ・20,000 GETリクエスト・2,000 PUT・COPY・POSTあるいは LISTリクエスト・データ送信15GB を毎月、1年間に渡りAWS無料枠として利用できます。無料利用枠の使用量は毎月計算され、自動的に請求額に適用されます。未使用分は持ち越しできないのでご注意ください。
Amazon S3の用語は?
Amazon S3では、ストレージサービスを構成するに当たりいくつかの用語が定義されています。ここでは、Amazon S3を有効活用する上で必要となる代表的な用語を説明していきます。
・バケット バケットとは、Amazon S3に格納するオブジェクトの入れ物(コンテナ)を指します。バケットにより格納先のネームスペースが確定し、アクセスコントロールや使用状況レポートの集計に活用されます。
・オブジェクト オブジェクトとはAmazon S3に格納される単位となります。オブジェクトはデータ自体を指すオブジェクトデータとデータ管理用メタデータから成ります。
・キー キーとはバケット内のオブジェクトを管理するための固有の識別子を指します。URLからバケットとキーを参照することでオブジェクトへアクセスすることが可能となります。 参考:AWS Amazon S3 ユーザーガイド
Amazon S3のストレージクラスとは?
Amazon S3では、サービスレベル・条件に応じていくつかのクラスが設定されています。それをストレージクラスと呼びます。各クラスは以下のように分類されます。
・S3 標準 汎用的な一般使用を想定したストレージクラス ・S3 Intelligent - Tiering アクセスパターンを分析し階層化することで自動コスト削減するストレージクラス ・S3 標準 - 低頻度アクセス 長期保管でアクセス頻度の低いデータ、アクセス速度は標準的なストレージクラス ・S3 1 ゾーン - 低頻度アクセス アクセス頻度の低いデータで再作成可能なデータ、アクセス速度は標準的なストレージクラス ・S3 Glacier 長期バックアップとアーカイブ用、1分から 12 時間の取り出しを想定したストレージクラス ・S3 Glacier Deep Archive 長期アーカイブ用、1年に 1-2 回の頻度で12 時間以内の復元を想定したストレージクラス ・S3 Outposts オンプレミス用ストレージクラス
各ストレージクラスは耐久性設計は同一であるものの、アクセスパフォーマンスや可用性に違いを持ちます。したがって、用途に応じてストレージクラスを選択する必要があります。
Amazon S3の使い方は?
Amazon S3を使うには、S3バケットを最初に作成しておきます。その後バケットにオブジェクトをアップロードして追加したり、オブジェクトのダウンロードやフォルダへのコピーが可能となります。詳細は以降でお話しします。
Amazon S3の事前準備は?
Amazon S3を利用するためには、事前準備が必要です。利用にあたり以下のステップに従い構築を進めていきます。
(1) AWSアカウントのサインアップ AWSではサービス利用のためにAWSアカウントが必要です。Amazon S3においても同様にアカウントサインアップを行ってください。
(2) S3バケットの作成 Amazon S3では、データ保存庫としてS3バケットを最初に作成します。作成するためにはAWSマネジメントコンソールより、Amazon S3コンソールを起動し「バケットの作成」を選択します。ここでバケット名を指定し、バケットを作成します。
(3) バケットの削除 バケットが不要になった場合は、Amazon S3コンソールからバケットの削除が可能です。しかし、バケットの削除は元に戻りません。そのため同じバケット名を使いたい場合はバケットを空にするかオブジェクトを削除し、むやみにバケット自体の削除をしないよう注意しましょう。
オブジェクトのアップロード方法は?
Amazon S3では、ファイルタイプを問わずバケットにオブジェクトを追加することでアップロードが可能です。
AWS SDKやREST APIおよびAWS CLIからのアップロードは、1回あたり最大5GBのオブジェクトをアップロード可能です。同様に、マルチパートアップロードAPIを利用することで、最大5TBのサイズのオブジェクトがアップロード可能となります。 Amazon S3コンソールを用いたアップロードでは、最大160GBのオブジェクトをアップロード可能です。
Amazon S3コンソールを用いたアップロードの場合は、AWSマネジメントコンソールよりAmazon S3コンソールを起動し「バケットリスト」からバケットを指定します。オブジェクトタブからアップロードを選択し、ファイル追加によりアップロードを行います。
AWS SDKを使用する場合は、.NET・Java・JavaScript・PHP・Ruby等の開発言語でPUTオブジェクトリクエストを発行することでアップロードが可能です。REST APIの場合は、PUTリクエストによりアップロードできます。AWS CLIの場合もPUTリクエストを用います。
オブジェクトのダウンロード方法は?
Amazon S3コンソールを用いてオブジェクトのダウンロードを行う場合は、AWSマネジメントコンソールより、Amazon S3コンソールを起動し「バケットリスト」からバケットを指定します。オブジェクトタブからオブジェクトを選択し、オブジェクトアクションによりダウンロードを行います。
AWS SDKを使用する場合は、.NET・Java・JavaScript・PHP・Ruby等の開発言語でGETオブジェクトリクエストを発行することでオブジェクトのダウンロードが可能です。REST APIの場合は、GETリクエストによりダウンロードできます。AWS CLIの場合もGETリクエストを用います。
留意点としては、オブジェクトダウンロードについてはデータ転送料金が適応されることです。オブジェクトダウンロードの範囲やサイズは最低限に留めるのが良いでしょう。
オブジェクトのフォルダへのコピーの方法は?
オブジェクトのフォルダへのコピーするには、コピーオペレーションを実行します。コピーできるサイズは最大5GBです。
Amazon S3コンソールを用いたコピーの場合は、AWSマネジメントコンソールより、Amazon S3コンソールを起動し「バケットリスト」からバケットを指定します。必要に応じてフォルダ作成により新規にターゲットフォルダを作成します。次に、オブジェクトタブからオブジェクトを選択し、オブジェクトアクションによりコピーを行います。コピー先は例として以下のように指定可能です。 s3://バケット名/フォルダ名/.
AWS SDKを使用する場合は、.NET・Java・JavaScript・PHP・Ruby等の開発言語でCOPYオブジェクトリクエストを発行することでオブジェクトのコピーが可能です。REST APIの場合はPUTリクエストによりコピーできます。AWS CLIの場合もPUTリクエストを用います。
オブジェクトのフォルダへの移動の方法は?
Amazon S3コンソールを用いてオブジェクトを移動する場合は、AWSマネジメントコンソールより、Amazon S3コンソールを起動し「バケットリスト」からバケットを指定します。必要に応じてフォルダ作成により新規にターゲットフォルダを作成します。次に、オブジェクトタブからオブジェクトを選択し、オブジェクトアクションにより移動を行います。移動先はコピー操作時と同様の指定を行います。
AWS SDKを使用する場合は、.NET・Java・JavaScript・PHP・Ruby等の開発言語でCOPYオブジェクトリクエストとDELETEオブジェクトを併用することでオブジェクト移動が可能です。REST APIの場合は、PUTリクエストにより同等の処理ができます。AWS CLIの場合は、MVリクエストを用います。
オブジェクトを削除するには?
Amazon S3コンソールを用いてオブジェクトを削除する場合は、AWSマネジメントコンソールより、Amazon S3コンソールを起動し「バケットリスト」からバケットを指定します。次に、オブジェクトタブからオブジェクトを選択し、「最新バージョン」や指定バージョンのオブジェクトを選択し「ゴミ箱」アイコンをクリックします。同様に、バケットを空にすることも可能です。
AWS SDKを使用する場合は、.NET・Java・JavaScript・PHP・Ruby等の開発言語でDELETEオブジェクトリクエストを発行することでオブジェクト削除が可能です。REST APIの場合は、RESTリクエストにより削除できます。AWS CLIの場合もDELETEリクエストを用います。
Amazon S3を用いてデータ保存の最適化を図りましょう
AWSのAmazon S3は、格安なストレージサービスとしてウェブサイトやモバイルアプリケーションから汎用的に利用することができます。また、データレイク・IoT デバイスやビッグデータ分析の大容量ストレージとしての活用や、企業向けストレージシステムとしても利用者が多いです。他にもバックアップおよび復元、アーカイブ等多岐に渡る利用用途が挙げられます。
Amazon S3は多岐に利用することが可能であるため、AWSのサービスを有効活用するためにもAmazon S3によるデータ保存や格納先として最適化を図ることをお勧めします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから