AWS EC2でのWebアプリケーションホスティング

AWS EC2上でのWebアプリケーションホスティング、Apache設定、FTP構成、Load BalancerおよびRoute53統合の包括的ガイド。

N
Necmettin Demir
2023年7月21日
読み込み中...

AWS EC2でのWebアプリケーションホスティング

AWS EC2 Web Hosting
AWS EC2 Web Hosting
AWS環境でWebアプリケーションをホストする方法はたくさんあります。Webアプリケーションは従来のWebサイトまたはAPIプロジェクトの場合があります。どちらのタイプも以降「Webアプリケーション」(web app)と呼びます。

はじめに

AWS環境でWebアプリケーションをホストする方法はたくさんあります。Webアプリケーションは従来のWebサイトまたはAPIプロジェクトの場合があります。どちらのタイプも以降「Webアプリケーション」(web app)と呼びます。AWSでWebアプリケーションをホストするために適用できるいくつかの方法を以下にリストします:
  1. S3バケットでWebアプリケーションをホスティング
  2. ECS、EKS、またはFargateコンテナでWebアプリケーションをホスティング
  3. Elastic BeanstalkでWebアプリケーションをホスティング
  4. EC2上で直接Webアプリケーションをホスティング
[!NOTE] AWSでコンテンツをホストするには、オプション1、2、3がモダンなアプローチですが、この記事では、レガシーシステムで多く作業してきたが、古い習慣でAWS環境に移行したい方々を対象としています!
私たちの目的は、Route53、Application Load Balancer、Security GroupsなどのフローをEC2と一緒に素早く紹介することです。
この記事では最後のオプションを検討します。 EC2で使用できるオペレーティングシステムはたくさんあります。「Free Tier」(無料利用枠)内で利用可能な最低構成のLinuxを使用します。AWS Free Tierの詳細についてはこちらをクリックしてください。
Amazon EC2は、Webアプリケーションをホストするために直接使用できます。この記事では、このようなタスクを実行するために必要なすべての手順をステップバイステップで説明します。

背景

何をするのか?

基本的なアーキテクチャは以下のようになります:
システムアーキテクチャ
システムアーキテクチャ
画像-001:メインシステムビュー
あなたの目的がWebサイトをAWS EC2マシンでホストすることだとしましょう。アプリケーションを簡略化するため、AWS EC2のApache Webサーバーで静的HTMLページを公開します。ApacheのデフォルトのwwwフォルダにFTP経由でアクセスできるようにします。これらの要件に加えて、AWS Route53を介してドメイン名(domain)をこのWebアプリケーションにルーティングします。
画像-001に示されているアーキテクチャを設計するために、グレーの円内の番号順にAWS要素を作成します。
ドメイン名がWELR.comで、その動作要素をEC2でホストしたいとしましょう。
WELR.comのコンテンツをAWS EC2でホストするためのすべての手順は以下のようになります。

ステップ1:AWSでセキュリティグループを作成する

このセキュリティグループはEC2用に使用されます。セキュリティグループは、関連付けられているオブジェクトのファイアウォールと考えることができます。
すべてのインバウンド(inbound)ポートを以下のように設定します:
  • 20-21(FTP)
  • 1024-1048(FTP)、オプション
  • 22(SSH)
  • 80(HTTP)
  • 8080(HTTPカスタム)、オプション
  • 443(HTTPS)
以下の画像の赤い四角形は、関連するセキュリティグループを介したALBからEC2へのフローを示す点で重要です。
インバウンドルール
インバウンドルール
画像-002:SG-for-EC2-for-WELRのインバウンドルール

ステップ2:EC2インスタンスの作成

AWSでEC2インスタンスを作成するのは簡単なプロセスです。以下の画像の右上隅にあるConnect(接続)ボタンは、EC2に接続するために使用されます。
EC2作成
EC2作成
画像-003:EC2-for-WELR
EC2-for-WELRにすべての要件をインストールします。
まず、EC2コマンドラインに接続する必要があります。このステップを実行する方法はたくさんありますが、最も簡単なのはAWS Webコンソールから直接接続することです。
EC2接続
EC2接続
画像-004:EC2-for-WELRへの接続
Connectボタンを押すと、ec2-userとしてEC2コマンドラインに接続されます。

2.1- Apacheのインストール

TEXT
> sudo s
> yum update -
> yum install -y httpd.x86_6
> systemctl start httpd.servic
> systemctl enable httpd.service
すべてのWebアプリケーションファイルはApacheのデフォルトwebフォルダにあります。
Apacheのデフォルトwebフォルダは/var/www/htmlディレクトリです。

