🐶

【AWS】EC2を使って、WEBサイトを公開する流れ

2023/07/09に公開

こんにちは、ぐらじえです。

今回は、実際にAWSサービスの1つである、EC2というものを使って、WEBサイトをインターネット上に公開してみたので、その手順を紹介できればと思います。

私自身、AWS認定の取得に向けて勉強している身なのですが、なんか座学だけだとAWSが身についている気になれず、実際にサービスを触ってみることにしました。
自分のアウトプットも兼ねての紹介ですが、同じような気持ちの方も少なからずいると思うので、そんな方々の参考になれば幸いです。

前提

今回の作業を行うにあたって、いくつか前提条件があります。

  1. AWSアカウントが作成済みである
  2. 無料利用枠のEC2を使用します
  3. ドメインの取得などは行いません!
  4. 今回の構成では「セキュリティ」、「冗長性」は考慮していません
  5. 「Tera Term」というツールを使用します

1番と5番に関しては事前準備が必要になるので、このブログを見ながらWEBサイト構築をされる方は、準備のほうよろしくお願いします、、

構成図

今回の作業で作成する、構成図になります。
かなりシンプルなので、はじめてAWSサービスを触る方でも簡単に理解できると思います。

デフォルトVPCの中のサブネットの中にEC2インスタンスを作成するという感じで、VPCとサブネットはアカウント作成時にデフォルトで作成されているはずなので、今回はEC2インスタンスのみ作成します。

構成図

EC2を作成する

ここからは、実際にAWSサービスに触れていきます。
まずは、AWSマネジメントコンソールから、EC2を選択し、[インスタンスを起動]をクリック。

EC2作成


EC2の名前や性能などを設定

EC2設定

名前とタグ サーバーの名前。任意です。
アプリケーションおよび OS イメージ (Amazon マシンイメージ) "Amazon Linux 2 AMI"
インスタンスタイプ "t2.micro"

そして、今回はEC2インスタンスに対してSSHでアクセスを行うので、それに必要な「キーペア(ログイン)」の作成を行います。
キーペア名(任意)だけ入力して、[キーペアを作成]をクリック。

キーペアの作成


「ネットワーク設定」に関しては、デフォルトで"SSH"が許可されている状態です。
今回はブラウザにHTTP経由でWEBサイトを表示させるので、「HTTPトラフィックを許可」にもチェックを入れます。

ネットワーク設定


「ストレージを設定」以降の設定は、特に触る必要がないので、そのまま[インスタンスを起動]をクリックして、EC2の作成を完了します。

インスタンス起動

EC2のセットアップをしてWEBサイトを公開する

Tera TermでEC2に接続

サーバーであるEC2の作成が終わったので、まずは、Tera Termを使って、EC2インスタンスにSSHアクセスします。
EC2インスタンスに接続する際は以下の2つの情報を使います。

  1. キーペア
  2. パブリック IPv4 アドレス

キーペア

EC2作成の際に下記のような名前でダウンロードフォルダにダウンロードされていると思います。
"ec2-ssh.pem"

パブリック IPv4 アドレス

マネジメントコンソールのEC2インスタンス情報の「ネットワーキング」のタブから確認できます。

パブリック IPv4 アドレス


ここからはTera Termの操作に入ります。

TeraTerm接続01
TeraTerm接続02

ホスト パブリック IPv4 アドレス
ユーザ名 "ec2-user"
秘密鍵 ダウンロードしてきたpemキー

OKをクリックすると作成したEC2インスタンスにアクセス完了です!

TeraTerm接続完了

Apacheのインストール

次にWebサーバソフトとして、Apacheを導入していきます。
インストールとバージョン確認のコマンドです。
インストール後にバージョン確認して、"2.4.54"が帰ってくればApacheのインストールは終了です。

$ sudo yum install httpd
$ httpd -v

Apacheのインストール

インストールが確認出来たら、以下コマンドを実行してApacheの起動を完了します。

$ sudo systemctl start httpd

これでApacheの導入は終了です。
ちなみにこの段階Apacheが正常に起動できていれば、「パブリック IPv4 アドレス」をブラウザに入力すると、Apacheのテストページが表示されます。

