投稿

3月, 2017の投稿を表示しています

AWSを使ってソーリーサーバを構築しました。割と便利だと思う…。

イメージ
とてもお久しぶりです。 恵比寿のITベンチャーでサービス運営やっています。 仲間募集中です。ご興味ある方はTwitterなどでご連絡ください。 今回はAWSを使って、わりと便利なソーリーサーバを構築しましたというお話です。 構成は下の図のようになっています。 通信フローとしては、まずエンドユーザがELBにアクセスします。 このELBは既存のWebサービスやWebサイトをバランシングしていたものです。 諸事情によりメンテナンスしたり、ドメインを畳むことになったという話を想定しています。 そのELBに接続されていたWebサーバやアプリケーションサーバの代わりにソーリーサーバを接続します。 するとエンドユーザはソーリーサーバにアクセスしてきますよね。 ソーリーサーバはリクエストを受けたら、各ドメインに対応させたいCloudFrontへリクエストをパスします。 CloudFrontはS3のコンテンツを返すのですが、このS3に静的なソーリーページを格納しておきます。 それにより、ドメインにアクセスしてきたエンドユーザにソーリーページを見せることができます。 ポイントはソーリーサーバとCloudFrontですがやってることは簡単です。 まず、ソーリーサーバはただのNginxです。 proxy_pass を使って、特定ドメインに来たリクエストを対応するCloudFrontのドメインへパスします。 その設定は、/etc/nginx/conf.d/virtual.conf に書きました。 server {          listen 80;         server_name example.com;         if ($http_x_forwarded_proto != https) {                  return 301 https://$host$request_uri;          }         location / {                  proxy_pass  http://domain-a.sorry.example.com/ ;          } } 上記の server ディレクティブのかたまりを、ソーリーページの