2011-12-10
さくらクラウドの稼働率は
先日さくらクラウド(本当は「さくらのクラウド」ですが)で9分間の障害があったようです。
http://support.sakura.ad.jp/mainte/newsentry.php?id=6406
11月15日に開始されて、現時点までの稼働率を計算してみます。話を簡単にするため11月15日15時〜12月10日24時までとする。これは25日と9時間 = 609時間 = 36540分。
MTBF=36540 min
MTTR=9 min
ということで、稼働率は99.9753755%ということになります。
このペースでいけばなかなか、ではないかと思います(・・・まだ一ヶ月も経ってませんが)。
ちなみにAmazon EC2は年間稼働率99.95%を保証しているそうですね。
ここにEC2障害の面白い記事があります。
http://itpro.nikkeibp.co.jp/article/COLUMN/20111122/374827/
(有料会員じゃないと先は見えませんが表紙だけでも面白い)
EC2の障害の原因と復旧に関してはここが詳しいです。
http://www.publickey1.jp/blog/11/amazon_11.html
さくらのホスティングも2008年に大規模障害が起こってたようです。
特定のインフラの上でサービスを作ると、インフラで障害が起きたときに上のサービスが全滅するということが起きます。OSがフリーズするとOS上のアプリが使えなくなるのと同じですね。IaaSは価格競争もあり価格性能比だけで見られがちですけど、いろいろ調べてたら稼働率とか故障率もかなり重要なんじゃないかと思いましたとさ。
2011-12-05
さくらクラウドのISOイメージアップロード機能にさくらクラウドのサーバからUPするメモ
先日できるようになったISOイメージのアップロードサービスで、ISOイメージをローカル(こちら)からUPするのではなく、回線爆速のさくらクラウドのサーバ自体からUPすることができたのでメモがてら書いておきます。当然ですがISOイメージをDLするのもクラウド側でできますから(wgetとかで)、回線が太くない人にはよいかも。なにより、簡単です。
ISOイメージはFTPアップロードですが、TLSで暗号化するFTPSですので、対応していないクライアント(FFFTPなど)*1ではアップロードできません。WindowsではFileZillaなどが対応しています。で、さくらクラウド(っていうかLinuxでSSHオンリー環境)のサーバから上げるにはこれを使います。
$ sudo yum install openssl-devel.$(uname -i) ←もし入ってなければ(例ではCentOSのyum) $ wget http://www.tlswrap.com/tlswrap-1.04.tar.gz $ tar zxf ./tlswrap-1.04.tar.gz $ $ pushd ./tlswrap-1.04 $ ./configure $ make $ sudo make install $ popd
できたバイナリ(tlswrap)を実行するとデーモンが立ち上がって、ポート7000番で待ち受けるようになります。ここにFTP接続するとTLSで暗号化される仕組みです。やってみましょう。
$ tlswrap TLSWrap v1.04 (c) 2002-2006 Tomas Svensson <ts@codepix.com> Servicing up to 5 clients on 127.0.0.1:7000 Running as process 10951 $ ps PID TTY TIME CMD 8660 pts/0 00:00:00 bash 10950 pts/0 00:00:00 tlswrap ←いるいる 10952 pts/0 00:00:00 ps $ $ ftp 127.0.0.1 7000 ←そこへ接続 Connected to 127.0.0.1. 220 TLSWrap FTP Proxy Server (v1.04) ready. 502 RFC 2228 authentication not implemented. 502 RFC 2228 authentication not implemented. KERBEROS_V4 rejected as an authentication type Name (127.0.0.1:username):
Nameを訊かれたらtlswrapの特別な形式、user@host:port の形で書きます。さくらの例だと
cdromXXXXXXXX@ip-address:21
パスワードもさくらのISOディスクのFTP開通時に表示されるものです。あとは普通にftpクライアントとしてつかえますので、put diskimage.iso とかやって転送できます。tlswrapに助けられました(5円が無駄になるとこだった)。
2011-11-24
さくらクラウドで遊んでみた
なかなか面白いですが、ちょっと高いかも・・・。
課金が日単位でなくて時間単位ならもっとよかったんですけども。
で、遊んだ成果物としてさくらクラウドのAPIをpythonから叩くものを作ってみました。
https://bitbucket.org/sharow/sacloud-python-lib
プランの変更APIは実際に試していません(そもそもプランIDってなんだ?)
2011-08-30
upmeetup:Zusaarに対応しました
前に挙げたZusaarがAPIを公開していたので対応させてみました。
ZusaarのAPIはATNDにとても似ていますが、細かいところで違いました。基本的にATNDのコードを流用できるのですが、あまり共通化はしないほうがよさそうです・・・けども、そのうち共通化部分を抜き出しちゃおうかとも思っています。
それとは関係ないですが、GoogleAppEngine/pyをいじってるとオレテンプレみたいなものができてくるのでUPしておきます。基本的にURLのハンドラにはそのPATHを含め、ハンドラのクラスを一つの配列にまとめておきます。
class CrawlStartHandler(webapp.RequestHandler): PATH = config.WORKER_PATH + '/crawler/start' def get(self): ... ... HANDLERS = [ CrawlStartHandler, CrawlEndHandler, CrawlWorkerHandler ]
それぞれでrun_wsgi_appするのは重複しますし面倒です。だいたい、ハンドラのURLのパスとpythonコードの置くレイアウトは似るものです。なのでtask_handler.pyという専用のものを用意しちゃって、そこでrun_wsgi_appを書きます。
import crawl_atnd import crawl_zusaar import decreaser HANDLER_CLASSES = [] HANDLER_CLASSES += crawl_atnd.HANDLERS HANDLER_CLASSES += crawl_zusaar.HANDLERS HANDLER_CLASSES += decreaser.HANDLERS HANDLERS = [] for handler in HANDLER_CLASSES: HANDLERS.append((handler.PATH, handler)) def main(): application = webapp.WSGIApplication(HANDLERS, debug=True) util.run_wsgi_app(application)
こうするとTaskQueueを使ったときにurlを
taskqueue.add(url=CrawlEndHandler.PATH, method='GET')
のように、確実にハンドラのパスに設定することができます。
もっといい方法もありそうですけども、appengineのSDKも似たようなことしてるのでこれが典型かなと思います。