ネットワークエンジニアが学ぶAWS

ネットワーク構築のインフラSEがAWSについて学んでいく過程を記事にしていきます!

汎用性の高いストレージAmazon S3①(ストレージタイプとアクセス管理)

約 7 分
汎用性の高いストレージAmazon S3①(ストレージタイプとアクセス管理)

今回はAWSの代表的なストレージサービスである「Amazon Simple Storage Service(S3)」に関して説明していきます。

Amazon S3とは

Amazon S3は、データを長期間保存するために使われるストレージサービスです。オブジェクトストレージという種類に分類されまており(オブジェクトストレージって何?という方はこちら)、保存されるデータのことを「オブジェクト」と呼びます。S3は以下のような特徴を持っています。

Amazon S3の特徴
・ どこからでもアクセス可能
・ 高い耐久性
・ 容量無制限

1点目に、データを保存する時や取り出す時にどこからでもアクセスできます。S3はインターネット上に公開できるストレージであるため、アクセスが許可されている端末ならどこからでもアクセスできます。
2点目に、高い耐久性を持っているストレージです。99.999999999%と表現される耐久性を持っているサービスで、Amazonが説明している表現を借りると「1万個のオブジェクトをS3に保存したとして、その1つが障害で消失するのに平均で1000万年ほどかかる」というレベルです笑
3点目に、保存するデータの容量にほとんど制限がないことです。1ファイル当たり5TBまでの制限がありますが、それを越えなければいくらでも制限なくデータを保存できます。これは、S3はAWSのマネージドサービスであるため保存する容量に応じてAmazonが自動で容量を拡張してくれるためです(「マネージドサービスって何?」という方はこちらを参照してください)。利用することができるストレージにはいくつか種類があります。

S3のストレージ種類

S3のストレージには「標準」「低頻度アクセス(IA:Infrequent Access)」「Glacier」の大きく分けて3つの種類があり、「オブジェクトにアクセスする頻度」で種類が分かれています。

Amazon S3 標準

頻繁にアクセスするデータを保存する際に使用するタイプです。S3に保存するデータ(オブジェクト)は、自動的に3か所以上のアベイラビリティゾーン(AZ)で冗長構成が取られています(「アベイラビリティゾーンって何?」という方はこちらを参照してください)。そのため、万が一どこかのAZが使えなくなった時でも、データにアクセスすることが可能です。長期間使用し続けるデータの保存に適しています。

Amazon S3 低頻度アクセス(IA)

頻繁にはアクセスしないけれども、すぐにデータを取り出せる状態にして保存したい時に使用するタイプです。標準クラスに比べて利用コストを抑えることができます。いくつのAZを使用して冗長化するかで、細かく種類が分かれていています。

・1ゾーン…1つのAZのみにデータを保存します。更にコストを抑えてS3を使用する場合に適しています。
・標準…3か所以上のAZで冗長構成を取ってデータを保存します。バックアップなどのデータ保存に適しています。

個人でS3を利用してデータを保存するような場合であれば、1ゾーンのIAタイプで十分かと思います。1つのAZには、1つ以上のデータセンタが所属しているため、障害でAZが使えなくなることはめったにないため、十分な耐久性を確保してデータを守ることができます。

Amazon Glacier

Amazon Glacierは、データをアーカイブ(※1)するために使われるストレージサービスで、S3とは別のサービスになります。ただ、S3と連携してストレージの他のS3の種類に比べて取り出しに時間がかかります(最低数分)。そのため、すぐに取り出すことができるデータの保存には不向きです。
※1 データを長期間、安定して保存する仕組みのこと。

ストレージ種類ごとの使い分け

以上の種類を表にまとめると下記のようになります。
S3ストレージ種類(標準、低頻度アクセス、Glacier)
※1 保存したデータを取り出し始めるまでの時間

「種類がたくさんあるのはわかったけど、どうやって使い分けるの?」初めて僕がS3を知った時にこう感じました。データを保存できればなんでもいいのでは?って思いますよね笑
「データをどう保存してどう取り出すか」の観点で、下記のように使い分けるのがオススメです。

