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サーバの完成。いやはや、クラウドの設定環境の進化は目を見張るものがある。