1
0

(Amazon Linux 2023)AWS EC2にデプロイする② EC2サーバーの初期設定を行う〜mariaDBをインストールする

Last updated at Posted at 2024-07-27

はじめに

前回からの続きです。

前提

  • インスタンス作成時にAmazon マシンイメージ (AMI)でAmazon Linux 2023を選択された方向けです
  • Amazon Linux2を選択された方も手順は同じですが、Linuxコマンドが異なります
  • AMIの調べ方は、EC2サーバーにSSH接続をし、下記のコマンドを入力すると確認できます
ターミナル
cat /etc/os-release

環境

  • PHP 8.2
  • Laravel 11
  • mariaDB 10.5.23
  • Nginx 1.24.0
  • GitHub

おおまかな流れについて

おおまかな流れは下記のとおりです。

  1. AWSでEC2のインスタンスを起動する(①で説明済)
  2. 起動したインスタンスにElastic IP(固定IP)を関連付ける(①で説明済)
  3. EC2サーバの初期設定を行う
  4. PHPと拡張モジュールをインストールする
  5. Composerをインストールする
  6. mariaDBをインストールする
  7. Nginxをインストールする
  8. php-fpmとNginxを連携する
  9. GitHubとSSH接続する
  10. GitHubからmainブランチのコードをクローンする
  11. Laravelの初期設定を行う
  12. RDSと連携する
  13. 独自ドメインを設定する
  14. 独自ドメインのSSL認証を行う
  15. 2回目以降のデプロイについて

EC2サーバーの初期設定を行う

ダウンロードした.pemファイルを移動する

起動したインスタンスにSSH接続をするためには、プライベートキーを使う必要があります。そのため、まずは、①でダウンロードされた.pemファイルを.sshフォルダに移動させます。ターミナルを開き下記のコマンドを入力します。

ターミナル
# 1. .sshフォルダを作成(存在しない場合)
mkdir -p ~/.ssh

# 2. ダウンロードフォルダから.pemファイルを.sshフォルダに移動
mv ~/ダウンロード/your_file_name.pem ~/.ssh/

SSH接続をする

下記のコマンドを入力することで、SSH接続することが可能です。

ターミナル
ssh -i ~/.ssh/your_file_name.pem ec2-user@Elastic IPアドレス

Elastic IPアドレスの調べ方

EC2のダッシュボードへ移動し、インスタンス(実行中)を開きます。
パブリック IPv4 DNSの部分が@以降にそのまま入ります。

01_インスタンス-EC2-ap-southeast-2.png

SSH接続に成功すると、下記のような表示がでます。

ターミナル
A newer release of "Amazon Linux" is available.
  Version 2023.5.20240701:
  Version 2023.5.20240708:
  Version 2023.5.20240722:
Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
Last login: Sat Jul 20 09:58:20 2024 from 210.170.173.154

システム及びパッケージのアップデート

下記のコマンドを入力します。

ターミナル
sudo dnf -y update

タイムゾーンの設定

まずはタイムゾーンの確認を行います。初期状態であれば基本的にUTCになっていると思います。

ターミナル
timedatectl

下記のコマンドでタイムゾーンを変更します。

ターミナル
sudo timedatectl set-timezone Asia/Tokyo

もう一度タイムゾーンの確認を行い、変更されているか確認してください。

パッケージアップグレードの自動化

まずは、dnf-automatic パッケージをインストールします。

ターミナル
sudo dnf install -y dnf-automatic

次に、設定ファイルを編集します。

ターミナル
sudo vi /etc/dnf/automatic.conf

vimエディターで、編集画面に入るので、apply_updatesをyesに変更します。

ターミナル
[commands]
#  What kind of upgrade to perform:
# default                            = all available upgrades
# security                           = only the security upgrades
upgrade_type = default
random_sleep = 0

# Maximum time in seconds to wait until the system is on-line and able to
# connect to remote repositories.
network_online_timeout = 60

# To just receive updates use dnf-automatic-notifyonly.timer

# Whether updates should be downloaded when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
download_updates = yes

# Whether updates should be applied when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
apply_updates = yes

vimエディターの操作方法がわからない場合は、下記の記事が参考になります。
https://zenn.dev/masatotezuka/articles/vim_command_220225

これで初期設定は終わりです。

PHPと拡張モジュールをインストールする

フレームワークに必要な拡張モジュールを調べる

Laravelの公式ドキュメントから、必要な拡張モジュールを調べます。

PHPと拡張モジュールをインストールする

私の環境に必要な拡張モジュールをすべてまとめてインストールしたところ、下記のコマンドになりました。

ターミナル
sudo dnf install php8.2 php-fpm php-ctype php-curl php-dom php-fileinfo php-filter php-hash php-mbstring php-openssl php-pcre php-pdo php-session php-tokenizer php-xml php-bcmath php-mysqlnd php-intl

PHPのバージョンを確認する

指定したバージョンがインストールされていれば問題ありません。

ターミナル
php -v

どの拡張モジュールがインストールされているか確認する。

すべての拡張モジュールがインストールされているか確認してください。

ターミナル
php -m

これで、PHPと拡張モジュールのインストールは完了です。

Composerをインストールする

公式サイトを確認し、インストールします。

ターミナル
# 必ず公式サイトを確認してください。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

移動&リネーム(パスを通す)

ターミナル
sudo mv composer.phar /usr/local/bin/composer

バージョンを確認する

ターミナル
composer -v

これで、Composerのインストールは終了です。

mariaDBをインストールする

ターミナル
sudo dnf install mariadb105

バージョンを確認する

ターミナル
mariadb --version

おわりに

今回は、作成したEC2インスタンスにSSH接続し、初期設定を行った後に、PHP、拡張モジュール、Composer、mariaDBをインストールするところまで説明しました。次回は、Nginxをインストールするところから記事化したいと思います。

間違っている点や補足情報等ありましたら、ご教授いただけますと幸いです!

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