LoginSignup
40
40

More than 5 years have passed since last update.

爆速でランディングページを公開する(S3×CloudFront×Route53×ACM)

Posted at

はじめに

会社で働いていると爆速でランディングページを公開しないといけなくなることが頻繁にありますよね。
そんな時にササッとランディングページを公開してドヤ顔するための手順をまとめました。

ランディングページって

  • 広告とかから誘導することが多いので落ちてるとダメージでかい(どんなページでも落ちてるのは基本はダメですが・・・)
  • 画像が大量にある場合が多い
  • 離脱要因を減らすために爆速レスポンスが求められる
  • 一定期間経ったら捨てることも多い
  • フォームはページ内にあったりリンク先にあったり

みたいな要件の場合が多いと思うので、AWSを使って、全部の要件をバッチリ満たしたランディングページを公開しましょう。
ざっくり言うと、S3で静的Webページをホスティングして、CloudFront経由で配信するようにし、あとはRoute53でドメインを取得してACMを使ってHTTPSして配信する、という方法の説明です。

以下、マネジメントコンソールからの操作手順になります。が、本当に頻繁にあるなら自動化しましょう。ハハハ

大まかな流れ

今回は

  1. S3にランディングページをホスティング(とりあえず社内アクセスのみ許可)
  2. 責任者に内容を確認してもらって承認をもらう
  3. CloudFront経由で配信できるようにする
  4. Route53でドメインを取得して割り当てる
  5. ACMで証明書を発行してHTTPS化する
  6. 導線をセットする

という感じのフローで進めて行きます。

1.S3にランディングページをホスティング(とりあえず社内アクセスのみ許可)

新しいバケットを作成して、静的Webサイトのホスティングを有効化、社内からのアクセスのみ許可するようにした上で、ランディングページの素材一式をアップロードする、という流れで進めます。

1-1. 新しいバケットを作成

スクリーンショット_2016-07-16_1_45_32.png

いい感じの名前で適当に新しいバケットを作成します。

1-2. 静的Webサイトのホスティングを有効化

スクリーンショット_2016-07-16_1_47_11.png

先ほど作成したバケットのプロパティから静的Webサイトのホスティングを有効化して、ランディングページのindexページのパスを指定します。ついでにエンドポイントも確認しておきましょう。

1-3. 社内からのアクセスのみ許可するためのポリシーを作成

AWS Policy Generatorを使って、社内からのアクセスのみ許可するためのポリシーを作成します。

fd0a2ce9-a289-52a8-eef1-da22c180bc9b.png

Step1
* select type → S3 Bucket Policy
Step2
* Effect → Allow
* Principal → *
* Actions → s3:GetObject
* Amazon Resource Name → arn:aws:s3:::${作成したバケット名}/*
→ Add Condition
* Condition → IpAddress
* key → aws:SourceIp
* value → ${会社のIP}
→ Add Statement
Step3
→ Generate Policy
で、当該バケットに対して会社IPからのみアクセスを許可するポリシーが生成できます。

1-4. ポリシーを適用

マネジメントコンソールに戻って、生成したポリシーを追加します。

スクリーンショット_2016-07-16_1_51_23.png

1-5. バケットにランディングページのファイル一式をアップロード

あとはバケットにランディングページの素材一式をアップロードすれば、1-2で確認したエンドポイントからランディングページを(社内のIPからアクセスした場合のみ)閲覧することが出来ます。
なお、root配下にfavicon.icoの設置などもお忘れなく。

2. 責任者に内容を確認してもらって承認をもらう

これはまぁ会社によって異なると思うのでよしなにやって下さい。
以下、Goサインが出た前提で進めます。

3. CloudFront経由で配信できるようにする

CloudFrontの管理画面を開いてweb distributionを選択します。

スクリーンショット 2016-07-16 2.28.22.png

設定画面ではとりあえず、最低限は以下の設定をすればOK

スクリーンショット_2016-07-16_2_35_01.png

  • Origin Domain Name → 先ほどのS3バケット
  • Origin ID → 自動でセットされます
  • Default Root Object → index.html

他のパラメータはお好みでどうぞ。

処理が完了すれば hogehoge.cloudfront.net 経由でS3にホスティングしておいたランディングページにアクセス可能になります。

4. Route53でドメインを取得して割り当てる

通常は既存のドメインのサブドメインを切るなり、どこかのディレクトリ配下なりにランディングページを置くことが多いかと思うのですが、今回はRoute53でドメインを取得してみましょう。

4-1. ドメインの取得

Register Domainを選択してドメインを購入します。

スクリーンショット 2016-07-16 2.48.31.png

イケてるドメインを検索して

スクリーンショット 2016-07-16 2.49.15.png

あとは必要情報を入力すればドメインの購入が完了です。

4-2. DNSの設定

Route53の画面を表示し、Hosted zonesの中から先ほど取得したドメインを選択します。

スクリーンショット_2016-07-16_13_24_08.png

次にCreate Record Setを選択し、Aレコード(alias)を登録します。

スクリーンショット_2016-07-16_13_24_28.png

  • Type → A - IPv4 address
  • Alias → Yes
  • Alias Target → hogehoge.cloudfront.net

でOK。これで取得したドメイン名でランディングページへのアクセスが可能になります。

5. ACMで証明書を発行してHTTPS化する

最後の仕上げに、AWS Certificate Manager で証明書を発行して、 CloudFrontに証明書をセットしてHTTPS対応をします。

5-1. Certificate ManagerでSSL証明書を発行する

Certificate Managerで

スクリーンショット 2016-07-16 2.53.59.png

先ほど購入したドメインの証明書をリクエスト

スクリーンショット 2016-07-16 2.54.07.png

Confirm and requestを押下すると、Validationのためのメールが飛んで来ます。メール中のリンクを押下することで認証が完了し、証明書が発行されます。

ここで要注意なのが、現状、各リージョンでACMで証明書の発行が可能な状況とはなっているのですが、US East (N. Virginia)以外のリージョンで発行した証明書は、ELBでしか使えないので、CloudFrontで使うにはUS East (N. Virginia)で証明書を発行する必要があります。

5-2. CloudFrontに証明書をセット

CloudFrontの設定を変更して証明書をセットします。

スクリーンショット_2016-07-16_13_15_23.png

  • Alternate Domain Names → 取得したドメインをセット
  • Custom SSL Certificate (example.com) → チェック
  • Custom SSL Client Support → Only Clients that Support Server Name Indication (SNI)

以上で、Route53で取得したドメイン名でCloudFrontを経由しつつHTTPSでS3にホスティングしておいたランディングページが閲覧可能となります。

6. 導線をセットする

あとは、ランディングページへの導線をセットしてじゃんじゃんトラフィックを流してCVを獲得しましょう!

40
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
40