LoginSignup
2
0

AWSのEC2でWebサーバ(Apache)を構築する方法

Last updated at Posted at 2024-04-24

はじめに

仕事でAWSのEC2にApacheのWebサーバを構築してテスト環境を作る機会があり、自分の備忘録を兼ねて手順を記載します。
※この記事は2024年4月頃の情報を基に作成しています

前提

・AWSアカウントがあること(VPC、EC2の操作権限があること)
・TeraTarmをインストール済みであること※TeraTarmを使って作成したEC2にアクセスします
・使用するIPv4のCIDRを決めておく※使用するプライベートアドレスの範囲を決めておく
 今回は10.1.1.0/24を使用します

アーキテクチャ図イメージ図4.drawio.png

やること

①VPCの作成
②セキュリティグループの作成
③EC2の作成
④EC2にApacheをインストール

手順

①VPCの作成

AWSにログインし検索ウィンドウで「VPC」と検索します。
「VPCの作成」を押下します。
下記の画面に遷移しますので、ここでは以下のように設定します。
イメージ図4.drawio.png
・「VPCなど」を選択※サブネットやルートテーブルなど必要な設定が一緒に作成されます。
・タグ名はここでは「TEST」としています。
・IPv4のCIDRブロックは事前に決めておいた「10.1.1.0/24」とします。
・今回IPv6は使用しないため、CIDRブロックなしを選択
・テナンシーはデフォルトを選択(ハードウェアを専用するか共用するかを選択します。デフォルトは共用)
・今回はテスト環境のためAZ(アベイラリティゾーン)は1としています

続いて以下を設定します。
イメージ図4.drawio.png
・パブリックサブネットは今回1つ使用します。
・プライベートサブネットは今回使用しないため「0」とします
・NATゲートウェイも使用しないため「なし」を選択します
・VPCエンドポイントも使用しないため「なし」を選択します
設定が終わったら「VPCを作成」を押下します。
するとVPCワークフローの作成が実行され、数十秒でVPCが作成されます。
作成が終わると「TEST-vpc」という名前のVPCができていると思います。

②セキュリティグループの作成

メニューからセキュリティグループを選択します。
セキュリティグループは通信をフィルタリングする機能です。
イメージ図4.drawio.png
・セキュリティグルー名を作成します。ここでは「TEST-SG01」としています。
・説明を記載します。ここでは「test」としています。
・VPCは先ほど作成したVPCを選択してください。ここでは「TEST-vpc」を選択。
続いてイインバウンドルールとアウトバウンドルールを作成します。
スクリーンショット 2024-04-24 145246.png
・インバウンドルールは、このあとsshで接続するため「SSH」のみ許可します。
・インバウンドルールの「ソース」は「Anywhere-IPv4」を選択
・アウトバウンドルールはすべてのトラフィックを許可しています。
・アウトバウンドルールの「送信先」は「Anywhere-IPv4」を選択
※アウトバウンドルールを特定の通信のみに限定すると、この後で実施するApacheのインストール作業時にエラーが出る可能性があります。
ルール作成時に送信元を全て(0.0.0.0/0)にすると警告が出ますが、今回は気にせずこのまま作業を進めます。
右下にある「セキュリティグループを作成」を押下すると新たなセキュリティグループが作成されます。

③EC2の作成

EC2を作成します。検索窓で「EC2」と検索し「インスタンスを起動」を押下します。
スクリーンショット 2024-04-24 145246.png
・EC2の名前を記載します。ここでは「TEST-ec2」とします。
・AWSマシンイメージ(AMI)を選択。ここではAmazon Linux2 AMI(HVM)を選択しています。
続いてSSHでログインするためのキーペアを作成します。
スクリーンショット 2024-04-24 110252.png
今回は新しいキーペアを作成するため「新しいキーペアの作成」を押下します。
スクリーンショット 2024-04-24 110308.png
・キーペア名を記載します。ここでは「TEST」とします。
・キーペアのタイプを選択します。ここでは「RSA]を選択しています。
・プライベートキーファイル形式を選択します。ここでは「.pem」を選択します。
「キーペアの作成」を押下すると作成されたキーペアがダウンロードされますので
適当なところに保存してください。※後ほどSSHでログインする際に必要になります。
スクリーンショット 2024-04-24 110322.png

続いてネットワーク設定を行います。

作成したPVCがデフォルトのネットワークになっていない場合は、ネットワーク設定の横にある「編集」を押下し
設定を行ってください。
スクリーンショット 2024-04-24 110833.png
先ほど作成したVPCを選択します。
すると関連したサブネットなどが自動で選択されます。
スクリーンショット 2024-04-24 110859.png
・パブリックIPの自動割り当てを「有効」にします。有効にすることで、インターネットで接続する際のパブリック IPv4 アドレス(GIP)が自動で付与されます。
・「既存のセキュリティグループ」を選択します。ここでは先ほど作成した「TEST-SG01」を選択します。
「インスタンスを起動」を押下します。数分待つと、以下のように作成したEC2が実行中となり、2/2チェックにも合格したメッセージが出ます。
スクリーンショット 2024-04-24 111208.png
作成したEC2の詳細画面にパブリック IPv4 アドレスがありますのでそのアドレスをコピーします。
TeraTarmを起動します。TCP/IPを選択し、ホストに先ほどコピーしたパブリックIPv4アドレスを記載します。サービスの「ssh」を選択し「OK」を押下します。
アクセスできる状態であればサーバー側のホスト鍵指紋のハッシュアルゴリズムなどを聞かれますので「SHA256」を選択し「続行」を押下します。
続いてユーザー名を入力します。デフォルトでは「ec2-user」となっています。
※インスタンスを選択→アクション→接続でユーザー名の確認ができます。
スクリーンショット 2024-04-24 111336.png
認証方式でRSA/DSA/ECDSA/ED25519鍵を使うを選択し、先ほど作成したキーペアのキー(.pem)を選択し「OK」を押します。
無事ログインができるとTeraTarmが以下のような画面になります。
スクリーンショット 2024-04-24 111359.png

④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サーバ構築は初めての経験だったので、初回の構築には時間が掛かりましたが色々と勉強になりました。
本記事が他の方のお役に立てれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0