1. はじめに
私は2023年10月より、内定直結型エンジニア学習プログラム「アプレンティス」に2期生として参加しています。
AWS について学んだので、Laravel API を AWS でデプロイする方法についてまとめました。
AWS に初めて触れる方の参考になれば幸いです。
シリーズ一覧
長編になっているので、複数の記事に分けて公開しています。
本記事はその第 2 弾です。
- サーバー設置編
- サーバー接続編 ★本記事!!
- IP アドレス編
- データベース編
- アプリケーション起動編
- Webレイヤ冗長化編
- SSL 化編
目次
1.はじめに
2.EC2 インスタンスに接続
3.Apache のインストール
4.ファイアウォールの設定
2. EC2インスタンスに接続
秘密鍵の権限変更
chmod
コマンドで、秘密鍵ファイルの権限を厳しくします。これをしておかないと、鍵を利用できないようです。
chmod 600 <ファイルへのパス>
今回私は分かりやすいようにデスクトップに置いたので、
chmod 600 ~/Desktop/aws-and-infra-ssh-key.pem
となります。本来はデスクトップではなく、隠しフォルダに置いておくといいと思います。
EC2 インスタンスのパブリック IP アドレスを確認
作成した EC2 インスタンスをチェックし、概要欄に記載されている「パブリック IPv4 アドレス」をコピーしておきます。
ターミナルから SSH 接続
私の PC は Mac なので、以下は Mac でのログイン方法です。
ターミナルを開きます。私は iTerm2 を使っているので、そちらを使用します。
以下のコマンドで、EC2 インスタンスにログインすることができます。
ssh -i <秘密鍵ファイルへのパス> ec2-user@<パブリック IP>
トリさんが出てきたらログイン成功です!
ログアウトするときはexit
コマンドを実行してください。
3. Apacheのインストール
EC2 インスタンスを Web サーバーとして稼働するためには、Web サーバーのソフトウェアを入れる必要があります。
今回は、Apache をインストールしていきます。
EC2 インスタンスにログイン
EC2 インスタンスからログアウトしている場合は、再度ログイン。
EC2 インスタンスは停止・起動する毎にパブリック IP が変わってしまうため、改めて EC2 インスタンスの画面からパブリック IP をコピーしてきてください。
ssh -i <秘密鍵ファイルへのパス> ec2-user@<パブリック IP>
yum のアップデート
Linux のパッケージ管理ツールである yum をアップデートします。
sudo yum update -y
-y
オプションは、途中で yes/no の選択肢が出てきてアップデートが止まってしまう部分を、yes で強制的に進めるためのものです。
Apache のインストール
Apache を構成する実行ファイルである httpd をインストールします。
sudo yum -y install httpd
Apache の起動
指定したサービス(アプリケーション)を起動するコマンドで、Apache を起動します。
sudo systemctl start httpd.service
Apache の起動状態の確認
下記コマンドで、起動できているか確認できます。
sudo systemctl status httpd.service
緑色でactive (running)
となっており、起動していることが確認できました。
Apache が自動起動するように設定
サーバーが起動する時に Apache も起動するように設定します。
sudo systemctl enable httpd.service
以下のコマンドで、設定ができているか確認できます。
sudo systemctl is-enabled httpd.service
11. ファイアウォールの設定
指定した通信のみ通す役割を果たすファイアウォールを設定します。
セキュリティグループとは
AWS では、セキュリティグループという設定が、ファイアウォールの役割を担っています。
セキュリティグループの設定
EC2 ダッシュボードを開き、左メニューから「インスタンス」をクリックし、作成した EC2 インスタンスにチェックを入れます。
「セキュリティ」タブをクリックすると、「セキュリティグループ」が表示されるので、クリックして中身を確認してみます。
このように、インバウンドルールが一つ登録されています。
現状、この EC2 インスタンスは SSH 通信のみ許可している状態です。
Web API として通信できるようにするためには、HTTP 通信を許可する必要があります。
「インバウンドルールを編集」から編集します。
まず、SSH 通信を許可する IP アドレスを、自身の PC のみに変更します。
Mac PC のパブリック IP アドレスを確認するコマンドは以下の通りです。
※クラウド上の EC2 インスタンス内ではなく、ご自身のローカル環境でコマンドを実行してください。
curl inet-ip.info
CIDR 表記にする必要があるので、末尾は/32
としておきます。
「ルールを追加」をクリックして、HTTP も設定します。
問題なければ、「ルールの保存」をクリックします。
これで、SSH 通信は自分の PC からのみ、HTTP 通信はどこからでもアクセスできるようになった。
実際にブラウザからアクセスできるのか確認する
EC2 インスタンスのパブリック IP をコピーし、ブラウザの検索欄に貼り付け、HTTP 通信でアクセスか確認する。
このように、Apache の画面が表示されれば成功です!
本記事はここまでです。
次の記事はこちら↓
初めての AWS で Laravel API をデプロイしてみた! - 第 3 弾:IP アドレス編