はじめに
これまでにAWSサービス上での開発などは経験あるものインフラ全体を設定することは初だったので、1週間ほどかかってしまいました笑
なので今回はつまづいたポイントを押さえて、次回1からデプロイする際はスムーズにいくよう記録に残したいと思います。
参考記事
【初心者向け】AWS ECS + Fargate + CodePipeline + RDS でバックエンドサービス基盤を作る
まずはほとんどの設定、構成を上記を参考にさせていただきました!(マジ助かる〜)
違う部分はPBかPRのサブネットの場所くらいです。
で、どこでつまづいたのよ?
独自ドメインでHTTPS接続できない
インターネット → Route 53 → ALB → ECS Fargate → RDS
みたいな構成でした。
起動すると以下のログでアプリは正常に起動できていそう。
よし、独自ドメインの https://hogehoge.com にアクセス!
このサイトにアクセスできません
hogehoge.com にタイプミスがないか確認してください。
DNS_PROBE_FINISHED_NXDOMAIN
なんでやねん。となりました。
でも、ALBのDSN名でアクセスすると、
接続できてるんです。(画面にアクセスできたら、JSONが返却されます)
と、いうことは、Route53 が怪しい!
以前デプロイした際に設定していたので、それが残ってるのが悪いんじゃないか?と考えたので、ACMとRoute53の設定を全削除しました。→ (地獄の始まり)
そして、ホストゾーンを再発行したら、まさかのネームサーバーも再登録が必要になった。(チーン)
下記の記事を参考にさせていただき、再登録しました(再登録にお金かかります)
Route 53で取得したドメインのホストゾーンを削除してしまったら
そして、いろいろ調べた結果、Aレコードの登録が原因でした!笑
お前IT初心者かよ!と言われても仕方ないです。ちなみに5年目です。はい、すみません。
ちなみにAレコードを知らない方に向けて説明すると、
A(Address)レコードは、IPv4でホスト名とIPアドレスの関連づけを定義するレコード。
「www」などのホスト名を入力し、VALUEにグローバルIPアドレスを入力することによって、
ご利用いただくサーバーへの名前解決が行われます。
つまり、ホスト名(独自ドメイン)とIPアドレス(ALBで設定したDSN名)の紐付けをしないとドメインでアクセスできない!という結果でした。
設定に関しては、こちらを参考にさせていただきました。
【AWS環境構築メモ⑧】Route53でAレコードのエイリアスを作成する
Route53でAレコードを設定して、数分後アクセスすると上手く行きました!
自分へ
プライベートサブネットに作成したDBに一時的にアクセスするには、ルートテーブルを一旦パブリックに変えて、 RDSの設定をパブリックアクセス可能にし、サブネットグループをパブリック指定するとローカルマシンから接続できるよ。ちなみにアクセス後はちゃんと設定戻さないとあかんよ。
最後に
AWSと少し仲良く慣れた気がします。
アーキテクチャ部分はもっと勉強しないとなっとなりました。