「10万リクエストにつき、エラーは1回程度に抑える」「セール時でも、ダウンタイムが発生しない」――そんな“安定稼働”を目指し、竹中さんらはまずシンプルな構成を作り、無事に動くかを検証した。必要最小限の「教科書的な作り」を心掛けたが、実際には「502エラー」などが連発。エラーを解消しようにも、原因究明が難航したという。
「調べる範囲が低レイヤーにまたがることも多く、HTTP Connection、TCP/IP Connectionなど、膨大な量のログを調べないといけなかった」と竹中さん。導入時からいきなりそうした課題に直面した。
その後も、安定稼働への道のりは長く「広範囲にわたる知識が必要だった」と竹中さんは振り返る。「学問に王道はなし。1つ1つ、知識を積み重ねるしかない。頑張るしかないところではあった」
知識を必要とするばかりではなく、自分たちが作った環境をいかに素早く検証・実測できるか、というアイデアも求められた。一例として、竹中さんは「本番で稼働している環境を変更しない」というコツを挙げる。
竹中さんが提案するのは、まず検証用のクラスタを作り、そこで検証と実測を行う。そして検証が終われば、そのクラスタは“捨てる”――という方法だ。正しく稼働し、本番に反映させる場合は、本番用に新しいクラスタを作り、これまで動かしていた本番環境と入れ替える。竹中さんは「(本番環境に直接変更を加えると)どの環境で何を変更したのか、絶対に忘れてしまう」と指摘する。
「覚えることは多く、つまづく部分もあったが(今は)安定した運用ができている。クラウドへの移行でリソース不足の心配もなくなった」と竹中さんは話す。「(今回のプロジェクトに参加するまで)インフラの運用に携わったことがない上、チームメンバーも少なかったが、この規模で安定稼働ができた」
今後は、マルチクラウド化も進める。現状はMicrosoft Azureのみを使っているが、それ以外のベンダーのクラウドと併用する方針だ。「クラウドサービス自体がダウンすることもあり得るので、1社のクラウドがダウンしても他社のクラウドが稼働していれば、ZOZOTOWNのサービスを維持でき、顧客には影響が出ない。そんな状態を目指している」
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR