さあ、ここまで来たらあと一息!この記事では、実際に公開していくためのHTTPS対応やCloudWatchの監視設定までのラストスパートをお届けします。
🔒 HTTPS化(ACM + Route53)
❓ なぜALB構成にしなかったの?
当初は「ALB + ACMでHTTPSやった方がAWS的には王道だよな〜」と考えていました。
ただ、
- ALBの構築手順とドメイン周りの設定が複雑
- まずはEC2単体で完結させたいという思い
- 開発スピードを優先したかった
という理由で、今回はあえてALBを使わず、EC2に直接HTTPS対応する構成を選びました。
たしかにALB構成だとスケーラビリティや冗長性で有利ですが、
初学者の個人開発レベルであれば、EC2直SSLでも全然OKです。
それで減点されるようなケースはまずない(むしろALBで詰まって何も出せない方が痛い)。
最初はALB経由のSSLにしようか悩んだけど、今回はシンプルにEC2へ直接HTTPS対応する構成にしました。
1. ACM証明書の作成
AWS Certificate Manager で apprentory.click
向けに証明書を発行。Route53を使ってる場合はDNS検証が楽勝です。
2. ApacheでSSL対応
sudo yum install -y mod_ssl
sudo vim /etc/httpd/conf.d/ssl.conf
この中で SSLCertificateFile
や SSLCertificateKeyFile
を ACMの証明書へ向けて設定。
注意:Amazon Linux 2023 の場合、証明書の配置やmod_sslの挙動が微妙に違うので要注意!
📈 CloudWatchで最低限の監視
1. CloudWatch Agentの導入
sudo yum install -y amazon-cloudwatch-agent
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
対話形式でメモリ・ディスクの監視を有効にしました。
2. IAMロールを割り当てる
EC2インスタンスに CloudWatchAgentServerPolicy を含むIAMロールをアタッチ。
3. メトリクス確認
CloudWatchのダッシュボードに mem_used_percent
や disk_used_percent
を追加すれば、
最低限の死活監視はOK!
🚀 公開直前チェック
- ドメイン:
https://apprentory.click
にアクセスできる? -
.env
のAPP_URL
とSESSION_DOMAIN
は一致してる? - ログイン・投稿機能は動作する?
- CloudWatchにログ出てる?
最後に docker-compose up -d
をして、祈りながらアクセスするだけ…!
🎉 完走して思うこと
振り返るとめちゃくちゃ大変だった。ログが出ない、セッション飛ぶ、SSL通らん、CloudWatch無反応…
でも、確実に言えるのは:
「全部自分で通したことで、インフラと仲良くなれた」
この記事が、同じように苦しんでる人の支えになりますように!
最後まで読んでくれてありがとう!