月曜日, 12月 17, 2007

引越し

最近、更新もしてませんが、ドメインが切れるので引っ越します。
新しいアドレスは、
http://infology2.blogspot.com/
の予定です。

月曜日, 3月 05, 2007

Amazon Elastic Compute Cloud (Amazon EC2)

Amazon EC2、正確には「Amazon Elastic Compute Cloud (Beta)」です。
コンピュータリソースを従量制で貸してくれるサービス。
今流行のSecond Lifeもこのサービスを利用しているらしいです。
実際、「従量制」のイメージとはうらはらに、安いです。

インスタンス(仮想ホスト、またはCPUやメモリと呼べばいいのか)を1時間借りると、0.1ドル。
1GBのネットワークトラフィック(外部向けのみ課金)で、0.2ドル。
1GBのストレージを1ヶ月借りて、0.15ドル。
なんか、おこづかい程度の金額ですね。

Webサービスなら結構なトラフィックでも月2万円もあれば済みそうです。
それくらいなら事業の初期投資として高額じゃないですし、しかも拡張性も高い。
後からリソースを追加するのも楽ですし。
リソース足りない!なんてあたふたしなくていいわけですな。ボタン一発。
なんといってもメンテナンスが圧倒的に楽なので、これは使わない手はないですね。

というわけで使ってみました。

まず、Amazon Web Servicesにアカウントを作成します。
ここでクレジットカードの情報なんかも必要になります。

次にAmazon Simple Storage Service (Amazon S3)に登録。
これはストレージのみのサービスで、EC2ではこのサービスをストレージとして利用します。

で、EC2に申し込み。
まだベータなサービスなので、承認に時間がかかります。
いたずらにユーザーを増やさないようにしてるんですかね。
僕は申し込んでから1ヶ月くらい待たされました。

承認のメールが届いたら早速挑戦。

基本的にはEC2のページの下の方にあるテクニカルドキュメントを読みながらそのとおりに実行すれば終わりです。
まあ、せっかくなのでまとめると。

-------------------------------------------------------------------------------------

# aptitude install sun-java5-jre
でJAVAをインストール。aptのsources.listにnon-free contribがないと見つかりません。

次にAmazon Web Servicesのページで証明書を作成。といっても「作成」ボタンを押すだけです。
秘密鍵、公開鍵をダウンロードして保存します。
ここでは~/ec2/以下に保存したことにします。

Amazon EC2 Resource CenterからCommand Line Toolsをダウンロード。
展開したbinとlibをそれぞれ~/ec2/binと~/ec2/libに移動します。
ちなみにWindows版もLinux版も一緒に入ってます。新しいな。

.bashrcに以下を追加。
export EC2_HOME=~/ec2
export PATH=$PATH:$EC2_HOME/bin
export EC2_PRIVATE_KEY=~/ec2/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem
export EC2_CERT=~/ec2/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem

source ~/.bashrc
で読み込みます。

これで準備は終わりです。

# ec2-describe-images -x all
で利用可能なイメージを表示させることができます。
自分で作ることも可能ですが、これの中から利用しても不便はないです。というか、面倒だし。

# ec2-add-keypair gsg-keypair
で作成したホストにログインするための鍵を作成できます。
表示されたものを適当に保存しておきます。
パーミッションを0400にするのをお忘れなく。

# ec2-run-instances ami-5bae4b32 -k gsg-keypair
利用可能なイメージの中から好きなイメージを選択して、起動します。
ami-*で始まるIDとすぐ上で作成した鍵を指定します。

# ec2-describe-instances
でインスタンスの状態を確認します。
ステータスが「running」になっているインスタンスが見つかるはずです。

# ec2-authorize default -p 22
22番ポートでの接続を許可します。
# ec2-authorize default -p 80
Webサービスを開始したい場合は80番を指定します。

# ssh -i id_rsa-gsg-keypair root@ec2-72-44-33-55.z-2.compute-1.amazonaws.com
ec2-describe-instancesで表示されるアドレスにログインできます。

