1. はじめに
私は2023年10月より、内定直結型エンジニア学習プログラム「アプレンティス」に2期生として参加しています。
AWS について学んだので、Laravel API を AWS でデプロイする方法についてまとめました。
AWS に初めて触れる方の参考になれば幸いです。
シリーズ一覧
長編になっているので、複数の記事に分けて公開しています。
本記事はその第 7 弾です。
- サーバー設置編
- サーバー接続編
- IP アドレス編
- データベース編
- アプリケーション起動編
- Webレイヤ冗長化編
- SSL 化編 ★本記事!!
目次
1.はじめに
2.パブリック証明書のリクエスト
3.ALB に HTTPS リスナーの追加
4.セキュリティグループで HTTPS 通信を許可
5.HTTP 通信を HTTPS 通信にリダイレクト
6.最後に
2. パブリック証明書のリクエスト
ACM (AWS Certificate Manager) を利用して、SSL 化 (HTTPS 化) していきます。
サービス検索窓に「Certificate Manager」と入力し、ACM のダッシュボードに移動します。
「証明書をリクエスト」をクリックします。
証明書がリクエストされました。
ステータスは「保留中の検証」となっています。
証明書 ID をクリックして、詳細画面に移り、「Route 53 でレコードを作成」をクリックします。
レコードが表示されるので、「レコードを作成」をクリックします。
証明書のステータスが「成功」となれば、パブリック証明書の発行が完了です。
3. ALBにHTTPSリスナーの追加
HTTPS 通信を受け入れるように、ALB にリスナーを追加します。
EC2 ダッシュボードの「ロードバランサー」から、作成したロードバランサーを選択します。
HTTPS, 443 番ポートを登録します。
「アクションのルーティング」は、作成したターゲットグループを選択します。
証明書の取得先に「ACM から」を選択し、取得した証明書を選択します。
「追加」をクリック。
追加されましたが、このままでは「到達不可能」となっています。
セキュリティグループで HTTPS 通信を許可していないためです。
4. セキュリティグループでHTTPS通信を許可
「セキュリティ」タブに切り替えると、セキュリティグループが表示されるので、クリックして詳細画面に移動します。
「インバウンドルール」の「インバウンドルールを編集」に進みます。
「ルールを追加」をクリックし、HTTPS, 443 番ポートを登録します。
「ルールを保存」をクリックします。
これで、HTTPS 通信できるようになります。
5. HTTP通信をHTTPS通信にリダイレクト
HTTP 通信でアクセスがあった場合に、HTTPS 通信でリダイレクトするように設定します。
EC2 ダッシュボードから「ロードバランサー」を開き、作成した ALB を選択します。
現在、HTTP も HTTPS もターゲットグループにルーティングする設定になっています。
これを、HTTP の場合は HTTPS にリダイレクトするよう編集します。
「HTTP:80」をクリックして詳細画面に移行します。
「URL にリダイレクト」を選択します。
HTTPS, 443 番ポートを選択します。
「優先度」は 1 としておきます。
「次へ」、問題がなければ「作成」をクリックします。
これで、http
としてアクセスした場合、https
にリダイレクトされるようになりました!
6. 最後に
ここまでで、Laravel API を AWS にデプロイし、冗長化や独自ドメインの SSL 化にも対応してきました。
画像付きで操作方法がわかりやすいように努めました。
なぜその項目を選択するのか等については、まだ勉強中なこともあり、深く掘り下げなかった部分も多くあります。
さらに学びを深めて行きたいとおもいます。
お読みいただきありがとうございました。