AWS Amazon Linux 2023 で LAMP 環境を作成してみた

入社 1 年目のクラウドエンジニアの新谷です。
「 Amazon Linux 2 」のサポート期限が 2025 年 6 月 30 日となっており移行先の OS として「 Amazon Linux 2023 」を検討されている方も多いのではないでしょうか。
本ブログでは「 Amazon Linux 2023 」を用いて「 LAMP 」環境を構築する方法をご紹介いたします。
目次
LAMP 構成とは?
LAMP とは Linux 系の OS ( L )、 Apache ( A )、 MySQL 、 MariaDB ( M )、 Per l、 PHP 、 Python ( P )の頭文字を取ったものです。これらは OSS (オープンソースソフトウェア)として無償に公開されているものを使用するという特徴があります。メリットとしてはコスト面が抑えられるので、 AWS 環境では EC2 インスタンスの料金のみで利用可能となり導入が容易です。デメリットは OSS ということもあり一部のミドルウェアにはサポートがありません。問題発生時に自力解決が前提となります。
AWS の Amazon Linux 2023 とは?
AWS が提供している第 3 世代の Linux ディストリビューションです。
- 第 1 世代:Amazon Linux
- 第 2 世代:Amazon Linux 2
- 第 3 世代:Amazon Linux 2023
簡単に Amazon Linux 2023 の特徴をまとめたいと思います。
すべては列挙しきれませんので、初期導入時に困りそうなところを記載いたします。
① rsyslog が初期インストールされていません。
- 今まで通り使用したい場合は手動インストールする必要があります。
- 初期は Journal で管理されています。
② 古い SSH クライアントが使用できません。
- rsa-sha2-256 または rsa-sha2-512 をサポートしている必要があります。
例)Teraterm v5 以上
③ デフォルトで SELinux ( permissive )が有効です。
- Amazon Linux 2 では無効でしたが Amazon Linux 2023 では有効です。
④ IMDSv2 が必須になりました。
- Amazon Linux 2023 では IMDSv2 を有効にすることが必須になりました。
今回 AWS で構築する Amazon Linux 2023 の LAMP 構築環境
今回構築する LAMP 環境を記載します。
OS : Amazon Linux 2023
MW : Apache 、 MariaDB 、 PHP
AWS 公式手順:Amazon Linux 2023のLAMP環境構築
今回は LAMP 導入のみを実施いたします。
前提: VPN 、パブリックサブネット、インターネットゲートウェイ、ルーティングは設定済
キーペア作成済み
[構成図]

Amazon Linux 2023 AMI を使って EC2 を作成
1) AWS マネジメントコンソールにログインしてください。
2)セキュリティグループを以下の通り作成します。
セキュリティグループ名: AL2023-Test (任意)
説明: AL2023-Test (任意)
VPC :テスト環境用の VPC-ID ( VPC 、 IGW 、ルーティングは設定済み)
インバウンドルール、アウトバウンドルールは以下の画像の通りです。
マイ IP はテスト環境を作成に使用するグローバル IP アドレスを入力ください。
Web 通信をすべてから、 SSH 通信を自分の環境のみからアクセス可能にしています。

3)下部のセキュリティグループを作成を押下します。
4) EC2 →インスタンス → インスタンスを起動を押下します。
5) EC2 作成時のパラメーターとして以下の通り入力します。
※注意点:デフォルト値から変更しているもののみ記載
名前: AL2023-Test (任意)
Amazon マシンイメージ ( AMI ): Amazon Linux 2023 AMI
今回は AMI ( ami-0310b105770df9334 )の Amazon Linux 2023 AMI 2023.1.20230825.0 x86_64 HVM kernel-6.1 を使用しています。こちらは本ブログ執筆時点での最新 AMI です。
インスタンスタイプ: t3.micro (任意)
キーペア:任意
VPC :テスト環境用の VPC-ID ( VPC 、 IGW 、ルーティングは設定済み)
サブネット:作成済みのパブリックサブネット
パブリック IP の自動割り当て:有効化( EIP を使用する場合は無効化)
ファイアウォール (セキュリティグループ):既存のセキュリティグループを選択する
共通のセキュリティグループ: AL2023-Test (項番 2 で作成したもの)
高度な詳細 → メタデータのバージョン: V2 のみ(トークンは必須)
6)インスタンス起動を押下します。

EC2 の一覧画面に戻ります。
数分経過すると起動が正常に完了します。

※パブリック IP v4 アドレスをメモしてください。以降はテストアドレスと呼称します。
EC2 作成は完了しました。
LAMP 環境を作成
1) SSH クライアントソフトを起動します。
今回筆者は以下の環境を使用しています。
端末: Mac ( Mac OS 13.5 )
ターミナル: OpenSSH_9.0p1 , LibreSSL 3.3.6
2) EC2 に接続します。
ssh ec2-user@[テストアドレス] -i [秘密鍵のパス]

3)すべてのソフトウェアパッケージを最新化します。
オプション「 -y 」を指定することで確認項目をスキップできます。
[ec2-user ~]$ sudo dnf update -y

今回は最新の AMI を使用していたので更新はありませんでした。
4) Apache ウェブサーバーの最新バージョンをインストールします。
[ec2-user ~]$ sudo dnf install -y httpd

・・・省略

これで Apache ウェブサーバーのインストールが完了しました。
5) Amazon Linux 2023 用の PHP パッケージをインストールします。
[ec2-user@ip-172-16-1-114 ~]$ sudo dnf install -y php-fpm php-mysqli php-json php php-devel

・・・省略

これで PHP パッケージのインストールが完了しました。
6) MariaDB ソフトウェアパッケージをインストールします。
[ec2-user@ip-172-16-1-114 ~]$ sudo dnf install -y mariadb105-server

・・・省略

これで MariaDB パッケージのインストールが完了しました。
7) Apache の起動と動作検証をします。
Apache を起動します。
[ec2-user ~]$ sudo systemctl start httpd
ブラウザで以下にアクセスします。
http://テストアドレス
以下が表示されるはずです。
表示されれば成功です。

8) PHP の動作検証をします。
以下を実行してテストファイルを作成します。
権限で実行できないので root 昇格して実行します。
[ec2-user ~]$ sudo -s
[root ~]# echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
以下のアドレスにアクセスして PHP の情報が表示されることを確認します。
http://テストアドレス/phpinfo.php

9) mariaDB の動作検証について
以下を実行して起動します。
[ec2-user ~]$ sudo systemctl start mariadb
以下を実行して mariaDB のステータスを確認します。
Active:active(running) となっていれば問題ありません。
[ec2-user ~]$sudo systemctl status mariadb

以上が LAMP 構成の導入です。
本来はここから導入後の設定が必要ですが、本稿では解説しておりません。
動作確認ができましたら EC2 は削除してください。
AWS Amazon Linux 2023 で LAMP 環境を作成してみた(まとめ)
今回、 AWS の Amazon Linux 2023 で LAMP 環境を作成してみていかがだったでしょうか。
物足りない方がほとんどだと思いますが、続きは AWS公式ドキュメント にありますので気になるかは実施してみてください!
弊社は、関西に本社を置く企業として初めてパートナーに認定された 10 年以上の実績を持つ AWS パートナーです。
すべてのメンバーが AWS 認定を取得していますので、
AWS についてお困りごとがございましたら、お気軽にご相談ください。

元記事発行日: 2023年12月22日、最終更新日: 2024年02月28日