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?

【後編】Laravel×Docker×EC2 初デプロイで地獄を見た話(HTTPS対応と監視導入編)

Posted at

さあ、ここまで来たらあと一息!この記事では、実際に公開していくための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

この中で SSLCertificateFileSSLCertificateKeyFile を 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_percentdisk_used_percent を追加すれば、
最低限の死活監視はOK!


🚀 公開直前チェック

  • ドメイン: https://apprentory.click にアクセスできる?
  • .envAPP_URLSESSION_DOMAIN は一致してる?
  • ログイン・投稿機能は動作する?
  • CloudWatchにログ出てる?

最後に docker-compose up -d をして、祈りながらアクセスするだけ…!


🎉 完走して思うこと

振り返るとめちゃくちゃ大変だった。ログが出ない、セッション飛ぶ、SSL通らん、CloudWatch無反応…

でも、確実に言えるのは:

「全部自分で通したことで、インフラと仲良くなれた」

この記事が、同じように苦しんでる人の支えになりますように!

最後まで読んでくれてありがとう!

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?