AWSでは100以上のサービスが提供されていますが、中でも利用者の多いサービスとして「Amazon S3」が挙げられます。
本記事ではAWSの「Amazon S3」について、基本的な情報からメリットや使い方についてご紹介していきます。
AWS S3って何?
Amazon S3は、「Amazon Simple Storage Service」の略称で、名前の通りファイルの保存や取得が出来るストレージサービスです。
既に世界中の様々な企業から利用されており、数あるクラウドストレージサービスの中でもトップクラスのシェア率を誇ります。
サービス概要
S3はオブジェクトストレージサービスで、容量無制限でインターネットを介してファイルなどのオブジェクトを保存することが出来ます。
低価格で利用可能ながら、高い耐久性が謳われており、コストパフォーマンスに優れたストレージサービスとして提供されています。
S3の料金
S3では従量課金制が採用されており、利用したデータ量に応じて使用料金が変わってきます。
S3を使用するリージョン毎に金額は変わり、例えば東京リージョンの場合、最初の50TB/月では1GBあたり0.025USD(2.75円※記事執筆時)で利用することが出来ます。
S3の詳しい料金に関しては公式ページをご確認ください。
AWS S3を利用するメリット
AWS S3が多くの企業から利用されるメリットについても確認しておきましょう。
低コスト
上記でも料金について触れましたが、 1GBあたり0.025USDと非常に安価でストレージサービスを利用することが可能です。
同じくAWSが提供しているリレーショナルデータベースのAmazon Auroraでは1GBあたり0.12USDの価格設定となっていることから、約5分の1の値段で利用出来ます。
容量無制限
S3では実質容量無制限でデータを格納することが可能です。
実質というのは1つのオブジェクトサイズが最大5TBまでという規定がありますが、規定さえ守ればいくらでもデータを格納することが出来ます。
格納するデータ量により支払い料金は変わるので意識しておいてください。
耐久性の高さ
S3では、保存されたデータを自動的に複数のデータセンターへコピーして保存されます。
そのため、99.999999999%(9x11)の耐久性を実現するように設計されていると公式でも掲載されています。
それぞれのデータセンターは物理的に離れており、どこかのデータセンターで障害が起きたとしてもデータを損失しないような仕組みです。
静的ホスティングサービス
S3ではデータの保存だけでなく、静的ホスティングと呼ばれるコーポレートサイトのような静的WebサイトをS3から直接公開出来る機能が提供されています。
通常であれば、別途ホスティング用のサーバーなどを用意して公開する必要がありますが、S3を利用することでサーバーの構築や監視の必要がなくなり、簡単にコンテンツを一般公開することも可能です。
クエリ分析
Amazon S3に保存されたデータを標準SQLで分析出来るサービスとして「Amazon Athena」 が提供されています。
Athenaはサーバーレスで利用出来るため、インフラの準備も必要なく、簡単に実行可能です。
S3とAthenaを利用することによって、従来であれば様々な手順を踏む必要があったクエリ分析も簡単に行うことが出来るため、大きなメリットとなります。
Amazon Athenaも従量課金制のため、クエリ毎の料金加算となります。
スキャンしたデータのみに支払いが発生するため、無駄な支払いが発生することもありません。
AWS S3の用語集
AWS S3を利用したことのない方には馴染みのない、専門用語が利用されるので代表例についてご紹介しておきます。
オブジェクト
S3に格納するデータのことを「オブジェクト」と呼びます。
上述したようにS3はオブジェクトストレージサービスと呼ばれる種類で、リレーショナルデータベースとはデータの管理方法が異なります。
バケット
S3ではオブジェクト(データ)を保存する場所のことを「バケット」と呼びます。
ユーザーがオブジェクトを保存したい場合、まずバケットの作成が必要です。
バケットを作成すれば、APIやコンソールを使用して、オブジェクトをS3にアップロードすることが出来るようになります。
注意点としてバケットに名前を付ける際、全AWSユーザー及び全リージョンで一意の名前を付ける必要があります。
キー
バケット内で、オブジェクト固有の識別子のことをS3では「キー」と呼びます。
「バケット」「キー」「バージョンID」の組み合わせで、オブジェクトを一意に識別出来ます。
AWS S3を使ってみよう
では実際にAWS S3の使い方を確認してみましょう。
AWSコンソールにログインした状態から始めるので、アカウントをお持ちでない方は新規作成する必要があります。
S3コンソール画面を起動
ヘッダーの「サービス」から「ストレージ」カテゴリーに「S3」が表示されているので、選択します。
※検索窓で「S3」と検索しても表示されます。
バケットを作成
S3のコンソール画面には既に作成したバケットがある場合、一覧形式で表示されます。
新規でバケットを追加したい場合、「バケットを作成」ボタンをクリックします。
バケット名やリージョンを選択して、バケットを作成するわけですが、上述したようにバケット名は全ユーザーの保持するバケットで一意である必要があります。
その他様々なオプション項目が設定可能ですが、今回はサンプルなのでデフォルトのまま画面下部の「バケットを作成」ボタンをクリックします。
サンプルの場合、「potepan-sample1」というバケットを「ap-northeast-1(東京リージョン)」に作成出来たことが分かります。
データのアップロード
作成した「potepan-sample1」をクリックすると、上記の画面が表示されるので「アップロード」ボタンをクリックします。
「ファイルを追加」ボタンをクリックすると、ダイアログが表示されます。
S3にアップロードしたいファイルを選択し、「開く」ボタンをクリックします。
「フォルダを追加」ボタンでは、フォルダに格納されたファイルをまとめてアップロードすることも可能です。
「ファイルとフォルダ」項目にアップロード対象のファイルが表示されていること、送信先が対象バケットに指定されていることを確認し、「アップロード」ボタンをクリックします。
画像のように「アップロードに成功しました」と表示され、「ファイルとフォルダ」項目に指定したファイルが表示されていればアップロード完了です。
さいごに: データの保存にはAWS S3を活用しよう
本記事では、AWSより提供されているストレージサービス「Amazon S3」のサービス概要についてご紹介してきました。
S3は低コストでありながら耐久性も高く、多くの企業に利用される人気と実績のあるサービスです。
AWSアカウントを新規で作成した場合の1年無料枠でも、十分にS3の機能を活用出来ますので、まだ触れたことのない方はぜひ一度お試しください。
オブジェクトストレージサービスでは、ファイルストレージのようにディレクトリ構造でデータを管理するのではなく、フラットで依存関係のない状態でデータを保管します。