簡易LP置き場

目的

簡単に外注したLPを置ける場所が現状なかったので、それを作った。
要件としては、

  • 開発時は、ページごとに異なるID PASS で、認証をしたい。
    • VPC内にアクセスできない人にページ確認してもらうこともあるので、認証は必須。
  • URLは、普段使ってるドメインにしたい。

構成

Route53 => ALB => NGINX => S3
ALBでパスによって、普段使ってるRailsやNginxにパスベースで切り替えるイメージ。

CloudFront => S3 という方法が良さそうな気がしたけど、CloudFrontで普段使ってるドメインをマウント?してなかったから行わないことにした。

実装

  1. 何らかのテーブルに、basic認証のIDとパスワードとページのURLを入れてもらう。
  2. CodePipelineを設定しておいて、CodeBuildをする際に、Databaseを参照し、nginxの設定ファイルを何らかの言語で作成する。
  3. その作成した設定ファイルを用いて、nginxを起動する。
  4. そのテーブルが更新されるたびに、CodePipelineをKickして、設定ファイルを再度作成して、nginxを再起動する。

感想

amazon cognite 使って、S3の権限絞るのがかっこいいけど、cognite運用実績ないので諦めた...
結構いい感じなものができたけど、もっといい方法がある気がする...
他の人はどうやってるんだろう??