

■質問  
リクエスト時のhoge.com配下のパスによって、AWSのALBかXServerかにリクエストを振り分けるようにしたい。どうやるのがよいか？

■状況  
\- hoge.comというドメインを所有  
\- hoge.com配下のパスによって、AWSのALBかXServerかにリクエストを振り分けるようにしたい  
\- 今はhoge.comがXserverに行くようにDNS設定している

■AWS  
ALB  
└TG-EC2(サービスA with Rails)  
└TG-EC2(サービスB with Rails)  
<https://hoge.com/servicea/>*  
<https://hoge.com/serviceb/>*

■Xserver  
Xserver(サービスC with WP)  
<http://hoge.com>  
<http://hoge.com/about>  
<http://hoge.com/blog>

■困っていること  
\- Xserverでリバースプロキシが設定できないので、AWS側にリクエストをもってこれない  
\- AWSのALBをリクエストの一次請けにしようにも、ALBからXserverにはリクエストを転送できない

■補足  
別サービスなら、そもそもサブドメインをきればいいじゃん、という話もあると思います。  
それも含めてアドバイスいただけると助かります


CC BY-SA 3.0
2017-10-18T05:37:09.680
38825
2017-10-26T06:29:20.160
2017-10-18T05:56:02.137
25065
25065
question
aws nginx
AWSとXserverへのリクエストの振り分けのアーキテクチャー


ご認識のとおり、ALBのターゲットはEC2になるため、Xserverへリクエストを直接転送することはできません。  
XserverへnginxなどでプロキシするEC2を用意すれば可能ですが、だったらXserver使わなければいいのではという感じでメリットが無いと思います。

AWSのサービスとして実現可能な構成としてはCloudFrontを利用する形となります。

  * CloudFrontのWebディストリビューションを作成。CNAMEに `hoge.com` を設定
  * オリジンを2つ作成 
    * ALBを指したもの
    * Xserverを指したもの
  * ビヘイビアで、パスに応じて、ALBとXserverに向ける

注意点としては、デフォルトだとCloudFront側のキャッシュが有効になるので、コンテンツの特性に応じてキャッシュを無効にしたり、必要なヘッダを転送するよう設定する必要があります。

> 別サービスなら、そもそもサブドメインをきればいいじゃん、という話もあると思います。

サブドメインを切ればDNSだけで設定できるので悩むことはないですが、すでに稼働しているサービスだと、SEOの観点で、リダイレクト設定などを行う必要がありそうです。  
新規であれば、分けてしまうほうが楽だとは思います。


CC BY-SA 3.0
2017-10-26T06:29:20.160
39044
2017-10-26T06:29:20.160
4759
38825
answer