2023-01-10 · 4

Amazon S3(Simple Storage Service)

cloudawss3

この記事は公開から2年以上経過しています。

Amazon S3 とは?

Amazon S3 は、どこからでも好きな量のデータを保存・取得できるように構築されたオブジェクトストレージです。業界最高水準の耐久性・可用性・性能・セキュリティとほぼ無制限の拡張性を、非常に低価格で提供するシンプルなストレージサービスです。— Amazon 公式ドキュメント

Simple Storage Service である S3 は、ファイルサーバーの役割を果たすサービスです。規模が大きくなるとファイルサーバーのトラフィック増加に合わせてサーバーを増設する必要がありますが、S3 を使えば解決できます。またファイルへのアクセス権限を指定できるため、サービスをホスティング用途に悪用されるのを防げます。

Amazon S3 の特徴

  • 多数のユーザーがアクセスしても、それに耐えるための追加作業が不要です。
  • 保存できるファイル数に制限がありません。
  • 最小 1byte から最大 5TB のデータを保存・配信できます。
  • ファイルに認証を付けて、無断アクセスを防げます。
  • HTTP と BitTorrent プロトコルをサポートします。
  • REST、SOAP インターフェイスを提供します。
  • データを複数の施設に冗長保存し、損失が発生した場合は自動的に復元します。
  • バージョン管理機能により、ユーザーのミスも復元できます。
  • 情報の重要度に応じて保護レベルを変えられ、それによってコストを削減できます(RRS)。

Amazon S3 で使われる用語

  • オブジェクト(object):AWS S3 に保存されたデータの一つひとつをオブジェクトと呼びます。
  • バケット(bucket):オブジェクトがファイル単位なら、バケットは関連するオブジェクトをグルーピングした最上位ディレクトリです。バケット単位でリージョンを指定でき、バケット内の全オブジェクトに一括で認証やアクセス制限をかけられます。
  • バージョン管理 — AWS S3 に保存されたオブジェクトの変化を記録します。たとえばオブジェクト A をユーザーが削除・変更しても、それぞれの変化をすべて記録するのでミスを挽回できます。
  • RRS(Reduced Redundancy Storage):通常の AWS S3 オブジェクトよりデータ損失の確率が高い保存方式です。その代わり安価なため、復元可能なデータ、たとえばサムネイル画像などの保存に適しています。それでも物理ハードディスク比で約 400 倍安全というのが Amazon の主張です。
  • Glacier:英語で氷河という意味で、非常に安い価格でデータを保存できる Amazon のストレージサービスです。

Amazon S3 の使い方(静的ウェブサイトホスティング)

S3 のメインページです。赤いボックスを押してバケットを作成できます。

バケットの名前とリージョン(region)を指定できます。

Access List 設定 — 「パブリックアクセスをすべてブロック」を無効化する方を選択します。

テスト用に作る場合は、AWS S3 の URL に簡単にアクセスできるよう「パブリックアクセスをすべてブロック」を無効化して使えます。残りはデフォルトのままにします。

作成後のバケットページの様子です。赤いボックスをクリックします。

このページで、アップロードしたいファイルをドラッグしてアップロードできます。

ドラッグすると上のように自動でアップロードページに移ります。「アップロード」を押して進められます。

無事アップロードされた様子が確認できます。

その後もう一度バケットに入り、プロパティを開いて一番下にある「静的ウェブサイトホスティング」の編集を押します。

形式に合わせてきちんと入力し、「変更の保存」を押します。

完了すると上の写真のようにドメインが生成されたことを確認できます。

もし上のように 403 が出たら、パブリックアクセスブロックの問題です。以下の通りに進めてください。

もう一度バケットページに入り、アクセス許可を開きます。そして「パブリックアクセスをすべてブロック(バケット設定)」の編集を押してください。

「パブリックアクセスをすべてブロック」を解除して「変更の保存」を押します。

そのすぐ下にあるバケットポリシーの編集を押します。

バケット ARN を押して ARN を先にコピーしておきます。そしてポリシージェネレーターを押します。ファイル一つひとつであるオブジェクトを取得するため、getObject というポリシーを設定する必要があります。

上の写真の説明どおりに変更してください。コピーした ARN をそのまま使うと、下の写真のように後で適用時にエラーになります。resource のパスを指定していないからです。arn:aws:s3:::demo-web1-bucket が基本形なら、バケット全体へのアクセスを許可したい場合は arn:aws:s3:::demo-web1-bucket/* と書き、特定フォルダを指定するなら arn:aws:s3:::demo-web1-bucket/DirecotryName/* のように書きます。

きちんと生成されたことが確認できます。では Generate Policy を押します。

その JSON の内容をそのままコピーして、先ほどのバケットポリシー編集欄に貼り付けます。

その後、作ったウェブホストを再読み込みすると、きちんと表示されることが確認できます。

出典


原文(韓国語): tistory — 2023-01-10 公開、当ブログへ移行。この翻訳は AI の協力で作成されました。

コメント

コメントを削除しますか?

関連記事

Amazon S3(Simple Storage Service) · 나봄하랑