カテゴリー : Amazon,ubuntu

このカテゴリーの登録数:10件 表示 : 8 - 10 / 10

Feb 11, 2009

Amazon EC2を使う(3)

ポスト @ 22:30:04 | Amazon,ubuntu

Amazon Web Service Canonical公認AMIはとりあえず置いておいて、前にApache2をインストールして動作確認したところからの続きである。

 PHP5、MySQLをインストールする。
apt-get install php5-cli
apt-get install libapache2-mod-php5
apt-get install mysql-server
 *rootのパスワード設定を求める画面が出てくるので入力
apt-get install php5-mysql

 /etc/mysql/my.cnfに以下の2行を追加。 [mysqld]
default-character-set = utf8
skip-character-set-client-handshake


 /etc/php5/apache2/php.iniを少し修正。
magic_quotes_gpc Off
mbstring.language Japanese
以下略

 一通り設定したら、apacheの設定更新を
/etc/init.d/apache2 reload
とやって反映させる。

 pythonとrubyは入っていたので、python-mySQLdb libapache2-mod-pythonだけ追加しておく。あと、phpmyadminもインストール。

 MySQLの名前もパスワードもないユーザを削除し、新たに一人ユーザを追加して、ログインできることを確認する。これで、MySQLは大丈夫だと思ったら、文字化けで苦しむ。

 結局

# /etc/init.d/mysql reload  
では駄目で、
# /etc/init.d/mysql restart
として初めて設定が反映されるのだ。これで6時間くらい無駄にした。

 下のようになっていれば、日本語が文字化けせずにUTF8で統一できる。

mysql> show variables like "char%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | 
| character_set_connection | utf8                       | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     | 
| character_set_results    | utf8                       | 
| character_set_server     | utf8                       | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
 ここまでは、Amazon EC2とは全然関係なくて、通常のUbuntuの使い始めの設定なのだ。でもこれが済まないと先に進めないので仕方がない。

 さて、Amazon Elastic Block Store (EBS)にMySQLのデータベースを置いて、インスタンスが停止されてもデータが消えないようにしてみよう。Running MySQL on Amazon EC2 with Elastic Block Storeに書いてあるとおりにやればいいだけだが。ときおり、日本語のサイト、たとえば「shibataismの日記:Amazon Elastic Block Store(EBS)でmysqlを動かしてみたよ」なども参考にしながら。

 まず、instance id(i-xxx001z2というような記号)とzone(例えばus-east-1a)を控えておく。次に、SSHでログインして、xfsprogsをインストールする。一旦ローカルシステムに戻って、

$ ec2-create-volume -z us-east-1a -s 1
というコマンドでEBS volumeを作る。最後の1という数字が1GBの容量のものを作るという意味である。後で増やせるらしいが、やり方は知らない。volume id(vol-VVVV1111のようなもの)を確認して(EC2 consoleでも確認できる)、
$ ec2-attach-volume -d /dev/sdh -i i-IIII1111 vol-VVVV1111
とやって、volumeとinstanceの対応付けを行う。ここで、EC2のシステムに戻って、
# mkfs.xfs /dev/sdh
# echo "/dev/sdh /vol xfs noatime 0 0" >> /etc/fstab
# mkdir /vol
# mount /vol
というようにしてマウントする。すると突然、SSH でアクセスできなくなる。 httpdサーバもページを提示しなくなる。全く無反応なのだが、EC2 consoleではインスタンスは稼働中との表示が出ている。どうしたらいんだ? 助けを求めてネット上を彷徨うが、解らない。今までの苦労が水の泡になるのだろうか。また一からやり直しなんだろうか。目の前が真っ暗になり、全人類に向かって呪いの言葉を発してみたりしても気分は晴れない。

 何度か再起動したら、また突然繋がるようになった。よかった。

 一旦MySQLを止めて(/etc/init.d/mysql stop)、訳も解らないまま、

