[AWS]はじめてのWebサーバー構築
はじめに
Fusicのレオナです。本記事では、AWS上にWebサーバー環境を構築するための基本手順について、初めての方でも理解しやすいよう画像を用いながら解説します。
構成
今回構築するWebサーバーの全体アーキテクチャを示しています。
手順
1. VPC作成
ステップ1
AWSマネジメントコンソールの検索バーに「VPC」と入力し、VPCサービスの設定画面に移動します。
ステップ2
下記の画像の通り、必要なパラメータを入力して新規VPCを作成します。
VPCが作成されると、以下の構成図にあるネットワークの基盤が作成されます。なお、今回RDSを使用するため、AZは2つ以上利用できるように設定してください。
2. セキュリティグループ作成
EC2用セキュリティグループ
-
AWSマネジメントコンソールの検索バーに「EC2」と入力し、左サイドバーから「セキュリティグループ」を選択します。
-
設定内容:
- VPC: 先ほど作成したVPCを選択。
-
インバウンドルール:
- SSH (ポート22): 自身の「マイIP」からの接続のみを許可。
- HTTP (ポート80): 0.0.0.0/0に設定。
-
アウトバウンドルール: 初期設定のまま全通信を許可。
以下の画像のような構成が作成されました。
RDS用セキュリティグループ
-
設定内容:
-
インバウンドルール:
- PostgreSQL (ポート5432): 接続元として、先ほど作成したVPCのCIDR(例: 10.0.0.0/24)を指定します。
-
アウトバウンドルール: デフォルト設定(全通信許可)をそのまま使用します。
-
インバウンドルール:
以下の画像のような構成が作成されました。
3. EC2作成
ステップ1
左サイドバーから「インスタンス」を選択します。
ステップ2
「インスタンスを起動」ボタンをクリックし、新規インスタンス作成の設定画面に入ります。
-
ネットワーク設定:
- 作成済みのVPCを選択します。
- サブネットは「public」と表記されているものを選び、インターネット接続が可能な状態にします。
- パブリックIPの自動割り当て: 有効にすることで、外部から直接アクセスできるように設定します。
-
セキュリティグループ:
先に作成したEC2用セキュリティグループを選択してください。
ステップ3
「キーペア(ログイン)」の設定画面で、新規キーペアを作成します。キーペアはSSH接続時の認証に必要になります。
ステップ4
全設定を確認後、「インスタンスを起動」ボタンをクリックし、EC2インスタンスの作成を完了させます。
以下の画像のような構成が作成されました。
4. RDS作成
ステップ1
AWSマネジメントコンソールの検索バーに「Aurora and RDS」と入力し、RDS設定画面に移動します。
ステップ2
「データベースの作成」ボタンをクリックし、データベースエンジンとしてPostgreSQLを選択します。
- VPCは作成した
test-vpc
を選択してください。 - セキュリティグループを作成した
test-rds-sg
を選択してください。
ステップ3
画像の設定例に従って必要項目を入力し、データベースの作成プロセスを開始します。
ステップ4
データベースのステータスが「作成中」から「利用可能」に変わるのを待ちます。完了後、RDSはEC2から接続できる状態になります。
以下の画像のような構成が作成されました。
5. EC2への接続
ステップ1
AWSマネジメントコンソールで「EC2」と検索し、作成済みのEC2インスタンスを選択します。
ステップ2
表示されるパブリックIPv4アドレス(例: 43.206.219.156)をコピーします。
ステップ3
作成したキーペアファイルが保存されているディレクトリでターミナルを開き、以下のコマンドを実行してください(Macの場合の例)。
ssh -i test-keypair.pem ec2-user@43.206.219.156
接続に成功すると、次の画像のように表示されます。
6. psqlクライアントのインストール
EC2インスタンス内で、以下のコマンドを実行してPostgreSQLクライアント(psql)をインストールします。
sudo dnf install postgresql17 -y
インストール後、以下のコマンドでヘルプが表示されれば、正常にインストールされています。
psql --help
表示例:
psql is the PostgreSQL interactive terminal.
7. DBの確認
ステップ1
再度、AWS管理コンソールの「Aurora and RDS」画面から、作成済みのデータベースを選択し、エンドポイントの値を確認します。
ステップ2
確認したエンドポイント、ポート番号、ユーザー名、データベース名を用いて、EC2上からpsqlで接続します。例として以下のコマンドを実行します。
psql -h test-postgres.c3o6smau4mta.ap-northeast-1.rds.amazonaws.com -p 5432 -U postgres -d postgres
パスワードを求められたら、作成時に設定したパスワードを入力してください。
8. テーブルの作成とデータ登録
テーブル作成
以下のSQLコマンドを実行して、employeesテーブルを作成します。
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(10) NOT NULL
);
データの登録
次に、以下のSQLコマンドでテーブルにデータを登録します。
INSERT INTO employees (name) VALUES
('aaaaa'),
('aaaaa'),
('aaaaa');
登録データの確認
以下のSQLコマンドで、登録したデータのうち最初の1行を確認できます。
SELECT * FROM employees LIMIT 1;
表示例:
id | name
----+-------
1 | aaaaa
以上で、AWS上におけるWebサーバー環境およびPostgreSQLデータベースの構築になります。
Discussion