【AWS】S3とは?ストレージの使い方とバケットの作成方法

この記事からわかること
- AWSのS3(Simple Storage Service)とは?
- S3を使用するメリットやオブジェクトなどの意味
- バケットの作成方法
- ストレージの使い方
index
[open]
\ アプリをリリースしました /
AWS(Amazon Web Services)のサービスの1つ「S3(Simple Storage Service)」とはどのような仕組みやメリットがあるのか、使う上での用語の意味や実際の使い方をまとめていきたいと思います。
S3(Simple Storage Service)とは?
S3(Simple Storage Service)とはAWS(Amazon Web Services)が展開するストレージマネジメントサービスです。
ストレージとは画像やファイルなどのデータを保存しておくための記憶装置のことを指しています。パソコンでいうところの内部ストレージにあたるSSDやHDD、外部ストレージでは物理的なもので言うとCDやDVD、オンライン上で使えるストレージだとiCloudなどがあげられます。
S3はまさしくオンラインストレージの一種でバケットと呼ばれるストレージスペースを使用していきます。バケットのスペックやパーミション(アクセス権限)などの細かい設定から管理までがS3では簡単に行うことができます。
AWS内には似たようなストレージサービスにEBS(Elastic Block Store)があります。これはEC2(別サービス:仮想サーバー)にアタッチ(付けられる)できる内部的なストレージ(PCのSSDやHDDのような)を提供するサービスです。つまりEC2と依存関係にあるストレージということです。
S3はEC2と依存関係に無いのでEC2がダウンしても影響を受けません。また保証面やコスト面でもストレージ機能と言う点に関してはS3の方がメリットが大きいです。
S3の特徴とメリット
- セキュリティが強固
- 99.999999999%の耐久性
- ストレージへのアクセスコントロール
- 無駄なコストカット
ストレージサービスはデータ保存することが役割であり、故障やトラブルなどでデータが消失することがあってはいけません。S3は99.999999999%(11 9s:イレブンナイン)の耐久性を誇っており、ファイルが壊れてしまうことがほぼ無いように作られています。
また料金は使用した分だけ支払う従量課金制となっており、無駄なコストを支払う心配がありません。使用するストレージクラスにもよりますが1GBあたり「0.023USD」、日本円にして「約20〜25円」の低コストで使用することができます。
AWSに初めて登録した際は無料枠が12ヶ月の間使用でき毎月5GBまでは無料で保存することができます。ただし期間をすぎると課金されてしまうので注意してください。
S3とは?〜まとめ〜
- ストレージマネジメントサービス
- ストレージ:データの保存領域
- オンラインストレージ
- EBSとは違いEC2と依存関係無し
- 耐久性やセキュリティ、管理が優れている
- 従量課金制
- 1GBあたりの料金:約20〜25円
- 無料枠:5GB
用語まとめ
S3を利用する上でも以下の2つの用語の理解は必須になります。
- バケットとは
- オブジェクトとは
バケットとは
S3の中でデータを保存するスペースのことをバケットと言います。バケットはAWSアカウントごとに作成して使用していきます。
1つのAWSアカウントでも複数のバケットを作成することも可能で、バケット名には同リージョン内にある全てのバケット名と重複しない名前をつけることがルールになります。これは自分だけではなく他ユーザーが使用している名称も使えないということです。
公式:バケットの命名規則
バケット名は命名規則が定められており、その枠内で一意の名称を指定します。取得したドメイン名をバケット名にするのがおすすめされています。
例:com.amefure
オブジェクトとは
S3でいうオブジェクトとはバケット内に実際に保存されていくデータのことです。
保存できるのは画像、動画、テキストファイル、zipファイルなどファイル形式のものが多種類にわたって保存することが可能です。
またバケット内にはフォルダを作成することも可能なのでオブジェクトごとにまとめたり、階層分けすることもできます。
S3の実際の使い方
- バケットの作成
- オブジェクトの手動アップロード
- オブジェクトを公開する流れ
バケットの作成
S3を利用する上で最初にやるべきことがバケットの作成です。
AWSのコンソール画面(AWS Management Console )にログイン

左上のサービスから「S3」を選択

すると「S3のコンソール画面(S3 Management Console)」に切り替わるのでそこから「バケットの作成」をクリックします。
バケットの作成をクリック
作成時に「バケット名」や「リージョンの指定」、「アクセス範囲」などを設定できます。
バケット名は一意の名称をリージョンを自分の住んでいる場所に近いところを選択しておきます。
アクセス範囲はデフォルトで「パブリックアクセスをすべてブロック」にチェックが入っているのでそのままにすれば外部からのアクセスは全て遮断されるのでテスト作成時はこのままでOKです。後から変更もできるので必要な時に必要なアクセス権を付与するのが安全かもしれません。

その他の設定はいじらずそのまま「バケットの作成」をクリック、緑色のメッセージが表示されていれば作成は完了です。

オブジェクトの手動アップロード
続いて試しに適当なオブジェクト(画像ファイルなど)をバケット内にアップロードする方法をみていきます。
S3のコンソール画面からオブジェクトを追加したい「バケット名」を選択します。その中の「アップロード」をクリック。

「ファイルを追加」ボタンを押すとパソコン内からデータを選んでアップロードすることができます。

緑色で正常にアップロードされた通知が表示されれば成功です。

オブジェクトを公開する流れ
アップロードはできましたがこのままでは外部からのアクセスはできません。アップロードしたオブジェクトを誰でもアクセスできるように設定していきます。
1.ACLの使用を有効にする
まずはバケットに対するACL(Access Control List)を有効にしてアクセス権を変更できるようにします。「S3 Management Console」>「バケット」内の「アクセス許可」タブをクリック。

その中の「オブジェクト所有者」の「編集」をクリックします。画面が切り替わるので「ACL有効」と「私は、ACLが復元されることを了承します。」にチェックを入れ「変更を保存する」をクリックします。

2.アクセス権を変更する
これでACLを有効にすることができました。続いてバケットのアクセス権を変更していきます。
同じ「アクセス許可」タブ内の「ブロックパブリックアクセス (バケット設定)」の「編集」をクリック。その中の「パブリックアクセスをすべてブロック」のチェックと他にもチェックがあれば全て外して「変更の保存」を押します。するとポップアップが表示されるので問題がなければ「確認」を押して進めます。
3.公開できているか確認する
「S3 Management Console」>「バケット」>「アップロードされたオブジェクト」をクリック。オブジェクトの概要の中にある「オブジェクトURL」が、公開されていればオブジェクトにアクセスできるURLになります。

このままクリックしても「アクセスが拒否されました(Access Denied)」と言うエラーページが開くだけなので「オブジェクトアクション」>「ACLを使用して公開する」をクリック後再度URLにアクセスすると無事オブジェクト(ファイルデータ)にアクセスすることができます。
この方法はバケット内のオブジェクト1つ1つに対して公開設定を施す方法です。
バケット全体を公開する場合が別の方法になりますので注意してください。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。