Apacheテストページ

WEBサイトのアップロード

今回アップロードするWEBサイトですが、無料でダウンロードしてくることができる、HTMLテンプレートを使用させていただこうと思います。

https://f-tpl.com/tpl_096/

もし、特にアップロードするHTMLファイル等がない方は活用してみてください。

ここからアップロードしていくわけなのですが、上記HTMLテンプレートを使用する場合は、ダウンロードしてきたzipファイルをドラッグアンドドロップでTera Termに移動します。
特に何も触らなければ、zipファイルがホームディレクトリに転送されるので、そのままOKを押します。

ファイル転送

次にやることなのですが、流れとしては

  1. zipファイルを/var/www/html/へ移動させる。
  2. zipファイルを解凍してHTMLファイルが表示されるようにする。

この2工程になります。
仕組みとしては、"/var/www/html/"の配下にHTMLファイルを配置するとそのHTMLファイルがそのサーバーにブラウザ経由でアクセスした際に、表示されるという仕組みです。


  1. 特にファイル階層を移動してなければ、問題ありませんが下記コマンドでホームディレクトリに移動します。
$ cd ~
  1. zipファイルを/var/www/html/に移動させます。
$ sudo mv tpl_096.zip /var/www/html/
  1. /var/www/html/の階層に移動します。
$ cd /var/www/html
  1. zipファイルを解凍します。
$ sudo unzip tpl_096.zip
  1. この状態では、/var/www/html/tpl_096/の階層内にindex.htmlが配置されているので、/var/www/html/に配置するため、一つ上の階層に移動させます。
$ sudo mv tpl_096/* /var/www/html/
  1. lsコマンドでフォルダの中身を確認します。
$ ls

以下のようなファイルの配置になっていれば問題ないです。

ファイル確認

WEBサイトを確認

反映されているか確認

ここまでできれば、WEBサイトの構築は完了になります。
実際に、「パブリック IPv4 アドレス」にブラウザからアクセスしてみてください。
Apacheのテストページではなく、ダウンロードしてきたHTMLテンプレートがHTTP経由で表示されているはずです。

HTMLテンプレート

これで、一通りの流れが完了になります。
お疲れ様でした!!

リソースの削除

今回の構成では基本的にすぐには料金が発生しない構成ですが、一通り終えればEC2等は削除することを推奨します。

少しもったいない気もしますが、実際に削除していきます、、

今回作成して削除するもの

  1. EC2
  2. セキュリティグループ
  3. キーペア

EC2の削除

対象のインスタンスを選択して、[インスタンスの状態]から[インスタンスを終了]を選択。
即座には消えませんが、「シャットダウン中」となればそのうち削除されるので、ほっておいて大丈夫です。

EC2削除

セキュリティグループの削除

VPCのサービスに移動して、セキュリティグループをクリック。
"launch-wizard-1"のセキュリティグループを選択して、[アクション]をクリック。

[セキュリティグループを削除]をクリックして、削除する。

セキュリティグループ削除

キーペアの削除

EC2のサービスに移動して、キーペアをクリック。
対象のキーペアを選択して、[アクション]から[削除]をクリック。
この段階で、ダウンロードしてきたpemキーも削除してしまって大丈夫です。

キーペア削除

以上で今回作成したリソースの削除が完了になります。

まとめ

今回はEC2を使って、簡単なWEBサイトを構成するしてみました。
簡単な手順でしたが、これだけでも個人的には学ぶことがたくさんありました。

AWSの学習において、座学ばかりではなく、実際に触ってみることで理解度が格段にUPすると思っています。

みなさん、もう知っているかもしれませんがAWSが提供するハンズオンとして、こちらにも取り組むこともお勧めします。

https://aws.amazon.com/jp/events/aws-event-resource/hands-on/

初心者向けではありますが、より本格的なAWSサービスの構築が学習できるかと思います。

最後に、あくまで個人の勉強用で取り組んだものなので、間違えている箇所等もあるかもしれませんが、そこはAWS公式のHPなどと照らし合わせて学習してみてください。

質問やご指摘もお待ちしてます~。

Discussion