はじめに
仕事でAWSのEC2にApacheのWebサーバを構築してテスト環境を作る機会があり、自分の備忘録を兼ねて手順を記載します。
※この記事は2024年4月頃の情報を基に作成しています
前提
・AWSアカウントがあること(VPC、EC2の操作権限があること)
・TeraTarmをインストール済みであること※TeraTarmを使って作成したEC2にアクセスします
・使用するIPv4のCIDRを決めておく※使用するプライベートアドレスの範囲を決めておく
今回は10.1.1.0/24を使用します
アーキテクチャ図
やること
①VPCの作成
②セキュリティグループの作成
③EC2の作成
④EC2にApacheをインストール
手順
①VPCの作成
AWSにログインし検索ウィンドウで「VPC」と検索します。
「VPCの作成」を押下します。
下記の画面に遷移しますので、ここでは以下のように設定します。
・「VPCなど」を選択※サブネットやルートテーブルなど必要な設定が一緒に作成されます。
・タグ名はここでは「TEST」としています。
・IPv4のCIDRブロックは事前に決めておいた「10.1.1.0/24」とします。
・今回IPv6は使用しないため、CIDRブロックなしを選択
・テナンシーはデフォルトを選択(ハードウェアを専用するか共用するかを選択します。デフォルトは共用)
・今回はテスト環境のためAZ(アベイラリティゾーン)は1としています
続いて以下を設定します。
・パブリックサブネットは今回1つ使用します。
・プライベートサブネットは今回使用しないため「0」とします
・NATゲートウェイも使用しないため「なし」を選択します
・VPCエンドポイントも使用しないため「なし」を選択します
設定が終わったら「VPCを作成」を押下します。
するとVPCワークフローの作成が実行され、数十秒でVPCが作成されます。
作成が終わると「TEST-vpc」という名前のVPCができていると思います。
②セキュリティグループの作成
メニューからセキュリティグループを選択します。
セキュリティグループは通信をフィルタリングする機能です。
・セキュリティグルー名を作成します。ここでは「TEST-SG01」としています。
・説明を記載します。ここでは「test」としています。
・VPCは先ほど作成したVPCを選択してください。ここでは「TEST-vpc」を選択。
続いてイインバウンドルールとアウトバウンドルールを作成します。
・インバウンドルールは、このあとsshで接続するため「SSH」のみ許可します。
・インバウンドルールの「ソース」は「Anywhere-IPv4」を選択
・アウトバウンドルールはすべてのトラフィックを許可しています。
・アウトバウンドルールの「送信先」は「Anywhere-IPv4」を選択
※アウトバウンドルールを特定の通信のみに限定すると、この後で実施するApacheのインストール作業時にエラーが出る可能性があります。
ルール作成時に送信元を全て(0.0.0.0/0)にすると警告が出ますが、今回は気にせずこのまま作業を進めます。
右下にある「セキュリティグループを作成」を押下すると新たなセキュリティグループが作成されます。
③EC2の作成
EC2を作成します。検索窓で「EC2」と検索し「インスタンスを起動」を押下します。
・EC2の名前を記載します。ここでは「TEST-ec2」とします。
・AWSマシンイメージ(AMI)を選択。ここではAmazon Linux2 AMI(HVM)を選択しています。
続いてSSHでログインするためのキーペアを作成します。
今回は新しいキーペアを作成するため「新しいキーペアの作成」を押下します。
・キーペア名を記載します。ここでは「TEST」とします。
・キーペアのタイプを選択します。ここでは「RSA]を選択しています。
・プライベートキーファイル形式を選択します。ここでは「.pem」を選択します。
「キーペアの作成」を押下すると作成されたキーペアがダウンロードされますので
適当なところに保存してください。※後ほどSSHでログインする際に必要になります。
続いてネットワーク設定を行います。
作成したPVCがデフォルトのネットワークになっていない場合は、ネットワーク設定の横にある「編集」を押下し
設定を行ってください。
先ほど作成したVPCを選択します。
すると関連したサブネットなどが自動で選択されます。
・パブリックIPの自動割り当てを「有効」にします。有効にすることで、インターネットで接続する際のパブリック IPv4 アドレス(GIP)が自動で付与されます。
・「既存のセキュリティグループ」を選択します。ここでは先ほど作成した「TEST-SG01」を選択します。
「インスタンスを起動」を押下します。数分待つと、以下のように作成したEC2が実行中となり、2/2チェックにも合格したメッセージが出ます。
作成したEC2の詳細画面にパブリック IPv4 アドレスがありますのでそのアドレスをコピーします。
TeraTarmを起動します。TCP/IPを選択し、ホストに先ほどコピーしたパブリックIPv4アドレスを記載します。サービスの「ssh」を選択し「OK」を押下します。
アクセスできる状態であればサーバー側のホスト鍵指紋のハッシュアルゴリズムなどを聞かれますので「SHA256」を選択し「続行」を押下します。
続いてユーザー名を入力します。デフォルトでは「ec2-user」となっています。
※インスタンスを選択→アクション→接続でユーザー名の確認ができます。
認証方式でRSA/DSA/ECDSA/ED25519鍵を使うを選択し、先ほど作成したキーペアのキー(.pem)を選択し「OK」を押します。
無事ログインができるとTeraTarmが以下のような画面になります。
④EC2にApacheをインストール
TeraTarmでEC2にログインしている状態で以下のコマンドを入力します。
1、ルートユーザに切り替えます
sudo su root
2、システムにインストールされているすべてのパッケージを確認し、それらを最新のバージョンに更新します
※-yは確認プロンプトを表示させず、自動的にすべての変更を受け入れるオプションです。
yum -y update
3、yumを使用して、HTTPサーバー(httpd)をインストールします
yum -y install httpd
4、Apacheを起動します
systemctl start httpd
※起動時は何も表示が出ません
5、Apacheが正常に起動したか確認します
systemctl status httpd
Active: active (running)となっていれば正常に起動しています。
※yumのupdateやinstall時にエラーになる場合は、セキュリティグループのアウトバウンド設定を確認してみてください。
まとめ
Webサーバ構築は初めての経験だったので、初回の構築には時間が掛かりましたが色々と勉強になりました。
本記事が他の方のお役に立てれば幸いです。