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

この記事からわかること

  • AWSS3(Simple Storage Service)とは?
  • S3を使用するメリットオブジェクトなどの意味
  • バケット作成方法
  • ストレージ使い方

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

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の特徴とメリット

ストレージサービスはデータ保存することが役割であり、故障やトラブルなどでデータが消失することがあってはいけません。S3は99.999999999%(11 9s:イレブンナイン)の耐久性を誇っており、ファイルが壊れてしまうことがほぼ無いように作られています。

また料金は使用した分だけ支払う従量課金制となっており、無駄なコストを支払う心配がありません。使用するストレージクラスにもよりますが1GBあたり「0.023USD」、日本円にして「約20〜25円」の低コストで使用することができます。

AWSに初めて登録した際は無料枠が12ヶ月の間使用でき毎月5GBまでは無料で保存することができます。ただし期間をすぎると課金されてしまうので注意してください。

S3とは?〜まとめ〜

用語まとめ

S3を利用する上でも以下の2つの用語の理解は必須になります。

バケットとは

S3の中でデータを保存するスペースのことをバケットと言います。バケットはAWSアカウントごとに作成して使用していきます。

1つのAWSアカウントでも複数のバケットを作成することも可能で、バケット名には同リージョン内にある全てのバケット名と重複しない名前をつけることがルールになります。これは自分だけではなく他ユーザーが使用している名称も使えないということです。

公式:バケットの命名規則

バケット名は命名規則が定められており、その枠内で一意の名称を指定します。取得したドメイン名をバケット名にするのがおすすめされています。

例:com.amefure

オブジェクトとは

S3でいうオブジェクトとはバケット内に実際に保存されていくデータのことです。

保存できるのは画像、動画、テキストファイル、zipファイルなどファイル形式のものが多種類にわたって保存することが可能です。

またバケット内にはフォルダを作成することも可能なのでオブジェクトごとにまとめたり、階層分けすることもできます。

S3の実際の使い方

バケットの作成

S3を利用する上で最初にやるべきことがバケットの作成です。

AWSのコンソール画面(AWS Management Console )にログイン

AWSのコンソール画面

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

AWSのコンソール画面からS3を使用してバケットを作成する流れ

すると「S3のコンソール画面(S3 Management Console)」に切り替わるのでそこから「バケットの作成」をクリックします。

バケットの作成をクリック

作成時に「バケット名」や「リージョンの指定」、「アクセス範囲」などを設定できます。

バケット名は一意の名称をリージョンを自分の住んでいる場所に近いところを選択しておきます。

アクセス範囲はデフォルトで「パブリックアクセスをすべてブロック」にチェックが入っているのでそのままにすれば外部からのアクセスは全て遮断されるのでテスト作成時はこのままでOKです。後から変更もできるので必要な時に必要なアクセス権を付与するのが安全かもしれません。

AWSのコンソール画面からS3を使用してバケットを作成する流れ

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

AWSのコンソール画面からS3を使用してバケットを作成する流れ

オブジェクトの手動アップロード

続いて試しに適当なオブジェクト(画像ファイルなど)をバケット内にアップロードする方法をみていきます。

S3のコンソール画面からオブジェクトを追加したい「バケット名」を選択します。その中の「アップロード」をクリック。

AWSのコンソール画面からS3を使用してオブジェクトのアップロードする流れ

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

AWSのコンソール画面からS3を使用してオブジェクトのアップロードする流れ

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

AWSのコンソール画面からS3を使用してオブジェクトのアップロードする流れ

オブジェクトを公開する流れ

アップロードはできましたがこのままでは外部からのアクセスはできません。アップロードしたオブジェクトを誰でもアクセスできるように設定していきます。

1.ACLの使用を有効にする

まずはバケットに対するACL(Access Control List)を有効にしてアクセス権を変更できるようにします。「S3 Management Console」>「バケット」内の「アクセス許可」タブをクリック。

AWSのコンソール画面からS3を使用してオブジェクトのアップロードしたファイルの概要を開く

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

AWSのコンソール画面からS3を使用してオブジェクトのACLの使用を有効にする

2.アクセス権を変更する

これでACLを有効にすることができました。続いてバケットのアクセス権を変更していきます。

同じ「アクセス許可」タブ内の「ブロックパブリックアクセス (バケット設定)」の「編集」をクリック。その中の「パブリックアクセスをすべてブロック」のチェックと他にもチェックがあれば全て外して「変更の保存」を押します。するとポップアップが表示されるので問題がなければ「確認」を押して進めます。

3.公開できているか確認する

「S3 Management Console」>「バケット」>「アップロードされたオブジェクト」をクリック。オブジェクトの概要の中にある「オブジェクトURL」が、公開されていればオブジェクトにアクセスできるURLになります。

AWSのコンソール画面からS3を使用してオブジェクトのACLの使用を有効後公開できているか確認する

このままクリックしても「アクセスが拒否されました(Access Denied)」と言うエラーページが開くだけなので「オブジェクトアクション」>「ACLを使用して公開する」をクリック後再度URLにアクセスすると無事オブジェクト(ファイルデータ)にアクセスすることができます。

この方法はバケット内のオブジェクト1つ1つに対して公開設定を施す方法です。

バケット全体を公開する場合が別の方法になりますので注意してください。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index