🐈
[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