3日間のAWSの研修を受けたので、さっそくXserverで動いているWordPressをAWSに移行してみようと思います。構成は WordPressをAWSに移行する(AWS移行#0) で紹介しています。
今回は以下赤枠で囲った部分をゴールとしてEC2起動のための環境を構築します。VPC、セキュリティグループ、EC2インスタンスを作成して、EC2インスタンスにパブリックIPを割り当ててEC2にブラウザで接続できるようになることをゴールとします。(ロードバランサーは次回以降で作成します)
1. VPCの作成
まずはVPCを作成します。VPCはAWS内で仮想ネットワークを構築するためのサービスです。
今回は単一ネットワーク内にすべてのサービスを立てますので、作成するVPCは1つです。
今回作成するVPC内にはインターネットからアクセス可能なパブリックサブネットとアクセス不可のプライベートサブネットを作成します。冗長構成とするため、それぞれのサブネットを2つずつ作成していきます。
手順
AWSトップ画面からナビゲーションバーで「VPC」を検索もしくは選択し、
VPCダッシュボード画面で「VPC」を作成をクリックする。
以下のようにで設定し、画面下部の「VPCを作成」をクリックする。
遷移後の画面で成功と表示されていればOK。
作成するリソース:VPCなど(サブネットなども合わせて作成する)
名前タグの自動生成:自動生成(サブネットやルートテーブル名を指定した名称で自動設定する)
VPCエンドポイント:なし(S3は利用しないため不要)
上記以外の設定:デフォルト
2. セキュリティグループの作成
次にセキュリティグループを作成します。セキュリティグループはEC2のインスタンスなどのリソースに対して設定する仮想ファイアウォールで、外部と送受信するIPアドレスやポートなどを制限することができます。今回はEC2インスタンスに設定するセキュリティグループを作成します。
(今回は作りやすいようにHTTPのインバウンドを許可しますが、将来的にはHTTPS化する予定です)
手順
VPCダッシュボード画面で、左側のナビゲーションペインから[セキュリティ]-[セキュリティグループ]をクリックし、ページ右上の「セキュリティグループを作成」をクリックする。
以下のように設定し、画面下部の「セキュリティグループを作成」をクリックする。
遷移後の画面で「セキュリティグループが正常に作成されました」と表示されていればOK。
基本的な詳細
– VPC:①で作成したVPC
インバウンドルール
– SSH
– タイプ:SSH
– ソース:AnywhereIPv4(0.0.0.0/0)
– HTTP
– タイプ:HTTP
– ソース:AnywhereIPv4(0.0.0.0/0)
上記以外の設定:デフォルト
SSH(22番ポート)の設定を許可しないと、EC2 Instans Connectを使用したブラウザベースの接続ができません。
3. EC2の作成
次にEC2インスタンスを作成します。EC2はAWS上の仮想サーバーです。①で作成したVPC内に②のセキュリティグループを適用して利用します。
今回はAWSで用意されている1年間の無料試用枠で利用できるサイズでEC2を作成します。サーバーの設定が完了してから、インスタンスのコピーを副系として運用しようと思いますので今回作成するEC2インスタンスは1つです。
手順
AWSトップ画面からナビゲーションバーで「EC2」を検索もしくは選択し、
EC2ダッシュボード画面で「インスタンスを起動」をクリックする。
以下のように設定し、画面右部の「インスタンスを起動」をクリックする。
遷移後の画面で「インスタンスの起動を正常に開始しました」と表示されていればOK。
アプリケーションおよびOSイメージ(Amazonマシンイメージ)
– Amazon マシンイメージ:Amazon Linux 2023 AMI(無料試用枠のタイプを選択)
インスタンスタイプ
– インスタンスタイプ:t2.micro(無料試用枠のタイプを選択)
ネットワーク設定
– VPC:①で作成したVPC
– サブネット:①で作成したパブリックサブネットのどちらか
– ファイアウォール(セキュリティグループ):既存のセキュリティグループを選択する
– 共通のセキュリティグループ:②で作成したセキュリティグループ
上記以外の設定:デフォルト
4. ElasticIPの割り当て
次に固定のパブリックIPを割り当てて、EC2に関連付けます。EC2 Instans Connectを使用して接続してEC2を操作するために必要なものです。
独自ドメインをDNSレコードに登録する際にも必要になります。
手順
Elastic IP の割り当て
EC2ダッシュボード画面で、左側のナビゲーションペインから[ネットワーク&セキュリティ]-[Elastic IP]をクリックし、ページ右上の「Elastic IP アドレスを割り当てる」をクリックする。
すべてデフォルトの設定で、画面下部の「割り当て」をクリックする。
遷移先の画面で「Elastic IP アドレスが正常に割り当てられました。」と表示されればOK。
Elastic IPに無料試用枠はありません。IPを割り当てた瞬間から $0.005/h(2024年7月時点) の従量課金が発生します。
EC2への関連付け
割り当てたElastic IPを選択し、画面右上から[アクション]-[Elastic IP アドレスの関連付け]を選択する。
以下のように設定し、画面下部の「関連付ける」をクリックする。
遷移先の画面で「Elastic IP アドレスが正常に関連付けられました。」と表示されればOK。
インスタンス:③で作成したEC2インスタンス
上記以外の設定:デフォルト
5. EC2インスタンスに接続
最後にEC2インスタンスに接続してみます。今回はEC2 Instans Connectを使用し他ブラウザベースの接続をします。
先述の通り、22番ポートのインバウンドを許可しないと接続ができないため注意してください。私はここで躓いて沼にはまりかけました。
手順
EC2ダッシュボード画面で、左側のナビゲーションペインから[インスタンス]-[インスタンス]をクリックし、画面右上の「接続」をクリックする。
インスタンスに接続画面でデフォルトの設定のまま画面下部の「接続」ボタンをクリックする。
下の画像のような画面に接続できればOK。
インスタンスに接続できない、もしくは画像のような画面が表示されない場合は以下を確認してください。
・インスタンスの状態が「実行中」になっているか
・Elastic IPがEC2に関連付けられているか
・セキュリティグループでSSH(22番ポート)のインバウンドが許可されているか
コメント