Amazon Web Servicesのロードバランサで負荷分散するWebサーバを構築しよう
今さら聞けない! Amazon Web Servicesによるクラウド超入門 第3回
ダウンロード サンプルファイル (953.0 B)
本連載は、IT業界に入ったばかりの新米アプリケーション開発者や、IT業界を目指す学生さんを対象とした、クラウドによるシステム構築講座です。Amazon Web Servicesを使ってクラウドシステム上に簡単なWebシステムを構築していきます。前回は、米Amazon社が提供するクラウドサービス「Amazon Web Services」の紹介と、代表的なサービスである「仮想サーバEC2」を使ってLinuxサーバを構築する手順を解説しました。今回は、構築したLinuxサーバ上にWebサーバを構築する手順を説明します。さらに、クラウド導入の大きなメリットである負荷分散システムの構築手順も説明します。
対象読者
本記事は、次の方を対象にしています。
- クラウドシステムがはじめての人
- 簡単なWebシステムのプログラミングを行ったことがある人
- システム基盤について勉強したいと思っている人
EC2のLinuxサーバ上にWebサーバを構築
前回、AWS上にEC2でLinuxサーバを構築し、そのサーバを起動/停止/再起動などの運用を行えるようにしました。今回は、このLinuxサーバの上にオープンソースのWebサーバである「Apache httpd」をインストールし、Webサーバを構築します。
ターミナルエミュレータのインストール
EC2のLinuxサーバをリモートで操作するときは、「ターミナルエミュレータ」というソフトウェアを使用します。本記事では、Windowsのターミナルエミュレータ「TeraTerm」を使用します(フリーソフトです)。こちらのTeraTermの配布サイトから最新版をダウンロードして、お手元のPCにインストールしてください。
TeraTermを起動すると、次の画面が表示されます。
ここで、ホスト(T)に、接続したいEC2インスタンスのPublic IPを指定して[OK]ボタンをクリックします。セキュリティの警告が出ますので、[続行]ボタンをクリックします。
SSH認証画面が表示されたら、以下を設定して[OK]ボタンをクリックします。
- ユーザ名:ec2-user
- RSA/DSA鍵を使う:秘密鍵にEC2インスタンスを生成したときにダウンロードしたアクセスキーのファイルを指定(AWSKey.pem)
なお、ここで、秘密鍵を選択するダイアログで、ファイル名を[すべてのファイル(*.*)]にしないと拡張子が.pemのファイルが表示されないので注意してください。
正しく接続されると、以下のようなEC2のインスタンスを操作するコンソールが開きます。
Apache httpdのインストール
それでは、Webサーバを構築するために、Apache httpdをインストールしましょう。作成したEC2インスタンスは、Amazon Linux AMIというRed HatをベースにしたLinux OSを使用して作成されています。そのため、Red Hatのコマンドがそのまま使用できます。
次のコマンドで、Apache httpdをインストールします。
$ sudo yum install httpd
インストールに成功すると [ Complete! ] と表示されます。そうしたら、次のコマンドで、httpdを起動します。
$sudo service httpd start
起動に成功すると、httpdのStartingステータスが [ OK ] と表示されます。
以上で、EC2インスタンス上でWebサーバが構築されました。動作確認をしましょう。ブラウザからEC2インスタンスのPublic IPまたはPublic DNSにアクセスします。下記のようなApache httpdのデフォルト画面が表示されれば、Webサーバの構築ができています。
なお、serviceコマンドでhttpdを起動した場合、インスタンスを停止または再起動したときにhttpdも停止されます。そのため、次のコマンドでインスタンス起動時にhttpdを自動起動させるように設定します。
$ sudo chkconfig httpd on
HTMLコンテンツのアップロード
Webサーバの構築ができたので、ここに任意のHTMLコンテンツをアップロードしてみましょう。TeraTermの[ファイル]-[SSH SCP]を選択し、index.htmlをEC2インスタンスにアップロードします。SCPをつかうと、SSHプロトコルを用いて安全にファイルをコピーできます。
[send]ボタンをクリックすると、デスクトップに保存したindex.htmlがEC2インスタンスのホームディレクトリ(/home/ec2-user/index.html)にアップロードされます。
アップロードファイルを、/var/www/htmlにコピーします。
$ sudo cp /home/ec2-user/index.html /var/www/html/
ブラウザから、EC2のインスタンスのPublic DNSまたはPublic IPにアクセスし、アップロードしたファイルが公開されているかを確認します。
この記事は参考になりましたか?
- 今さら聞けない! Amazon Web Servicesによるクラウド超入門連載記事一覧
-
- Amazon Web ServicesでサーバサイドJavaの実行環境を構築しよう
- Amazon Web Servicesのロードバランサで負荷分散するWebサーバを構築しよ...
- Amazon Web Servicesの仮想サーバEC2でLinuxサーバを構築してみよう
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 阿佐 志保(アサ シホ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア



