Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Amazon Web Servicesのロードバランサで負荷分散するWebサーバを構築しよう

今さら聞けない! Amazon Web Servicesによるクラウド超入門 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/06/19 14:00

 本連載は、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を起動すると、次の画面が表示されます。

TeraTermの設定
TeraTermの設定

 ここで、ホスト(T)に、接続したいEC2インスタンスのPublic IPを指定して[OK]ボタンをクリックします。セキュリティの警告が出ますので、[続行]ボタンをクリックします。

 SSH認証画面が表示されたら、以下を設定して[OK]ボタンをクリックします。

  • ユーザ名:ec2-user
  • RSA/DSA鍵を使う:秘密鍵にEC2インスタンスを生成したときにダウンロードしたアクセスキーのファイルを指定(AWSKey.pem)
EC2へのログインの設定
EC2へのログインの設定

 なお、ここで、秘密鍵を選択するダイアログで、ファイル名を[すべてのファイル(*.*)]にしないと拡張子が.pemのファイルが表示されないので注意してください。

秘密鍵の選択
秘密鍵の選択

 正しく接続されると、以下のようなEC2のインスタンスを操作するコンソールが開きます。

EC2のコンソール
EC2のコンソール

Apache httpdのインストール

 それでは、Webサーバを構築するために、Apache httpdをインストールしましょう。作成したEC2インスタンスは、Amazon Linux AMIというRed HatをベースにしたLinux OSを使用して作成されています。そのため、Red Hatのコマンドがそのまま使用できます。

 次のコマンドで、Apache httpdをインストールします。

httpdのインストール
$ sudo yum install httpd

 インストールに成功すると [ Complete! ] と表示されます。そうしたら、次のコマンドで、httpdを起動します。

httpdの起動
$sudo service httpd start

 起動に成功すると、httpdのStartingステータスが [ OK ] と表示されます。

 以上で、EC2インスタンス上でWebサーバが構築されました。動作確認をしましょう。ブラウザからEC2インスタンスのPublic IPまたはPublic DNSにアクセスします。下記のようなApache httpdのデフォルト画面が表示されれば、Webサーバの構築ができています。

Apache httpdの動作確認
Apache httpdの動作確認

 なお、serviceコマンドでhttpdを起動した場合、インスタンスを停止または再起動したときに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にコピーします。

HTTPコンテンツのコピー
$ sudo cp /home/ec2-user/index.html /var/www/html/

 ブラウザから、EC2のインスタンスのPublic DNSまたはPublic IPにアクセスし、アップロードしたファイルが公開されているかを確認します。

ファイルのアップロードの動作確認
ファイルのアップロードの動作確認

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 阿佐 志保(アサ シホ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:今さら聞けない! Amazon Web Servicesによるクラウド超入門
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5