Hatena::ブログ(Diary)

sharow memo このページをアンテナに追加 RSSフィード

2011-12-24

Licence Art Libre なので転載

さくらVPSにArchLinuxを入れる

ArchLinuxに限らず、さくらVPSに他のOSを入れるのはなのですが、なんとかできたのでメモがてら書いておきます。

続きを読む

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年に大規模障害が起こってたようです。

http://hitoxu.com/0490

特定のインフラの上でサービスを作ると、インフラで障害が起きたときに上のサービスが全滅するということが起きます。OSフリーズするとOS上のアプリが使えなくなるのと同じですね。IaaS価格競争もあり価格性能比だけで見られがちですけど、いろいろ調べてたら稼働率とか故障率もかなり重要なんじゃないかと思いましたとさ。

2011-12-05

さくらクラウドのISOイメージアップロード機能にさくらクラウドのサーバからUPするメモ

先日できるようになったISOイメージのアップロードサービスで、ISOイメージをローカル(こちら)からUPするのではなく、回線爆速のさくらクラウドサーバ自体からUPすることができたのでメモがてら書いておきます。当然ですがISOイメージをDLするのもクラウド側でできますから(wgetとかで)、回線が太くない人にはよいかも。なにより、簡単です。


ISOイメージはFTPアップロードですが、TLS暗号化するFTPSですので、対応していないクライアントFFFTPなど)*1ではアップロードできません。WindowsではFileZillaなどが対応しています。で、さくらクラウド(っていうかLinuxSSHオンリー環境)のサーバから上げるにはこれを使います。

$ 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円が無駄になるとこだった)。

*1:追記:WikipediaによるとFFFTPはFTPSに対応しているそうです。私の操作が悪かったようです。

2011-11-24

さくらクラウドで遊んでみた

なかなか面白いですが、ちょっと高いかも・・・。

課金が日単位でなくて時間単位ならもっとよかったんですけども。

で、遊んだ成果物としてさくらクラウドAPIpythonから叩くものを作ってみました。

https://bitbucket.org/sharow/sacloud-python-lib

プランの変更APIは実際に試していません(そもそもプランIDってなんだ?)

2011-08-30

upmeetup:Zusaarに対応しました

前に挙げたZusaarがAPIを公開していたので対応させてみました。

http://upmeetup.appspot.com/


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も似たようなことしてるのでこれが典型かなと思います。