AWSのCloudFrontでS3,EC2,API GatewayをPath Patternで分けて一つの独自ドメイン(HTTPS)に纏める

AWSのCloudFrontでS3,EC2,API GatewayをPath Patternで分けて一つの独自ドメイン(HTTPS)に纏める

CloudFrontのマルチオリジンを使用してPath Patternを分けることによって一つのドメイン(HTTPS)でAPI Gateway,S3にアクセスすることができました。詳細は「AWS Cognitoで認証画面を作成してサインイン後にAPI GatewayをCognitoで認可する」を参照ください。

これにEC2のApacheも同一ドメインにしたかったので、色々調べているとどうもELB(ロードバランサー)経由してHTTPS化することにより可能な気がしたので、一旦ELB + EC2でサブドメインを作成しました。詳細は「AWSのEC2にELB経由で接続する」を参照下さい。

前提条件がかなりありますが、大事なポイントだけ。

  • ACMは2つ必要で、一つはバージニア北部で「*.ドメイン名.co.uk」で取得する
  • ACMは2つ必要で、一つはELBと同じリージョンで取得する
  • ELBはサブドメイン名と対応付ける

ではS3とAPI Gatewayはマルチオリジン対応済みとしてEC2を追加します。

AWSのCloudFrontでS3,EC2,API GatewayをPath Patternで分けて一つの独自ドメイン(HTTPS)に纏める

ELBをサブドメインとしているため、ACMは「*.ドメイン名.co.uk」に取得しなおします。ACMの特徴としてワイルドカードが使用できます。

EC2(ELB)のオリジンを作成する

次にELBのオリジンを作成します。前の記事ではサブドメインにしていますので、Origin Domain Nameに「elb.ドメイン名.co.uk」を設定します。

AWSのCloudFrontでS3,EC2,API GatewayをPath Patternで分けて一つの独自ドメイン(HTTPS)に纏める

Behaviorを作成する

次にBehaviorを作成します。WhitelistでHostを追加する必要があります。

AWSのCloudFrontでS3,EC2,API GatewayをPath Patternで分けて一つの独自ドメイン(HTTPS)に纏める

これでコンソールの設定は完了です。Path Patternを「ec2/*」としたので、度九面とルートは「var/www/html/ec2/」となりますので気を付けてください。試しにec2配下にindex.htmlを作成しました。

以下、アクセスした結果です。

AWSのCloudFrontでS3,EC2,API GatewayをPath Patternで分けて一つの独自ドメイン(HTTPS)に纏める

これでEC2もELB経由でHTTPSでアクセスすることが確認できました。

参考サイト

コメント

タイトルとURLをコピーしました