AWS S3によるファイルストレージの設定【エンジニア初心者向けガイド】

AWS概要

はじめに

Amazon S3 (Simple Storage Service) は、AWSの提供するクラウドストレージサービスで、大量のデータを安全に保存し、アクセスしやすくするための機能を持っています。本記事では、エンジニア初心者にもわかりやすく、S3バケットの作成やオブジェクトのアップロード、アクセス権限管理、バージョニング、ライフサイクル管理、そして静的ウェブホスティングの設定について解説します。


S3バケットの作成

S3バケットは、S3でファイル(オブジェクト)を保存するための「フォルダ」のようなものです。まず、バケットを作成しましょう。

S3バケット作成の手順

  1. AWSコンソールにログインし、「S3」サービスに移動します。
  2. 「バケットの作成」ボタンをクリックします。
  3. バケットタイプを選択します。基本汎用設定で良いと思います。
  4. バケット名を入力します。バケット名はS3全体でユニークでなければならず、名前にスペースや大文字は使用できません。
  5. リージョンを選択します。ユーザーが主にアクセスする地域やコストに応じて、適切なリージョンを選びましょう。
  6. オプションの設定(例: バージョニング)を選択し、「バケットの作成」をクリックして完了です。

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

S3にファイルを保存することを「オブジェクトのアップロード」と言います。ファイル、画像、動画、ドキュメントなど、さまざまな形式のファイルをS3バケットにアップロードできます。

アップロード手順

  1. S3バケットにアクセスし、「アップロード」ボタンをクリックします。
  2. 「ファイルを追加」ボタンをクリックし、アップロードしたいファイルを選択します。
  3. 「アップロード」をクリックし、ファイルをバケットにアップロードします。

アクセス権限の管理

S3のアクセス権限は、バケットまたはオブジェクト単位で設定可能です。S3バケットのアクセス権限管理には、主に以下の方法があります。

アクセス権限の設定方法

  1. バケットポリシー:
    • JSON形式でアクセスルールを記述し、特定のユーザーやIPからのみアクセスを許可するなどの詳細な制御が可能です。
  2. オブジェクトのパブリックアクセス設定:
    • ファイル単位で「パブリックアクセス」を設定し、誰でもアクセス可能にすることができます。
  3. アクセスコントロールリスト (ACL):
    • バケットやオブジェクトの所有者以外に特定のAWSアカウントやユーザーにアクセスを許可できます。

注意: セキュリティの観点から、パブリックにアクセスできる設定は慎重に行いましょう。

S3のバージョニング

バージョニングを有効にすると、S3バケットに同じ名前のファイルをアップロードした場合でも、以前のバージョンのファイルが削除されずに保持されます。これにより、誤ってファイルを上書きしてしまっても、以前のバージョンに戻すことが可能です。

バージョニングの有効化手順

  1. S3バケットにアクセスし、「プロパティ」タブを選択します。
  2. 「バージョニング」セクションにある「編集」をクリックし、「バージョニングを有効にする」を選択して保存します。

補足: バージョニングを有効にすると、バケットのストレージコストが増える可能性があるため、必要な場合のみ有効にしましょう。

ライフサイクル管理

ライフサイクル管理を使うと、ファイルの保存期限や保存場所を自動的に管理できます。例えば、一定期間が経過したファイルを別のストレージクラスに移動したり、自動で削除することが可能です。

ライフサイクルルールの設定手順

  1. S3バケットにアクセスし、「管理」タブを選択します。
  2. 「ライフサイクルルール」セクションで「ルールの作成」をクリックします。
  3. ルールの名前を設定し、対象のファイルやフォルダを指定します。
  4. アクションの設定: 例えば、30日後に「低頻度アクセス(Standard-IA)」に移行、1年後に削除などの設定を行います。

: アップロード後30日が経過したファイルを「Glacier」(長期保存用)に移行するなど、保存コストを自動的に最適化できます。

静的ウェブホスティングの実装

S3は、HTMLファイルやCSS、JavaScriptファイルをアップロードすることで、静的なウェブサイトのホスティングも可能です。静的サイトはサーバーレスで、手軽にウェブページを公開する方法です。

静的ウェブホスティング設定手順

  1. S3バケットの「プロパティ」タブにアクセスし、「静的ウェブホスティング」セクションで「設定」をクリックします。
  2. 「静的ウェブホスティングを有効にする」を選択し、インデックスドキュメント(例: index.html)とエラードキュメント(例: error.html)を指定します。
  3. パブリックアクセスの設定: ウェブサイトをインターネットに公開するためには、バケットとファイルのパブリックアクセス権限を有効にします。
  4. URLの確認: S3が発行するエンドポイントURLを使用して、ウェブサイトにアクセスできるようになります(例: http://[バケット名].s3-website-[リージョン].amazonaws.com)。

注意: S3の静的ホスティングはHTTPS対応ではないため、HTTPSを使用したい場合はCloudFrontと連携させる必要があります。

テストファイルのアップロード

静的ウェブホスティングサイトのアップロードを試してみます。

あらかじめ静的ウェブホスティング設定手順の1.2の設定を完了させ、静的ウェブホスティングを有効にしておきます。

下記ファイルをローカルで作成し、S3にアップロードします。

HTML
<!-- index.html -->
<h1>Hello World</h1>

アップロードが完了したら、index.htmlのACL設定を変更します。
ACLを変更する前に下記2点の設定を確認します。

  • パブリックアクセスをすべて ブロックが解除されていること
  • オブジェクト所有者を編集画面にて、ACLが有効になっていること

ジョキの確認ができたら、index.htmlのアクセス許可タブで、アクセスコントロールリスト (ACL)を編集します。
全員 (パブリックアクセス)のオブジェクトの書き込みをOKにしアクセスできるようになります。

その後、バケットの静的ウェブサイトホスティング欄にある、バケットウェブサイトエンドポイントにアクセスし、Hello Worldが出力されていれば成功です。


まとめ

S3は単なるストレージではなく、アクセス権限管理、バージョニング、ライフサイクル管理、静的ウェブホスティングなどの便利な機能を備えています。この記事で紹介した手順を参考に、S3バケットを活用して安全で効率的なストレージ管理を実現しましょう。これにより、初心者でもAWSのS3を使いこなせるようになるはずです。

コメント

タイトルとURLをコピーしました