AWS S3 を AWS CloudFront でアクセスできるようにする

CloudFront とは

「Amazon CloudFront は、データ、動画、アプリケーション、および API をすべて開発者にとって使いやすい環境で、
低レイテンシーの高速転送により視聴者に安全に配信する高速コンテンツ配信ネットワーク (CDN) サービスです。」

とのこと。

簡単に説明すると S3 と CloudFront を組み合わせると S3 にアップロードされている画像などが世界中どこからアクセスしてもほぼ同じ速度で読み込まれるようになる。
普通は、例えば日本に設置してあるレンタルサーバーに画像がアップロードされており、それをアメリカで読み込むのと日本で読み込むのでは、日本で読み込んだ方が距離が近いのでアメリカより速く読み込める。
CDN というのは地域によって読み込むスピードが変わるというのを解決できるサービス。
CloudFront は S3 と一緒に活用しても料金がそんなにかからないので設定しておくと良いと思う。

CloudFront

  • AWS コンソールにログインし、サービスから CloudFront を選択。
  • 「Create Distribution」をクリック

Origin Settings

  • Origin Domain Name: クリックしてS3のバケットを選択。
  • Origin Path: (オプション) /から始める。複数のサービスをディレクトリで分けていたら「/xxxxx」のように設定すればいい。ただ、使いづらいと思うので、 1 サービス 1 バケットにしておくのが良いと思う。
    • Domain Name が「xxxxxxxxxxxx.cloudfront.net」、バケット名が「test」、その中に sample/users/profile/xxxx.png があるとする。
      • Origin Path を「/sample」に設定している場合、URL は http(s)://xxxxxxxxxxxx.cloudfront.net/users/profile/xxxx.png となる。
  • Origin ID: 自動的に入力されているので基本的にスルー
  • Restrict Bucket Access:
    • Yes: CloudFront の URL 経由でのアクセス可、S3 の URL 経由でのアクセス不可
    • No: CloudFront の URL 経由でのアクセス可、S3 の URL 経由でのアクセス可
  • Origin Custom Headers: (オプション) オリジナルヘッダーの作成。全てのリクエストに付与される。ヘッダー名が重複していたら、この値を上書きする。

Default Cache Behavior Settings

  • 特に変更しなくても普通に使える。
  • 確認して「Create Distribution」クリック

アクセスしてみる

  • Status
    • 「In Progress」からけっこう時間がかかる (20分くらい?) が、しばらくすると「Deployed」になる。
    • 「Deployed」になるとアクセスできるようになる。
  • Domain Name
    • ここの値をコピーして https:// か http:// を付け足したものが URL

関連投稿