S3の使い方

AWSのS3はこの先ほとんどのWebアプリケーションが(部分的にでも)使って損はないストレージサービスです。ここではその特徴と基本的な使い方を解説します。

概要

S3は純粋にストレージ(データを貯めておくところ)のサービスです。ときどきS3をhtmlだけ扱えるWebサーバーという認識の方々に会うこと多いですが、この静的なコンテンツを扱えるWebサーバーは単なるS3のオプションサービスです。なので、S3は非常に抽象的な意味での単純なストレージサービスなのです。
現在運用中のサービスでも部分的にマウントが可能でログ・ファイルや単純なトランザクションデータ、先のhtmlファイルに関連するcssやjsや画像などのassets関連など切り分けて保存することが可能です。
また、使いやす過ぎてワンクリックで機密情報を全公開することも可能なので要注意です。s3://なんていう独自のプロトコルがある時点でもうなんか異様。

用語

SSH接続もしないしFTP接続もしません。そして独特の用語を使います。

  • オブジェクト: Amazon S3に格納されるファイル。
  • バケット: オブジェクトのコンテナ(保存場所)。すべてのオブジェクトはバケット内に格納される。作成可能なバケット数は1アカウントあたり最大で100個まで。バケット名はグローバルでユニークな必要あり。
  • キー: オブジェクト固有の識別子(オブジェクトの名前)。

オブジェクト(格納されたファイル)にアクセスするには、

  • ウェブサービスエンドポイント
  • バケット名
  • キー、(およびオプションでバージョン)

を組み合わせることでユニークにアクセスすることが可能です。
各オブジェクトはバージョンを残すことができます。すごいね!

How Do I Enable or Suspend Versioning for an S3 Bucket?
Object Versioning
またアクセスログの記録もできます。
[アクセスのログ記録](Amazon S3 Server Access Logging)


バケットの作成

名前とリージョン

  • バケット名: (例)saba-note
  • リージョン: (例)米国東部(バージニア北部)

オプション

  • バージョニング: (例)無効
  • サーバーアクセスのログ記録: (例)無効
  • タグ: (例)3 タグ *作成した数だけ
  • オブジェクトレベルのログ記録: (例)無効
  • デフォルト暗号化: (例)なし
  • CloudWatch リクエストメトリクス: (例)無効

アクセス権限

  • ユーザー 2
  • パブリックアクセス許可: (例)無効
  • システムのアクセス許可: (例)有効

これでパケットの作成ができます。
ものすごい細かい設定ができるので、そのような設定は後ほど設定しましょう。

ファイルアップロード

AWSのコンソールからドラッグ&ドロップでファイルをアップロードできますが、これは実用的はないと思います。実際はCloudeBerryなどのファイル転送ソフトを利用するか、その他のアプリで連携します。いちばんよく使うやり方がEC2にS3をマウントするやり方です。

IAM RoleとEC2にS3をマウントする方法

S3は純粋なファイルストレージなので、当然EC2にマウントできます。
該当のインスタンスからIAM(Identity and Access Management)の「IAM ロールの割り当て/置換」の設定に移動します。




Amazon S3 とは何ですか?
What Is Amazon S3?
意図せず公開しているS3バケットはありませんか?〜S3アクセス権限設定を見直そう〜
S3のアクセスコントロールまとめ
IAM と連携する AWS サービス
IAM RoleとBucket PolicyでAmazon S3へのアクセス制御を行う

Last update: 2018.09.19 (水)