青空文庫OPDSのサーバーを移動した

なんか夏真っ盛りという感じで暑いですね。

夜はまだいいのだけど、昼間は太陽の下にでると、蒸発しそうな気配です。

そんなこんなで、表記の通りサーバーを移転しました。ひっそりと。

自分でも忘れるので備忘録的にメモ。

移転前の構成

以前は、下記の通りAWS (Amazon Web Services)を利用していました。

青空文庫OPDS AWS構成図こんな感じで ELB でロードバランサー。

Webサーバーは ゾーンを別にして t1.micro を2台。

DBは MySQL を使った RDS を small instance / Multi A-Z 構成にした。(当時はなかったと思うけど、今はRDS Multi A-Zでもmicro instanceあるね。でも、怖いけど…)

本当にミニマルな複数台構成の状態。

零細規模のシステムばっかりやってるので、冗長構成することがあんまりなかったのと、AWSってどんな感じになるのかなぁという趣味と調査の意味もあってやってみました。

あんまり学習できてないが、やってみて判ったことがいくつか。

AWSは割と割高感がある

ひとつは、結構AWSは割高感があるなぁということ。

この構成で大体月2万強くらいだったかなぁ。かかります。

オンデマンドで組んでたので、リザーブドインスタンスで契約すればもっと安くはなります。ただし、前払い金額が必要。前払い金額を用意するのが困難だったのと、正直この構成でいいのかという疑問があって長期契約オプションに二の足を踏んだ。t1.microはねぇ… で、スモール以上を2台にすると破産しそうなので、止めた。

あと、青空文庫OPDSではあまり問題にならないが、転送料金が別途かかるというのはサイトによっては費用に響くかも。

ただ、個人的には、コストがかかる場所には相応の費用がかかるのが望ましいと思う。

転送量組込みで上限がないと、圧迫する人が必ずでる。帯域制限もなく、追加費用もかからない、でも好き放題使えるというのは幻想のように思う。応分の費用を負担するか、コスト計算時の想定分岐点で帯域制限がかかるか、どちらもないというのは、ね。まあそういう夢世界に行きたい所ではあるのだけど。

t1.microは使い勝手が難しい

一番安いのは確かなんだけど結構どこで使うかというのが難しい。

マイクロインスタンス(t1.micro)は、少量かつ一定量の CPU リソースをご提供するプランです。追加サイクルが利用可能であるときは、CPU 処理能力を短期バーストとして増大させることができます。このタイプが適しているのは、低スループットのアプリケーションやウェブサイトがときどき追加コンピュートサイクルを必要とする場合です

Amazon EC2 インスタンスタイプ

CPUのパワーはともかく、結構な頻度でストールがおこる。それも割と長い間ストールする。

ストールを起すと、その期間処理が止ります。遅いながらもゆっくり実行されるというより、ストールしている間はぴったりと全処理が止るような感じ。

ある程度負荷が高い状態がつづくとストールしてしまい、その間はぴたっと全処理が止るので結構ストールしているのが表から判ってしまう。

なので、どういう所に t1.micro を使うかというのは、結構難しいなぁと感じました。

EC2のデフォルトはスモールインスタンスなんだけど、これが最低水準かなあという気がします。

移転先

移転した先は「さくらのVPS」の4Gのタイプ。

初期費用が 5980円。月額が3980円。

今回はロードバランサなし。WebサーバーとDBサーバーが1台の上にのっています。

4台構成から1台構成にして、1台のスペックが高くなったという状態。

トータルの金額は大分安くなりました。対障害、負荷適応能力はさがったけど、まあ使われないサービスだと思うので…

OPDSのコールの時間はそんなに変ってないように思う。プログラムと構成がアホだから…

ただ内部的には早くなった部分もあります。

とある処理をかけた時、AWS時代は作業完了まで14分強かかったものが、さくらのVPSだと2分半ばくらいで終ります。

大体1/4以下の時間で終了する。

ストールは(今の所)起らないのと、I/O waitが殆どおきません。仮想サーバーつかってると、CPUよりもI/O waitが先にかかって律速されてくることが多い。これがおきてない上CPUにもまだまだ余裕がある、という印象をもちました。

AWSの t1.micro だとCPUもそうだが、それ以前にI/O waitが結構あり、その上でがつんとストールするので精神衛生上よろしくなかった。

それでもAWSは魅力的

AWSは、手間をお金で買う印象がある。

AWSと費用だけで比べたら、たぶんさくらのVPSや、同種のサービスの方がコスト的にはメリットがあるのかな。特にレンタルサーバーを借りるという感覚だと。

さくらのVPSは、初期費用が必要でVPSとしてはどうなんだろうという印象がある。インスタンスを立ち上げても、よくわからない住所確認のハガキをまって管理者ページから登録するとかいう、面倒なものもある。あれって、意味はなんとなく想像できるけど、本当に無駄で面倒だなぁ。

まあさくらとしては、VPSは安い専用レンタルサーバーとして考えてるんだろう。

AWS的なものは、「さくらのクラウド」でやってね、と。でも、さくらのクラウドはあんなことになってしまって…

AWSは、初期費用は不要。いくらでも好きな時に好きなインスタンスタイプで起動できる。

実際、初期設定を t1.micro でやるとコンパイルとか時間かかっておかしくなりそうだった。なので、EBSタイプにして、セットアップは性能の高いラージとかでおこない、できあがったEBSをベースに t1.micro を使ってサービスに利用した。こういうことは、さくらのVPSみたいなのでは無理。

また、ベースになるEBSを作ったら、それを元に運用やテスト用のインスタンスを起動できる。初期設定のかなりの部分は繰り返しやらなくてもいい。ベースのEBSを利用して、その後の変更分だけデプロイすればいい。

実際、テスト用のインスタンスも利用してるけど、普段は止めてあり課金されない(EBSの料金はかかるけど)。利用したい時だけ起動できるので、microとか言わなくてもいい。結構嬉しい。

ELBがあると、運用マシンの更新も楽。

一定量以上の変更がある場合は、別途インスタンスを起動しセットアップする。サービスできる状態になったらELBの設定で、新しく用意したマシンの接続と既存のマシンの切り離しをすればいい。サービスを実質止めなくても、ある程度は大きな変更も可能。初期費用がないので、重複する数時間分くらいの料金の重複で移転できるので気楽。

こういった機能を、APIを使って自動コントロールすることもできる。

青空文庫OPDSでは使っていないが、CloudFrontなんかも、静的なファイルの配信には便利。

S3も分散ストレージとして便利。

そういった便利なモノが、どんどん追加されていっている。

こりゃ信者もできるってもんだよね。

まあ私は貧乏なので御布施ができずに、似非信者状態なんだけど。ある程度お金さえあったら、使えるサービスは手間賃を払って便利に利用したいと思う。

逆にいうと、まだまだ対抗事業者はアマゾンの疾走についていけてないなぁという気はする。