2.2 - FTPのインストール

TEXT
> sudo su
> yum update -y
> yum install vsftpd
		
> sudo vi /etc/vsftpd/vsftpd.conf
FTP設定ファイルで以下に示すいくつかの変更を行う必要があります。
設定ファイルでは、これらすべての行が示されているように存在する必要があります。viエディタを使用するには、その使用方法を知っている必要があります。viエディタを初めて使用する場合は、こちらをご覧ください。
TEXT
# 以下のすべての行から#記号を削除してください
anonymous_enable=NO
#
local_enable=YES
#
write_enable=YES
#
local_umask=022
#
dirmessage_enable=YES
#
xferlog_enable=YES
#
connect_from_port_20=YES
#
chroot_local_user=YES
write_enable=YES
allow_writeable_chroot=YES
#
listen=NO
#
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=18.170.116.xxx
vsftpdサービスを再起動するには、以下のいずれかを使用できます:
TEXT
> /etc/init.d/vsftpd restart
または:
TEXT
> systemctl restart vsftpd
FTP用のユーザーを追加するには、EC2コマンドラインで以下を実行します:
TEXT
> adduser awsftpuse
> passwd awsftpuse
> usermod -a -G root awsftpuser
> usermod -d /var/www/html/ awsftpuse
> chown -R awsftpuser /var/www/htm
> systemctl restart vsftpd

2.3 - FTPクライアントのインストール

例として、Windows上のFilezillaクライアント。
AWSですべての要素を作成した後、FTPクライアントで接続してファイルをアップロードしてみてください。index.htmlファイルをEC2のFTP webフォルダにアップロードできるはずです。

ステップ3:ALB用のセキュリティグループを作成する

すべてのインバウンド(inbound)ポートを以下のように設定します:
  • 20-21(FTP)
  • 1024-1048(FTP)、オプション
  • 22(SSH)
  • 80(HTTP)
  • 8080(HTTPカスタム)、オプション
  • 443(HTTPS)
ALBインバウンドルール
ALBインバウンドルール
画像-005:SG-for-ALB-for-WELRのインバウンドルール

ステップ4:ターゲットグループの作成

ターゲットグループ
ターゲットグループ
画像-006:Target Group TG-for-WELR

ステップ5:Application Load Balancerの作成

このALBにはTG-for-WELRターゲットグループが必要です。
ターゲットグループ(Target group)はEC2グループです。ただし、現時点ではEC2-for-WELRインスタンスのみが含まれています。
さらに、このALBにはSG-for-ALB-for-WELRセキュリティグループが必要です。
画像-007:Application Load Balancer ALB-for-WELR
ALB作成
ALB作成

ステップ6:セキュリティグループ間の許可

SG-for-EC2-for-WELRに、SG-for-ALB-for-WELRからのすべてのTCPリクエストを受け入れるようにインバウンドルールを追加します。
セキュリティグループ間フロー
セキュリティグループ間フロー
画像-008:セキュリティグループを介したALBからEC2へのフローの許可

ステップ7:Route53 Hosted Zoneの作成

以下のように4つのレコード(record)を持つ必要があります:
  • NSとSOAは自動的に作成されます
  • レコードAを作成します。以下の画像のように
  • レコードCNAMEを作成します - welr.com
画像-009 - Route53レコード
Route53レコード
Route53レコード
NSアドレスは、ドメイン名管理インターフェースでドメイン名をEC2 ApacheでホストしているWebアプリケーションにルーティングするために使用できます。

結論

この記事の冒頭で述べたように、任意のクラウド環境でWebアプリケーションをホストする方法はたくさんあります。AWS EC2でいくつかのレビューを行いました。ご覧のとおり、WebアプリケーションのワーキングエレメントをFTP経由でApacheに手動でデプロイすることを想定しています。ただし、任意のCI/CDツールでFTPコマンドを使用してこのプロセスを自動化できます。
この記事の主な目的は、Route53とLoad Balancerの背後にあるEC2でWebアプリケーションをAWS環境でホストする方法を示すことです。

学んだこと:

  • EC2インスタンスの作成と構成
  • Apache Webサーバーのインストール
  • FTP構成とユーザー追加
  • Security Group設定
  • Application Load Balancerのセットアップ
  • Route53でのドメインルーティング

☁️ クラウドコンピューティングサービス

AWS、Azure、Google Cloudプラットフォームでのインフラストラクチャ設計、移行、管理、最適化サービスを提供しています。

サービスを見る

📞 お問い合わせ

AWSとクラウドコンピューティングソリューションの詳細については、チームにお問い合わせください。

お問い合わせ