16 September 2009

Amazon EC2:1分で構築するWebサーバ

Amazon EC2 (Amazon Elastic Compute Cloud) が、いつの間にか素人用にGUIインターフェースを公開している…
ということで、1分で構築するFedora8を用いたWebサーバの構築方法。

まず、Amazon AWS (Amazon Web Services)のアカウントが作成されているのが前提。 アカウントは、メールアドレスと、料金引き落としのためのクレジットカード番号が必要。詳しくは以前書いた 『LinuxサーバからAmazon S3を用いる (2/2)』を参照。

■ Amazon EC2の初期設定

Amazon AWSのページに、Amazon EC2のメニューがあるので、そこをクリックすると 「 Sign Up For Amazon EC2 」 というボタンがあるので、それを押して最低限の質問に答えるだけ。

■ AWS Management Console

Amazon AWS 画面右上のYour Accountを展開して、AWS Management Console を選択する。

GUIの統合環境で、現在のところBETAテスト状態。インスタンスの管理や、ファイアウォール設定、公開鍵の管理などすべてこの管理コンソール上で出来る。

20090916-ec2-console.png
AWS Management Consoleの画面

■ RSA公開鍵の作成

インスタンス(仮想マシン)の起動や、そこにSSHで接続するときに必要になる。 AWS Management Console の左ペインの一番下に 「Key Pairs」というのがあるので、そこで作成する。
キーを作成すると、秘密鍵がダウンロードされるので、SSHでの鍵認証に備えて保存しておく。

■ 仮想マシン イメージの選択

AWS Management Console の左ペインの「AMIs」を押すと、仮想マシン Amazon Machine Image (AMI) の選択画面が表示される。 オフィシャルのイメージを選択するときは、この画面で Viewing を Amazon Images を選択。

20090916-ec2-amistart01.png


今回は、 ec2-public-images/fedora-8-i386-base-v1.08.manifest.xml というのを選択する。

「 Launch 」 ボタンを押すと仮想マシンの起動準備に入る。

■ 仮想マシンの起動

最初に、セキュリティ・グループ (ファイアウォールなどの設定セット) の設定を行う画面が表示される。

20090916-ec2-amistart02.png

今回は、Webサーバなので、SSHとHTTPを通すルール設定を意図して、グループ名を「http_ssh_server」としている。この名前は特に決まりはなさそうなので、何でもよいようだ。

次に、仮想マシンの実行種別についての設定を行う画面。

20090916-ec2-amistart03.png

インスタンス数は、当然1。これを複数にすると、当然、課金もそれに応じて整数倍となる。セキュリティ・グループは先ほど設定したセキュリティ・グループのみを選択する。「default」は、当初はすべてのポートを通過させる設定になっているので好ましくない。

「Launch」ボタンを押すと、仮想マシンが起動する。さて、起動状態を見てみることにする。

■ ファイアウォールの設定

ここで、念のためファイアウォールの設定を行っておく。AWS Management Console の左ペインの「Security Groups」を押すと、定義されているグループ一覧が表示される。今回は、さきほど作成した「http_ssh_server」の設定を見直す。

20090916-ec2-firewall.png

SSHのみが定義されているはずなので、HTTPも追加する。それだけだ。

■ 仮想マシン起動後に、アドレスを入手する

AWS Management Console の左ペインの「Instances」を押すと、ユーザが取り込んでいる仮想マシンの一覧が出る。実行中の仮想マシンを選択すると、情報一覧が表示される。

20090916-ec2-dnsname.png

「Public DNS」という項目名で、外部からアクセスするためのアドレスが示される。今回は、「 ec2-75-101-214-252.compute-1.amazonaws.com 」 というアドレスだった。

■ SSHで接続

SSHで
接続先:ec2-75-101-214-252.compute-1.amazonaws.com
ポート:22 (標準)
ユーザ名:root
秘密鍵:「RSA公開鍵の作成」で出力された鍵ファイルを指定

接続後、一通り情報を出力してみた。

__| __|_ ) Fedora 8 _| ( / 32-bit ___|\___|___| Welcome to an EC2 Public Image :-) Base --[ see /etc/ec2/release-notes ]-- [root@domU-12-31-39-00-86-02 ~]# uname -a Linux domU-12-31-39-00-86-02 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 athlon i386 GNU/Linux [root@domU-12-31-39-00-86-02 ~]# whoami root [root@domU-12-31-39-00-86-02 ~]# ps -a PID TTY TIME CMD 1032 pts/0 00:00:00 ps [root@domU-12-31-39-00-86-02 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 10321208 1151012 8645908 12% / /dev/sda2 153899044 192072 145889348 1% /mnt none 873880 0 873880 0% /dev/shm [root@domU-12-31-39-00-86-02 ~]# netstat -ta Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 284 domU-12-31-39-00-86-02.:ssh 125-190-186-18:ifor-protocol ESTABLISHED [root@domU-12-31-39-00-86-02 ~]# chkconfig --list ConsoleKit 0:off 1:off 2:on 3:on 4:on 5:on 6:off NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off autofs 0:off 1:off 2:off 3:off 4:off 5:off 6:off avahi-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off cpuspeed 0:off 1:off 2:off 3:off 4:off 5:off 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off dnsmasq 0:off 1:off 2:off 3:off 4:off 5:off 6:off fuse 0:off 1:off 2:off 3:on 4:on 5:on 6:off gpm 0:off 1:off 2:off 3:off 4:off 5:off 6:off haldaemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off ip6tables 0:off 1:off 2:off 3:off 4:off 5:off 6:off iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off irqbalance 0:off 1:off 2:off 3:off 4:off 5:off 6:off kudzu 0:off 1:off 2:off 3:off 4:off 5:off 6:off mdmonitor 0:off 1:off 2:off 3:off 4:off 5:off 6:off messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off netfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off netplugd 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off nfslock 0:off 1:off 2:off 3:off 4:off 5:off 6:off nscd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off rpcbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off rpcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rpcidmapd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rpcsvcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off smartd 0:off 1:off 2:off 3:off 4:off 5:off 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off udev-post 0:off 1:off 2:off 3:off 4:off 5:off 6:off wpa_supplicant 0:off 1:off 2:off 3:off 4:off 5:off 6:off ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off yum-updatesd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

基本的なサービスだけがインストールされているようで、Apacheはインストールされていない。

■ Apacheのインストールと起動

[root@domU-12-31-39-00-86-02 ~]# yum install httpd [root@domU-12-31-39-00-86-02 ~]# /etc/rc.d/init.d/httpd start Starting httpd: [ OK ]


ここまで行うと、ブラウザからサーバにアクセスすると、Apacheの初期画面が表示されるはずである。 たった1分で、Webサーバの完成。いやはや、クラウドの設定環境の進化は目を見張るものがある。