# ec2-terminate-instances i-f8618691
ec2-describe-instancesで表示されるIDを指定して停止させることができます。
ピークを過ぎたら、これでお金を節約します。

-------------------------------------------------------------------------------------

あとはもう普通にホスティングされているホストと同じように利用できます。

正直言って、これはすごいですね。
もうホスティングサービスなんていらない感じがします。
サーバー買う手配したり、電源気にしたりしなくて済みます。
しかもこっちのほうが早くて、(たぶん)安いです。

大きな会社だったら個人情報がどうこうとかありそうですけどね。

月曜日, 2月 05, 2007

OpenDNS

フリーのDNSサーバー。
キャッシュの方のサーバーです。

「安全」で「速く」て「賢い」らしいです。

なにが「安全」かというと、既知のフィッシングサイトをブロックしてくれるんですね。
だから、info1ogy.info(lが1)みたいな分かりづらいものも大丈夫なわけです。
UTF-8のURLだと、ますますわかりづらい(というか、判別不可能)になってしまうので、なかなかいいですね。

紹介では、「ローカルのキャッシュサーバーよりも速い」と書いてあります。
ほとんどの人はキャッシュサーバーの設定を最適にしていないかららしいです。
ネットワーク分の遅延はあるけど、サービス全体でみたら速いみたい。
試してみると、たしかに速い。。。屈辱的です。

ほかにも、打ち間違いなんかを勝手に推測してくれたりもします。
微妙ですが、悪くないかも。

ちなみにこれら機能は、オン・オフをWeb上で切り替えることができます。
他にもクエリーの統計なんかもWebから見れます。なんか凝ってるな。


とりあえず、かなり気に入ったのでしばらく使ってみることにします。

水曜日, 1月 31, 2007

LVM を利用したバックアップ

LVMを利用してXenのディスクをバックアップします。

LVMにはスナップショットの機能がついているので、これを利用すればファイルシステムレベルでの不整合は発生しなくなります。
DBのトランザクションなんかはまた別の話なので、そういうときはアプリケーションで用意されたバックアップを使いましょう。

まず、仮想マシンをいったん停止します。
xm pause dns1.infology.info

次にLVMのスナップショットを作成します。
lvcreate -s -L 1G /dev/xm129/dns1.infology.info-disk
-L で指定するサイズはバックアップの間にこのディスクに加えられる変更のサイズよりも大きくないといけません。このあたりは経験するしかないですね。

スナップショットの作成が済んだら、仮想マシンを動かします。
xm unpause dns1.infology.info
スナップショットの作成はとても早いので、ここまでに必要な時間は数秒です。
LVSheartbeatを使った冗長化が済んでいれば、まず問題にならない程度ですね。

バックアップを作成します。
dd if=/dev/xm129/lvol0 of=/backup/dns1.infology.info.disk
lvol0はスナップショットの名前です。
紛らわしいときは、作成時に -n オプションで自由に名前をつけることができます。

バックアップが終了したら、スナップショットを削除します。
lvremove /dev/xm129/lvol0


ちなみに復元したいときには、
dd if=/backup/dns1.infology.info.disk of=/dev/xm129/dns1.infology.info-disk
とします。

LVM (Logical Volume Manager) と Xen

LVM(Logical Volume Manager)を使います。

というのも、それまでファイルのディスクイメージでXenを使っていました。
間違って電源が落ちたときに、イメージファイルがことごとく壊れたんですね。
やはり、数ギガバイトのファイルというのは無理がありそうです。

DebianではOSのインストール時にLVMの利用を選択できます。
すべて自動で進めていって、最後にサイズだけ変更します。
そのままだとディスク全体がひとつのLV(Logical Volume)になってしまいます。

Xenの仮想マシンにディスクを割り振るのも、ツールを使うと意識せずにできます。
xen-create-image などで仮想マシンを作成すると、LVの作成もやってくれます。

LVMを使うと、ループバックデバイスの設定も必要ありません。
また、Xenのマニュアルによると、パフォーマンスもよいらしいです。
将来、ディスクサイズの変更が必要になった場合もLVMを利用していると簡単に対応できるので、まったくいいこと尽くめです。