mkdir /vol/lib /vol/log
mv /var/lib/mysql /vol/lib/
mv /var/log/mysql /vol/log/
test -f /vol/log/mysql/mysql-bin.index &&
  perl -pi -e 's%/var/log/%/vol/log/%' /vol/log/mysql/mysql-bin.index
とやってみる。次に、
cat > /etc/mysql/conf.d/mysql-ec2.cnf <
とすればいいらしい。これで、大丈夫なのか。今ひとつ自信がないのだが、動いているようなので、多分いいのだろう。

 最後にIPアドレスについて。インスタンスを起動すると、例えば、ec2-67-202-1-180.compute-1.amazonaws.comというようなPublic DNSが与えられるが、これが即ちURLである。IPアドレスは最初のec2-以下の4つの数値で示されている。これでアクセスできるけれども、覚えづらいし、インスタンスを一度止めると、再度起こしてきたときにはまた別の値が与えられる。私はnakano.no-ip.orgでアクセスできればそれでいいので、

# apt-get install noip2
として、IPアドレスをNo-IPに知らせるアプリケーションをインストールする。インストール途中で、No-ipのIDやパスワードを訊かれ、続いて設定条件も訊かれるので答えていけば、設定完了と同時に起動する。これでnakano.no-ip.orgでアクセスできるようになった。これが読めているというのがその証拠である。このとき、引っ越しなどで前に同じURLで設定していた自宅サーバでもある場合は(私のことだ)、自宅サーバのnoip2を停止しておかないと混乱するので忘れないように気をつけなければならない。

 AMIやEBSのスナップショットの保存などについてはまた後ほど。


Feb 10, 2009

Amazon EC2を使う(2)

ポスト @ 21:39:44 | Amazon,ubuntu

Amazon Web Service Ubuntu Server on Amazon - Beta programme now openを見て、Canonical製Amazon EC2用Ubuntu AMIがあるので、早速利用を申し込んでみたというのは昨日書いた通りである。返事がようやく来たところで少しだけ試してみたので報告する。

 概ね、EC2StartersGuideに書いてあるようにやってみた。尤も、前半はAmazonのアカウントの作り方なんて書いてあるので、その辺りは省略。

 メールが来てから、AWS Management Consoleを開いて、EC2 DashboardのAIMsを見ると、Private Imagesのところに二つUbuntuのAMIが表示されるようになっている。前はPrivate Imagesを選んでも何も表示されなかった(と記憶している)。32bit版を選んでスタートさせると、もうインスタンスが一つ動き出す。いくつでも動かせて、いつでも停止できるのが、このEC2の便利なところだ。こうやっていろいろなシステムを試すことができる。

Public DNAが表示されるので、SSHでアクセスする。

┌───────────────────────────────────┤ Software selection ├────────────────────────────────────┐
           │ You can choose to install one or more of the following predefined collections of software.  │ 
           │                                                                                             │ 
           │ Choose software to install:                                                                 │ 
           │                                                                                             │ 
           │    [*] Basic Ubuntu server                                                                  │ 
           │    [ ] DNS server                                                                           │ 
           │    [ ] Edubuntu server                                                                      │ 
           │    [ ] LAMP server                                                                          │ 
           │    [ ] Mail server                                                                          │ 
           │    [*] OpenSSH server                                                                       │ 
           │    [ ] PostgreSQL database                                                                  │ 
           │    [ ] Print server                                                                         │ 
           │    [ ] Samba file server                                                                    │ 
           │    [ ] Tomcat Java server                                                                   │ 
           │    [ ] Virtual Machine host                                                                 │ 
           │                                                                                             │ 
           │                                                                                             │ 
           │                                             
という見慣れない表示が出たので、LAMPのみ追加してみる。

 MySQLのrootユーザのパスワード設定を訊かれる。続いてPHP、Apache2がインストールされる。

