1
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?

初めての AWS で Laravel API をデプロイしてみた! - 第 2 弾:サーバー接続編

Last updated at Posted at 2024-02-15

1. はじめに

私は2023年10月より、内定直結型エンジニア学習プログラム「アプレンティス」に2期生として参加しています。

AWS について学んだので、Laravel API を AWS でデプロイする方法についてまとめました。
AWS に初めて触れる方の参考になれば幸いです。

シリーズ一覧

長編になっているので、複数の記事に分けて公開しています。
本記事はその第 2 弾です。

  1. サーバー設置編
  2. サーバー接続編 ★本記事!!
  3. IP アドレス編
  4. データベース編
  5. アプリケーション起動編
  6. Webレイヤ冗長化編
  7. 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 アドレス」をコピーしておきます。
スクリーンショット 2024-02-14 5.52.40.png

ターミナルから SSH 接続

私の PC は Mac なので、以下は Mac でのログイン方法です。
ターミナルを開きます。私は iTerm2 を使っているので、そちらを使用します。
以下のコマンドで、EC2 インスタンスにログインすることができます。
ssh -i <秘密鍵ファイルへのパス> ec2-user@<パブリック IP>
スクリーンショット 2024-02-14 6.10.53.png
トリさんが出てきたらログイン成功です!
ログアウトするときはexitコマンドを実行してください。
スクリーンショット 2024-02-08 23.57.46.png

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

スクリーンショット 2024-02-09 1.58.56.png
緑色でactive (running)となっており、起動していることが確認できました。

Apache が自動起動するように設定

サーバーが起動する時に Apache も起動するように設定します。
sudo systemctl enable httpd.service

以下のコマンドで、設定ができているか確認できます。
sudo systemctl is-enabled httpd.service

スクリーンショット 2024-02-09 2.06.08.png
enabledと表示されれば OK です。

11. ファイアウォールの設定

指定した通信のみ通す役割を果たすファイアウォールを設定します。

セキュリティグループとは

AWS では、セキュリティグループという設定が、ファイアウォールの役割を担っています。

セキュリティグループの設定

EC2 ダッシュボードを開き、左メニューから「インスタンス」をクリックし、作成した EC2 インスタンスにチェックを入れます。

スクリーンショット 2024-02-14 17.17.33.png
「セキュリティ」タブをクリックすると、「セキュリティグループ」が表示されるので、クリックして中身を確認してみます。

スクリーンショット 2024-02-14 17.20.02.png
このように、インバウンドルールが一つ登録されています。
現状、この EC2 インスタンスは SSH 通信のみ許可している状態です。
Web API として通信できるようにするためには、HTTP 通信を許可する必要があります。

「インバウンドルールを編集」から編集します。
まず、SSH 通信を許可する IP アドレスを、自身の PC のみに変更します。
Mac PC のパブリック IP アドレスを確認するコマンドは以下の通りです。
※クラウド上の EC2 インスタンス内ではなく、ご自身のローカル環境でコマンドを実行してください。
curl inet-ip.info
CIDR 表記にする必要があるので、末尾は/32としておきます。
スクリーンショット 2024-02-14 17.38.37.png

「ルールを追加」をクリックして、HTTP も設定します。
問題なければ、「ルールの保存」をクリックします。
スクリーンショット 2024-02-14 18.40.05.png
これで、SSH 通信は自分の PC からのみ、HTTP 通信はどこからでもアクセスできるようになった。

実際にブラウザからアクセスできるのか確認する

EC2 インスタンスのパブリック IP をコピーし、ブラウザの検索欄に貼り付け、HTTP 通信でアクセスか確認する。
スクリーンショット 2024-02-14 18.44.02.png
このように、Apache の画面が表示されれば成功です!

本記事はここまでです。
次の記事はこちら↓
初めての AWS で Laravel API をデプロイしてみた! - 第 3 弾:IP アドレス編

1
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
1
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?