0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWSに構築したAPI実行環境にロードバランサーとColudFrontを設定してみた

Posted at

こちらの記事の続きです。

やりたいこと

  • フロントエンドからのリクエストをロードバランサー経由で処理する
  • CloudFrontを設定し、ロードバランサーにHTTPS接続する

構成のおさらい

EC2

Webアプリのバックエンドを実行します。
今回はJavaのjarファイルを常時実行し、フロント側から実行されたAPIを処理します。
RDSに構築されたデータベースとデータをやりとりします。
SpringBootで実装しています。
ロードバランサーからHTTPリクエストを処理します。

RDS

Webアプリのデータベースを担います。
今回はPostgreSQLです。

S3

Webアプリのフロントエンドを配置します。
静的ウェブサイトとして設定し、エンドポイントにアクセスすることでフロント側の画面を表示します。
今回はVue.jsを用いて画面を作成します。

ロードバランサー

ターゲットグループの作成

ロードバランサーがリクエストをルーティングするためのターゲットグループを作成します。
EC2 > ターゲットグループ と進み、ターゲットグループの作成を選択します。

ターゲットタイプの選択

今回はEC2がターゲットとなるため、インスタンスを選択します。

プロトコル、ポート

ロードバランサー-EC2間はHTTP接続としたいため、HTTP:80としました。

VPC

EC2が属しているVPCを選択します。

ヘルスチェック

APIにヘルスチェック用URLがある場合は設定します。

ターゲットの登録

使用可能なインスタンスでEC2を選択します。(冗長化したい場合は2つ設定)
バックエンドのポートを設定します。(今回は8080を設定)
設定後、「保留中として以下を含める」をクリックします。
ターゲットに追加されたら、ターゲットグループの作成をクリックします。

ターゲットグループが作成されました。

ロードバランサーの作成

EC2 > ターゲットグループ と進み、ロードバランサーの作成をします。
今回は、HTTPおよびHTTPSトラフィックを処理したいため、Application Load Balancerを選択します。

VPC

EC2の属するVPCを選択します。

マッピング

トラフィックをルーティングしたいサブネットを選択します。ここではEC2のサブネットを選びます。
少なくとも2つのアベイラビリティーゾーンと、ゾーンごとに1つのサブネットを選択します。

リスナーとルーディング

先ほど作成した、ターゲットグループを選択します。
ここでは、フロントエンドからはHTTPS接続としたいので、HTTPS:443を設定します。

SSL/TLS証明書

リスナーのプロトコルをHTTPSとしたため、証明書の設定が必要です。
ACMにて作成/アップロートした証明書を選択できます。
(今回はテスト環境のため、自己署名証明書をアップロードし、選択しました)

ロードバランサーを作成をクリックします。

フロントエンドのアクセス先

フロントエンドからの向き先を、EC2エンドポイントロードバランサーのDNSに変更することで、
ロードバランサー経由でバックエンドにリクエストし、APIを実行できます。

CloudFront

ロードバランサーはHTTPS接続を受けているため、フロントエンドもHTTPSにてアクセスする必要があります。
S3の静的ウェブサイトホスティングはHTTPでのホスティングなため、CloudFrontを用いることとしました。

CloudFrontの作成

CloudFrontの画面より、ディストリビューションを作成をクリックします。

オリジンドメイン

S3ウェブサイトエンドポイントを設定します。
静的ウェブサイトホスティングのエンドポイントです。

ビューワー

Redirect HTTP to HTTPSに設定しました。

許可されたHTTPメソッド

許可するHTTPメソッドを選択します。

料金クラス

アジアを含む選択肢を選択しました。

上記以外はデフォルトとしました。
ディストリビューションを作成をクリックして作成します。

作成されたディストリビューションのディストリビューションドメイン名にアクセスすることで、フロントエンドを表示できました。
今回はディストリビューションドメイン名を使いましたが、Route53等を設定することで独自ドメインにできるようです。

以上で、(一応)ロードバランサーとColudFrontを設定できました。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?