データをすぐに取り出せる状態で保存しておきたい
性能をフル活用したいのでコストは気にしない…Amazon S3 標準
性能は多少劣ってもいいのでコストを抑えたい…Amazon S3 標準 – IA
1つの地区で十分…Amazon S3 1ゾーン – IA
データを取り出す機会はほとんどないけど保存しておきたい…Amazon Glacier

続けてS3でオブジェクトを正しく管理していく上で必要になるアクセス管理について説明していきます。

S3アクセス管理

S3では、「バケット」というデータ保存用の籠を作成してデータを保存していきます。バケット作成した時には、バケットを作成したアカウント以外はアクセスできない設定になっています。作成者以外のIAMユーザ(「IAMユーザって何?」という方はこちらを参照してください)や外部からのアクセスを許可したい場合には、そのアクセス権限を設定する必要があります。

S3バケット作成時のアクセス権限

アクセス権限設定方法の種類

ではこのアクセス権限の設定方法ですが、「ユーザポリシー」「バケットポリシー」「アクセスリスト(ACL)」の3種類で設定することができます。表にまとめると下記のとおりです。S3バケットのアクセス権限(ユーザポリシー、バケットポリシー、ACL)

S3でのアクセス決定フロー

3つも設定方法があると、「どれを使って設定すればいいの?」と迷ってしまいすよね笑 どうやって使い分けるかを把握するためにもどのようにS3バケットやオブジェクトへのアクセスできるかどうかがどのように決まっているのかを説明していきますね。まずは、S3バケットへアクセスする方法についてです。S3バケットへのアクセスは、「AWSクラウド環境内のIAMユーザからのアクセス」と「外部からのアクセス」で分かれています。

S3バケットでのアクセス制限概念図(ACL,バケットポリシー,ユーザポリシー)

AWSクラウド環境内からのアクセスの場合、IAMユーザにユーザポリシーを適用することができます。そのため、ユーザの種類ごとにアクセス権限を設定することができます。外部からのアクセスの場合には、ユーザポリシーを適用することができないため、バケットポリシーとACLを利用してアクセス権限を設定します。続けて、実際にS3でアクセス可否を決めるまでの流れをまとめてみると、下記の図のようになります。S3バケットのアクセス許可フロー

アクセスするためには、何回か行われる評価がすべてOKになる必要があります。就活の1次面接、2次面接…みたいなイメージですね。この評価をするための面接に当たる部分が「ユーザコンテキスト」「バケットコンテキスト」「オブジェクトコンテキスト」です。「コンテキスト」とは評価の結果のことで、この評価をするための面接官に当たる部分が「ユーザポリシー」「バケットポリシー」「ACL」になります。それぞれの意見(設定)を聞いた上で、評価がOKかNGか決まります。
なお、ユーザコンテキストに関しては、1つ上の図で示したIAMユーザがアクセスする場合のみ行われます。そのため、外部からのアクセスだった場合には「バケットコンテキスト」から評価が行われます。

アクセス権限設定の使い分け

以上がS3でアクセス可否が決まる仕組みになりますが、下記のような使い分けがわかりやすいかと思います。

IAMユーザからのアクセス…ユーザポリシー
外部からのアクセス…バケットポリシー
個別のオブジェクトごとに細かく設定したい…ACL

ただ、上記の設定方法は一例であり設定方法に特に制限はありません。そのため、自分が一番管理しやすい形を取りましょう。

以上、「S3のストレージの種類」「アクセス権限の設定」などS3の基本的な内容の説明しましたが、次回はS3で使える便利な機能について紹介したいと思います。

エンジニア向けの資産形成情報を発信中!

将来にお金を残していくための情報発信をしています。友だち登録をしてくださった方には、資産形成の記事を閲覧するためのパスワードもお教えてしてますので、気になる方は下記から登録お願いします(^^)
AWSの資格を取りたい方向けに僕が合格した過去問レポートもプレゼントしています!

友だち追加

About The Author

カワタン
3年半インフラエンジニアとしてネットワーク運用/構築に携わってきましたカワタンです^_^AWSのことを知ってから、このサービスが大好きになって現在猛勉強中です(*^^*)
AWS専門家になって月収150万目指してます!!!
Follow :

Leave A Reply

*
*
* (公開されません)