0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2を利用してウェブサイトを公開する方法②EC2作成編

0
Posted at

この記事ではEC2を利用してウェブサイトを公開する方法のフェーズ2として、フェーズ1で作成したVPCにEC2を作成していきます。
EC2を利用してウェブサイトを公開する方法(モノローグ)
EC2を利用してウェブサイトを公開する方法①VPC作成編

構成図(モノローグと同じものです)

EC2ウェブサイト公開最低構成.drawio.png

前提

踏み台サーバやwebサーバの操作にはTera Termを使用しています。

作成するもの

EC2

AWSクラウド上で利用できる仮想サーバーです。
必要な時に、必要なスペックのサーバーを数分で起動・削除できます。用途に合わせてOSや性能を選択して構築します。

本構成では、役割の異なる2種類のEC2を作成します。

  • 踏み台サーバー (Public):
    管理者がPrivate SubnetにあるWebサーバーにログインするための中継役です。Public Subnetに配置し、特定の管理者IPからのみ接続を許可することで、セキュリティを担保します。
    近年では踏み台サーバの利用は減ってきているといわれていますが、まだまだ使われている手法です。

  • Webサーバー (Private):
    実際のWebサイトを動かすサーバー。外部から直接アクセスされないようPrivate Subnetに配置し、ALB経由でのみユーザーのリクエストを受け取ります。

構築作業

踏み台サーバ作成

  1. EC2作成
    EC2のインスタンスのインスタンスを起動から作成
    image.png
    名称とOSイメージを選択今回AMIではAmazon Linux 2023 kernel-6.1 AMIを使用します。
    image.png
    インスタンスタイプはt3.microを選択します。(必要な性能のものを選んでください)
    image.png
    キーペアを作成します。ここで作成したキーペアを使ってEC2にアクセスするのでしっかり保管してください。
    image.png
    ネットワークを編集から設定します。
    VPCは前フェーズで作成したVPC、Subnetはweb-test-public-a-1、セキュリティーグループにweb-test-sg-bastionを指定します。
    パブリックIPは後程EIPを割り当てるので無効化でいいです。
    image.png
    必要なだけのストレージを指定してください
    image.png
    インスタンスを起動で作成完了です。
  2. EIP設定
    踏み台サーバに割り当てるEIPを取得します
    ネットワーク&セキュリティにElastic IPがあります。
    image.png
    Elastic IPの割り振りから割り振るを押すだけで取得できます。
    image.png
    作成されたEIP(関連付けが無いEIP)を選択してアクションからElastic IPアドレスを関連付けるから踏み台サーバにEIPを関連付けます
    image.png
    インスタンスで作成したweb-test-ec2-bastionと、このEC2のプライベートIPアドレスを選択します。
    image.png

踏み台サーバ接続確認

  1. Tera Termを起動して踏み台サーバ割り当てたEIPに接続します。
    ユーザー名はdefaultはec2-userになっています。
    認証方法を鍵を使うにして、キーペア作成でダウンロードしたkeyを使用します。
    image.png
    こんな感じで接続出来たらOKです。
    image.png

web1サーバ作成

  1. EC2作成
    踏み台サーバと同様にインスタンスを作っていきます
    名前はweb-test-ec2-web1
    ネットワーク設定でsubnetをweb-test-private-a-1
    sgはweb-test-sg-web
    その他は踏み台と同じです。
    (今回はキーペアも踏み台と同じものを使用していますが、本来は別でweb用を作ったほうがセキュアです。特に踏み台とwebでアクセスできる人を区別したい場合別のキーペアを作成する必要があります)
    image.png

  2. web1サーバへの接続確認
    作成したインスタンスのプライベートIPアドレスを確認します。
    image.png
    Tera Termを利用して踏み台サーバ経由でアクセスします。
    設定のSSHポート転送>追加で転送の設定を追加します。
    ローカルのポートに2222、リモート側ホストにweb1のプライベートIPアドレス、ポートを22に設定します
    image.png
    保存したらファイル>新しい接続でweb1にアクセスします。
    ホストをlocalhost、TCPポートを2222に設定して接続します。
    SSH認証画面は踏み台サーバと同様に入力してください。
    image.png
    このように接続出来たらOKです
    image.png

  3. apacheのインストール
    下記のコマンドでインストールを行う

  # パッケージリストの更新
sudo dnf update -y

# Apache (httpd) のインストール
sudo dnf install -y httpd

# Apache の起動
sudo systemctl start httpd

# 自動起動の設定(再起動後も有効にする)
sudo systemctl enable httpd

sudo systemctl status httpdで設定を確認しましょう
image.png
enabledになっていることと、Activeになっていることが確認できればOKです。
4. テスト画面を設定
とりあえず画面が移ればいいのでecho "test1" | sudo tee /var/www/html/index.htmlでtest1とだけ表示されるページを作成します。
curl localhostでtest1が返ってくれば完了です。
image.png

web2サーバ作成

  1. web1のAMIから作成
    web2にもweb1と全く同じ設定をしていきたいのですが、設定内容が多くなればなるほど手間なうえにミスが起きます。また今回は2つですがもっと増やす場合、手動での複製は推奨されません。
    そのため作成したweb1のイメージを取得して複製していきます。
    web1のインスタンスを指定して、アクション>イメージとテンプレート>イメージを作成
    image.png
    イメージ名と説明を入力してイメージを作成します、
    image.png
    イメージ>AMIに取得したイメージが保存されています。
    image.png
    ステータスが保留中から利用可能に変わったらAMIからインスタンスを起動します。
    名前をweb-test-ec2-web2、ネットワーク設定もweb1と同様に設定します。subnetはweb-test-private-c-1にします。
    image.png

  2. web2サーバへの接続確認
    web1と同じように接続します。
    このようにアクセス出来たらOKです
    image.png

  3. 表示画面を変更する
    本来ならここで構築完了なのですが、次のフェーズでELBを設定する際に確認するために表示する画面の文字を変更します。
    sudo vi /var/www/html/index.htmlでtest2に文字を変更してください。
    image.png
    test2が返ってきたら完了です。

まとめ

webサイトを公開するためのwebサーバが完成しました。
ここまでできればもうほとんど完成です。次回ELBを設定したらここで設定したtest1,test2の文字がブラウザで確認できるようになります。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?