【ITニュース解説】How to Setup a LAMP Server at Home Using AWS (Step-by-Step Guide)

2025年09月06日に「Dev.to」が公開したITニュース「How to Setup a LAMP Server at Home Using AWS (Step-by-Step Guide)」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

AWS EC2でウェブサイトを動かすLAMPサーバー(Linux, Apache, MySQL, PHP)を構築する手順を紹介。クラウド上に仮想サーバーを立ち上げ、OSからウェブサーバー、データベース、プログラミング言語までを順に設定し、テストするまでの具体的な工程を学べる。

ITニュース解説

この記事では、AWS (Amazon Web Services) のEC2 (Elastic Compute Cloud) サービスを利用して、自宅からウェブサーバーであるLAMPサーバーを構築する手順を詳細に解説する。LAMPはLinux、Apache、MySQL、PHPの頭文字を取ったもので、動的なウェブサイトをホスティングするために世界中で広く利用されている技術スタックである。AWS EC2を使うことで、自宅の物理サーバーと同じように機能する仮想サーバーをクラウド上に持ち、さらにAWSの持つスケーラビリティ(規模に応じて柔軟にリソースを増減できる能力)と信頼性を享受できる。

この構築作業を始める前に、いくつか準備しておくべきことがある。まず、AWSアカウントが必要となる。これはAWSのウェブサイトから簡単に作成できる。次に、基本的なターミナル(コマンドラインインターフェース)操作とSSH (Secure Shell) の知識があるとスムーズに進められる。SSHは、ネットワーク経由で別のコンピューターに安全に接続し、コマンドを実行するためのプロトコルだ。また、AWSの無料利用枠の対象となるEC2インスタンス(仮想サーバー)を使用する。具体的にはUbuntu ServerというOSを選択する。最後に、EC2インスタンスに安全にログインするためにSSHキーペア(鍵のペア)を作成し、ダウンロードしておく必要がある。これは、ユーザーがサーバーへアクセスする際の「身分証明書」のような役割を果たす大切なファイルだ。

それでは、具体的な手順を見ていこう。

最初のステップは、EC2インスタンスの起動だ。AWS Management Consoleにログインし、EC2のダッシュボードへ移動する。そこで「Launch Instance」をクリックして新しいインスタンスを起動する。まず、AMI (Amazon Machine Image) を選択する。AMIはOSと基本ソフトウェアのテンプレートであり、今回は最新のLTS(長期サポート)版Ubuntu Serverを選ぶ。次に、インスタンスタイプとしてt2.microを選択する。これは無料利用枠の対象であり、学習用途には十分なスペックを持つ小さな仮想サーバーだ。ストレージ(サーバーの記憶領域)はデフォルトの8GBで問題ない。最も重要な設定の一つがセキュリティグループだ。これは仮想的な防火壁で、サーバーへのアクセスを制御する。ここでは、SSH(ポート22)を自分のIPアドレスからのみ許可し、ウェブサイトの閲覧に必要なHTTP(ポート80)とHTTPS(ポート443)をすべてのIPアドレスから許可するように設定する。これにより、外部からウェブサイトへのアクセスは許可しつつ、サーバー管理のためのSSHアクセスは特定の場所からのみに限定してセキュリティを高める。最後にインスタンスを起動し、SSHキーペアのファイルをダウンロードする。この.pemファイルはサーバーへのログインに必須なので、大切に保管する必要がある。

次に、起動したEC2インスタンスへ接続する。ダウンロードしたキーペアファイルを使って、ターミナルからSSHコマンドを実行する。ssh -i your-key.pem ubuntu@(EC2-Public-IP)のように、キーファイルとインスタンスのパブリックIPアドレスを指定することで、リモートのサーバーに安全にログインできる。

サーバーに接続できたら、システムを最新の状態に更新する。sudo apt update && sudo apt upgrade -yというコマンドを実行する。apt updateは利用可能なソフトウェアパッケージのリストを最新の状態にし、apt upgradeは実際にそれらのパッケージを最新バージョンに更新する。これはセキュリティの向上と安定性の確保のために重要な作業だ。

続いて、ウェブサーバーソフトウェアであるApacheをインストールする。sudo apt install apache2 -yコマンドでApacheを導入する。インストール後、sudo systemctl enable apache2でシステム起動時にApacheが自動的に起動するように設定し、sudo systemctl start apache2でApacheサービスを起動する。サーバーのパブリックIPアドレスをウェブブラウザに入力すると、Apacheのデフォルトページが表示され、正しくインストールされたことが確認できる。

次に、データベース管理システムであるMySQLをインストールする。ここではMariaDBというMySQL互換のデータベースが推奨されている。sudo apt install mysql-server -yコマンドでインストールし、その後sudo mysql_secure_installationコマンドを実行して、データベースの初期セキュリティ設定を行う。これにより、rootパスワードの設定や不要なデータベースの削除などが行われ、セキュリティが強化される。Apacheと同様に、sudo systemctl start mariadbsudo systemctl enable mariadbでデータベースサービスを起動・有効化する。

ウェブサイトに動的な機能を持たせるためのプログラミング言語であるPHPをインストールする。sudo apt install php libapache2-mod-php php-mysql -yコマンドでPHPと、ApacheやMySQLとの連携に必要なモジュールを同時にインストールする。libapache2-mod-phpはPHPがApacheと連携するために、php-mysqlはPHPがMySQLデータベースと連携するために必要なコンポーネントだ。インストール後、php -vコマンドでPHPのバージョンを確認できる。

PHPが正しく動作しているかテストする。echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.phpというコマンドで、PHPの設定情報を表示するinfo.phpファイルを作成する。このファイルをブラウザでhttp://(EC2-Public-IP)/info.phpと入力して開くと、PHPの詳しい設定情報が表示され、PHPが正しく機能していることが確認できる。さらに、データベース接続をテストするPHPファイルを作成し、PHPがMySQLと連携できているかも確認する。

最後に、サーバーのセキュリティを強化するためにファイアウォールを設定する。UFW (Uncomplicated Firewall) というツールを使って、必要なポートのみを許可し、それ以外の通信をブロックする。sudo ufw allow OpenSSHでSSH接続を許可し、sudo ufw allow 'Apache Full'でHTTPとHTTPSの両方の通信を許可する。その後、sudo ufw enableでファイアウォールを有効化する。これにより、サーバーへの不正なアクセスを防ぎ、より安全に運用できる。

これらの手順を完了すると、AWS EC2インスタンス上にLAMPサーバーが正常に構築される。これにより、独自のプロジェクトをホストしたり、WordPressなどのCMS(コンテンツ管理システム)をデプロイしたり、データベースやウェブホスティングの実験を自由に行えるようになる。さらにステップを進めるなら、サーバーに独自のドメイン名を設定したり、Let's Encrypt SSL証明書を導入してサイトをHTTPS化したり、Ansibleなどのツールを使ってデプロイ作業を自動化したりすることも可能だ。この構築経験は、システムエンジニアを目指す上で非常に貴重な基礎知識となるだろう。

関連コンテンツ

関連IT用語

関連ITニュース

【ITニュース解説】How to Setup a LAMP Server at Home Using AWS (Step-by-Step Guide) | いっしー@Webエンジニア