運用の自動化、簡易化を支援するHashiCorp Stack
「ランチセッションなので少し緩い感じで」と前置きして始まった長谷川氏のセッション。まずは自己紹介から始まった。長谷川氏はGMOインターネットやヤフーなどを経て、ソーシャルゲームを展開するgloops(当時はGMS)に入社。開発部長、執行役員などを経て、2014年にgrasysを設立した。「2012年にDellのテレビコマーシャルに出るなど、ちょっと特殊な経験もしている」と長谷川氏は笑う。
grasysは創業5年目、社員数は15人という極めて小規模なベンチャーだ。そんな規模ながら、 Google Cloud のプレミアサービスパートナーを務めている。また、同社は創業当初からHashiCorpの製品を使っており、「HashiCorpのサービスパートナーを務めている」と長谷川氏は語る。
grasysが従事している Google Cloud Platform のプロジェクト数は140個。エンドユーザーはのべ2億超。4500台のVMを運用しており、あるシステムでは秒間200万リクエストをさばくインフラや、1日800億レコードを出す BigQuery の分析基盤を運用している。
こういった大規模なインフラを少人数で運用できるのも、「日々、自動化・簡易化する努力をしているため」と長谷川氏は胸を張る。その一端を担っているのが、HashiCorpの製品群である。
「当社もかなり使っている製品」として、長谷川氏が最初に取り上げたのは、「Terraform」である。Terraformはあらゆるパブリッククラウドやクラウドサービスのプロビジョニングをコード化するツールである。特徴としては、一貫性の保持、異種混在性、依存関係の管理の簡易化、スケールコントロールの簡易化などが挙げられる。
HashiCorpの製品はオープンソース版と有償版が存在しており、Terraformの有償版の特徴としては、構成ファイルのロールバックとバージョンコントロール、監査ログ、CIとの統合、Team Management、Terraformのバージョン管理の簡易化、Sentinelによるポリシーの検証などの機能が提供されていることなどがある。また、Terraformはいろいろなクラウドサービスに対応しているのも特徴だ。
図はインスタンスを作る際のテンプレートのパラメータ部分を設定する場面。これでアプライすると3台のサーバができる。「台数を増やしたり、減らしたりが容易にできるのがわかっていただけるでしょう」と長谷川氏。
「当社はゲーム関連のインフラの仕事が多い。多くのゲーム開発者や、デバッグを担当する企業と連携して仕事をしている。複数の企業と連携するため、たくさんのIPアドレスを管理しなければならず、穴を開けたり閉じたりと作業が大変だった。Terraformは、その辺りの作業を効率化してくれる。DNSは名前とIPアドレスをひも付け、定義に落としていつでも再現できるようにしてくれるのでわかりやすい。バックアップと再現性を含め、非常に便利なツールだ」と長谷川氏は説明する。
次に取り上げたのは「Vault」。主にセキュリティを担当するミドルウェアだ。同製品も、先述したようにオープンソース版と有償版がある。オープンソース版の主な機能としては、シークレットストレージ(金庫)、ダイナミックシークレット(シークレットエンジンとも言われる)、Data Encryption(データの暗号化)、Lease&Renewal(アクセス権の付与や更新)、Revocation(無効化)などがある。
一方、有償版のVault ENTERPRISEは主に運用に関わる部分が強化されている。「Vaultは個人的にはすごく可能性を感じているツールだ」と長谷川氏は力を込める。今回はユースケースの紹介はなかったが、世界的な有名企業で使われているという。grasysでも、GCPとAWSのLinuxユーザーの鍵の管理や、Bitbucketの個人鍵の登録・削除などの管理に、Vaultを使い始めているという。「日本ではまだ注目はされていないが、ぜひ、使ってほしい」と長谷川氏。
3番目に取り上げたのは「Consul」。非常に多機能な製品で、サービスディスカバリ、ヘルスチェック(監視)、キーバリューストア、コンフィグレーション・コンソール・テンプレート連携、オーケストレーションなどの機能を提供する。
grasysが運用している4500台のVMのほとんどにConsulが入っているという。「これがないと運用ができないぐらい、Consulに依存している」と長谷川氏は明かす。
どのくらい便利に使えるのか。サービスディスカバリの機能によって、次のことが容易にできるようになるという。「members」と入力すれば、ジョインしているサーバの一覧がすべて表示される。また「catalog services」と入力すると、システムで登録されているミドルウェア群が表示される。さらにそのサービスがどこにあるのか知りたい場合は、DNS Lookupを使えば、MySQLに対して問い合わせをかけ、その台数が答えとして返ってくるという。
最後に長谷川氏が取り上げた製品は「Nomad」。「これは端的にいうとスケジューラー。例えば複数台でのバッチ処理のスケジューリング、アプリの起動やデプロイといったクラスタマネジメントに便利に使えると思う」と長谷川氏。実はgrasysではほとんど活用していない。その理由は同社のプロジェクトは Google Cloud を使ったものが多いため、スケジューラーも GKE を使っているからである。