======================================================
CONFIGURATION OF YOUR UBUNTU EC2 IMAGE
======================================================
Your EC2 image is about to be finished to be set up.
------------------------------------------------------
New password for ubuntu account: xxxxxxxx
Password changed.
Setting up ssh public keys for the ubuntu account.
------------------------------------------------------
Please select software that you wish to install:
------------------------------------------------------
We are now going to log you out of the root account.
To perform administrative tasks please use the ubuntu account
in combination with sudo using the password: xxxxxxxx
======================================================
という表示が出た後、
Connection to ec2-174-129-100-217.compute-1.amazonaws.com closed.
といって終了してしまう。
ssh ubuntu@ec2-174-129-100-217.compute-1.amazonaws.com
とやってログインしてみる。上で提示されたパスワードを使うとログインできた。

 今は時間がないので、もうTerminate指令を送って、停止。金も掛かるから。

 でも、システムを移行するときなども、元のを動かしながら新しいシステムをいろいろ試すことが可能なので便利である。もう自宅サーバに戻らなくてもいいかなという気分だが、インスタンスを一つ動かし続けると最小単位でも一ヶ月に72ドル。円高のこの頃でも6500円かかる。ちょっと厳しい。この料金を補って余りある広告料でも確保できる見込みがあるなら、是非利用を続けないのだが、残念ながら私のサイトではそれは難しいのが現状である。


Feb 09, 2009

Amazon EC2を使う(1)

ポスト @ 23:41:16 | Amazon,ubuntu

amazon web service 引っ越しである。24時間働いている自宅サーバも引っ越ししなければならない。23日に荷物を引っ越し会社に引き渡し、25日に受け取ることになっている。それから、NTTのフレッツ光の工事があって、設置・配線その他が完了してから動き始める訳である。環境が変わって設定がうまく行かずに、滞在期限を過ぎてしまったら、作業を再開できるのは何週間も先のことになる。それは困る。といふことで、Amazon EC2を使ってしばらく運用することにした。

 昨年夏に試しに作ってみたインスタンスが調子悪くなってしまったので、Ubuntu 8.10で新たに作り直すことに決めた。Ubuntu Server on Amazon - Beta programme now openといふサイトを見つけたので、早速利用してみることにした。Join the beta programといふ文字をクリックして、必要事項を記入して送信。認定作業に一時間くらいかかることもあるから、待っていてくれと書いてあるので待っていた。一時間を過ぎても何の連絡もない。二時間過ぎても、三時間過ぎても。私は気が短いので、待たないことにした。

 昨年夏にはなかった、AWS Management Consoleというのが今はあるのだ。こいつを利用して、AMI一覧を出し、ubuntu-8.10-intrepid-base-20081222.manifest.xmlというのを選んで起動システムにすることにした。規模の設定、認証キーに何を使うか(私はgsg-keypairを選んでおいた)などを決めて、クリックすればもうインスタンスが動きだす。しばらく待つと、緑丸印の「running」が表示される。これで、もう立ち上がっているのだ。

 gsg-keypairを私はホームディレクトリの.ec2というフォルダに置いているので、

ssh -i ~/.ec2/gsg-keypair root@ec2-00-101-1-110.compute-1.amazonaws.com
という感じで、SSHを使ってログインする。ここにはまだほとんど素のUbuntuなので、いろいろ入れていくことになる。これはEric Hammondという人が作ったUbuntu 8.10 Serverを基にしたAWS版ubuntu 8.10 (32 bit) ami-1a5db973である。

 まず、Apache2をインストール。

apt-get update
apt-get install apache2
 URLは、AWS Management ConsoleにPublic DNS: ec2-67-202-1-180.compute-1.amazonaws.comというように表示されているので、これをブラウザに入力すると、It works!という文字が出てくればいい。出てこないはずはないので、出てこなかったときのことは解らない。

 続きは明日。まだ一歩も踏み出していない段階なのだが、今日はもう寝る時間だ。あ、冒頭で書いた、Ubuntu Server on Amazon - Beta programme now openの返事は翌日来た。Canonical提供のAMIの名前が記されている。もう遅いんだよってことで、どうしようもないので、メーリングリストにだけ入ってみた。