少人数でGCPを運用するgrasys どんなツールを使い分けているのか?
grasys 代表取締役社長 長谷川祐介氏はYahoo Japan、大手ゲーム企業、gloopsなどインフラやゲームの世界で経験を積み、2014年にgrasysを設立した。社名はスペイン語で「ありがとう」を表す「gracias」と「system」を掛け合わせたもの。「これまでの経験やお客様、仲間に感謝を込めた」と長谷川氏は言う。
「grasysはGoogle Cloudのプレミアサービスパートナーですが、GCPのヘビーユーザーと言ったほうがぴったりくる」と笑う長谷川氏。同社はクラウドインテグレーターとして大規模なゲームパブリッシャーやファッションメディアなどのインフラやデータ分析を手がけている。顧客のインフラを手がけているところからMSP(Managed Service Provider)と認識されがちだが、一般的なMSPのように明確に役割分担せず、顧客の環境に深く関わる。顧客インフラのアーキテクチャ設計や負荷計測を一緒に行い、障害復旧も協力するなど、「(インフラを支えて顧客の)プロダクト開発に参加することが我々の存在意義だと考えています」と話す。
grasysは創業5年目、社員はまだ17名。うちエンジニアは12名。それでいてVMインスタンスは4500以上となるほど、かなりの規模を運用している。運用には自社開発したツールのほか、オープンソースやパートナー企業のツールを組み合わせているという。自社開発製品にはオーケストレーション「gorc」、監視用プログラム「gmonitor」、監視通知「galert」、ドキュメントの転送を自動化する「gdoc」がある。
オープンソースでは「Prometheus(コンテナモニタリング)」、「influxdb(時系列データベース)」、「Grafana(可視化ツール)」、「Vuls(脆弱性スキャナ)」、パートナーのツールには、HashiCorpの「Terraform」、「Consul」、「Vault」、elasticだと「elasticsearch」、「kibana」、「beats」、「logstash」などがある。
長谷川氏はシステムの特性や要件に合わせて監視すること、規模に影響を受けないオペレーションに力を入れており、傾向監視や状況把握にメトリクスやログのデータが重要となるためデータ収集には力を入れているという。
実際の監視環境におけるアーキテクチャは下図のようになる。オンプレミスやGoogle Compute Engine(以下、GCE) クラスタではgrasysのgmonitor、Kubernetes側(GKE)はPrometheusで監視している。運用効率を高めるにはGCEとGKEを同じ画面に統合することが重要と考え、データをGrafanaで統合している。アラートはいったんgalertで受けてから、要件に合わせてslackやChatworkなどに通知するようにしている。
GCPのエキスパートである長谷川氏はよく「GCEとGKEをどう使い分けているか」と質問されるという。確かに気になるところだ。
長谷川氏はこのように回答する。「GCEは基本的にVMなので自由度が高い。そのためリアルタイムでパラメーター変更が容易だ。通信要件が厳しい(負荷が高い)、接続時間が長いものなど(に向いている)。一方、GKEはフロントエンドがHTTP系、シンプルかつ薄いTier構成、ネットワーク的に疎結合の時に選ぶことが多い。ある程度の規模感が維持できる状況であることも選定上は重要で、その上でポータビリティが必要な状況においては良い成果が出やすい。すぐに運用開始できるのがいいところではあるが、事前の設計を入念に行うべき」。