🐈
[API構築9]ECS(fargate)をHTTPSでWEB公開

概要
aichatbotをECS上にデプロイでき、httpでアクセスできた。
LINE チャットに組み込むために、httpsとドメインの設定を行いたい。
- 設定:kebokko.com
- 設定:aichatbot.kebokko.com
参考
コンテナ起動
以下の記事でECSのコンテナを起動済み。
タスクを選択し「選択されたものを停止」した。

停止状態

ドメインの準備
ドメインがなければ買う。AWSならRoute53から。
どのドメインが空いているかはdomainrで調べる。
ホストゾーンを作る。ドメインをRoute53で買った場合は一緒についてくる。
AWS Certificate Managerで証明書を発行する。
ECSサービスを起動
以前起動したサービスとは別に、以下の設定でECSのサービスを起動する。
環境
そのまま
デプロイ設定
以下を設定する。
| 項目 | 値 |
|---|---|
| アプリケーションタイプ | サービス |
| ファミリー | aichatbot-dockerhub-task-familly |
| リビジョン | 最新 |
| サービス名 | aichatbot-service-https |
| サービスタイプ | レプリカ |
| 必要なタスク | 1 |
詳細

ネットワーキング
以下を設定する。
| 項目 | 値 |
|---|---|
| VPC | aichatbot-vpc(クラスターを作ったときと同じVPC) |
| サブネット | 選択されたまま |
| セキュリティグループ | 既存のセキュリティグループを使用(以前作ったものを選択する) |
| パブリックIP | オン |
詳細

ロードバランシング
以下を設定する。
| 項目 | 値 |
|---|---|
| ロードバランサーの種類 | Application Load Balancer |
| ロードバランサー指定を選択 | 新しいロードバランサーの作成 |
| ロードバランサー名 | aichatbot-lb |
| ロードバランス用のコンテナの選択 | aichatbot-dockerhub-container 80:80 |
| リスナー指定を選択 | 新しいリスナーを作成 |
| ポート / プロトコル | 443 / HTTPS |
| 証明書を選択 | ACM証明書から選択 |
| 証明書 | kebokko.com |
| ターゲットグループの選択 | 新しいターゲットグループの作成 |
| ターゲットグループ名 / プロトコル | aichatbot-tg / HTTP |
| ヘルスチェックパス / プロトコル | / / HTTP |
詳細

ホストゾーンの編集(サブドメイン作成)
ホストゾーンにレコードを追加する
| 項目 | 値 | 備考 |
|---|---|---|
| レコード名 | aichatbot | aichatbot.kebokko.comになる |
| レコードタイプ | A | |
| エイリアス | ON | |
| トラフィックのルーティング先 | Application Load Balancer と Classic Load Balancerへのエイリアス 東京 ap-northeast-1 aichatbot-lb(作成したロードバランサーのエイリアスを選択) |
|
| ルーティング | シンプルルーティング | |
| ターゲットへのヘルスを評価 | いいえ |
詳細

セキュリティグループを編集
EC2となっているがECSで読み替える
VPCのセキュリティグループを開く
HTTP:80はあるはず。
HTTPS:443 → 0.0.0.0/0 を追加する。

ロードバランサーの編集
以下を行う。
- httpsでサブドメインへは正しくアクセスできる
- httpでのサブドメへのアクセスはhttpsにリダイレクトさせる
- IPアドレスを直接指定したアクセス:403エラーを返す
- ロードバランサーのDNS名を指定したアクセス:403を返す
HTTPをリダイレクするトリスナーを追加
EC2 > ロードバランサーを開き「リスナーの追加」から以下を追加する。
| 項目 | 値 |
|---|---|
| プロトコル | HTTP |
| ポート | 80 |
| アクションの種類 | URLにリダイレクト |
| URLにリダイレクト | URI部分 |
| プロトコル | HTTPS |
| ポート | 443 |
詳細

リスナールールの編集
以下のルールを追加する。
ルール1
| 項目 | 値 |
|---|---|
| ルール名 | ルール1 |
| 条件 | ホストヘッダーがaichatbot.kebokko.com |
| アクション | URLにリダイレクト、URI部分、HTTPS/443 |
動作確認
ブラウザから https://aichatbot.kebokko.com にアクセスする。
できた!!

やったあ!!

感想
ECSへのデプロイもhttps化もやったことがあったから出来はしたが、結構長いし設定も多いので時間がかかった。半日かかってしまった。
Discussion