AWS Startup ブログ

カオスエンジニアリング・OSS セキュリティの権威が語る。海外スタートアップ急成長の裏にあったもの【CTO Night & Day 2019 Keynote 1 & 2】

CTO や VPoE など、技術の立場から企業経営に関与するリーダー・マネージャーのための招待制オフサイト・カンファレンスである CTO Night & Day。2019年10月9日に行われた Day1 では、国内外の著名 CTO・CEO の方々4名による Keynote が実施されました。本稿では、Gremlin Inc の Co-Founder & CEO である Kolton Andrus 氏と、Snyk Ltd の Co-founder & CEO である Guy Podjarny 氏による Keynote の模様をお届けします。

 

Break Things On Purpose
Gremlin Inc Co-Founder & CEO Kolton Andrus 氏

Gremlin Inc の Co-Founder & CEO である Kolton Andrus 氏は、Amazon や Netflix でソフトウェアエンジニアとしての経験を積んだ後、カオスエンジニアリングのプラットフォームを提供する Gremlin Inc を創業しました。カオスエンジニアリングは、いかなる課題を解決するものなのでしょうか? そして、Gremlin Inc の目指す世界観とは?

 

まるで“ワクチン”のように、カオスを注入して障害への耐性をつける

Kolton 氏は、Amazon や Netflix などの企業でエンジニアとして働いた後、Gremlin Inc を創業しました。Amazon において、Kolton 氏は巨大なトラフィックを有する EC サイトを担当するエンジニアでした。Web サイトを安定稼働させることや、もし障害が発生した場合でも、可能な限り素早く復旧させることが、Kolton 氏の仕事だったのです。

「本番環境で障害が発生すれば、エンジニアは対応に追われ、体力や精神力を消耗します。何より、サービスのユーザーに非常に迷惑をかけてしまいます。障害とどう立ち向かうべきか、この頃から深く考えるようになりました」

Amazon を退職した後、Kolton 氏は Netflix に入社しました。Kolton 氏が中心メンバーとなり、導入を推し進めたのがカオスエンジニアリングでした。これは、「稼働中のサービスにあえて擬似的な障害を起こすことで、システムが障害に耐えられるかを確認する手法」です。Netflix がオープンソースソフトウェアとして公開した ChaosMonkey の普及をきっかけに、この手法は世界中で知られることとなりました。

障害の起きないシステムを構築することは不可能です。だからこそ、「障害が起きることを前提として、どう耐性をつけていくか」を考えることに、この手法の大きな特徴があります。Kolton 氏は、カオスエンジニアリングを“ワクチン”に例えて解説しました。

「数百年前までは『(ワクチンはウイルスを不活化または弱体化させたものであるため)有害物質を体に取り込むなんてとんでもない』と多くの人が考えていました。ですが現代では、ほとんどの人が『免疫力をつけるには当たり前のこと』と理解しています。それと同じことが、カオスエンジニアリングにもいえます。カオスをシステム上で手懐(てなずけ)ることが、何よりも重要なのです」

この手法を世に広め、世界のソフトウェア開発をより進化させるべく、Kolton 氏はGremlin Inc を創業しました。

カオスエンジニアリングにおける重要なリスク低減の考え方として、“爆発半径”というものがあります。これは、できるだけ小さい部分から実験を始めて、うまくいけば徐々に領域を拡大していく、ということです。

例えば、まずは開発環境やステージング環境で、少数のサーバやネットワークへ障害を注入します。うまくいったならば、さらにその影響範囲を増やしていくのです。想定どおりの結果にならなくても、焦る必要はありません。むしろ、それが開発チームにとっての学びになります。現在のシステムが、どのような脆弱性を抱えているかが明らかになるからです。

カオスエンジニアリングにおいては、仮説と検証のサイクルをくり返し、科学的な手法でシステムの挙動を理解していくことが求められます。一連の検証がうまくいったならば、今度は実験の場を本番環境に移します。ふたたび、少数のサーバやネットワークへ障害を注入し、爆発半径を少しずつ広げていくのです。

必ず、開発環境やステージング環境だけではなく本番環境でも検証することが求められます。なぜなら、実際にユーザーがいるのは他でもない本番環境だから。カスタマーエクスペリエンスに影響がある環境で、うまくいくかどうかを検証することが重要なのです。

 

カオスエンジニアリングを通じて、インターネットの世界をより良いものに

Kolton 氏は Gremlin Inc におけるプロダクト開発の指針についても解説していきました。

「私は Amazon や Netflix での経験から、エンジニアが簡単に使えるツールを提供することが、非常に重要だと学びました。良質なユーザーインターフェースで、たとえ障害発生時でエンジニアに気持ちの余裕がないときでも、直感的に操作しやすいツールを提供すること。それが、Gremlin Inc における重要な指針になっています」

また、同社のカオスエンジニアリングプラットフォームは「現実世界でこれまでに起きた障害をベースにしたシナリオが用意されている」ことにも大きな特徴があります。

例えば、DNS サーバーが DDoS 攻撃を受けてダウンしてしまったケース。Amazon S3 へ急に接続ができなくなり、静的なファイルが利用できなくなってしまったケース。AWS の特定のアベイラビリティゾーンが使えなくなった際に、フェイルオーバーができるかどうかを検証するケースなど、その種類は非常に豊富。

自社の開発メンバーだけで、こうした多種多様な障害のシナリオを考え、障害を再現させ、訓練を行うことは極めて困難でしょう。だからこそ、各種の障害の再現を容易にしてくれる Gremlin Inc のプラットフォームは、大きな価値を持っています。

また、トラフィックが発生する国やデバイスの種類を指定したり、障害の発生割合を指定することも可能です。こうした機能によって、よりリアルなシミュレーションを可能にしているのです。Kolton 氏は「Gremlin Inc では、システムの運用業務に携わる“実務者”の立場に立って、プロダクトを開発していくことを非常に重視しています」と強調しました。

「他でもない私自身が、エンジニアとして障害対応のつらさを経験してきました。アラートが鳴って深夜に叩き起こされたこともあります。精神的につらいなか、自分のボスに何が起きたのかを説明したことも覚えています。何より、大切なユーザーに迷惑をかけてしまうのは非常に苦しいものです。

だからこそ、Gremlin Inc はその痛みを知っている人たち、障害への対応策を考えたい人たちのために、プロダクト開発を続けています。インターネットの世界がより良いものになるように、私たちは尽力していきたいです」

システムの開発・運用を続けていくなかで、障害が起きてしまうことは避けられません。その課題に対し、カオスエンジニアリングが極めて有効であること。そして、この手法を通じて Gremlin Inc がどのような世界を実現していきたいのかが、大いに伝わるセッションとなりました。

 

The Snyk Journey 〜Sep 2015 till today〜
Snyk Ltd Co-founder & CEO Guy Podjarny 氏

次の登壇者は、Snyk Ltd の Co-founder & CEO である Guy Podjarny 氏です。オープンソースソフトウェアの脆弱性を検出・解消するセキュリティプラットフォームを提供する Snyk Ltd が、創業から現在までたどってきた歴史についてふり返りました。

 

「良質なオープンソースソフトウェアの脆弱性データベースがない」という課題を、解決するために

「私たちは、デブ・ファーストのセキュリティ企業」と Guy 氏は解説します。現在、Snyk Ltd はオープンソースソフトウェア用のセキュリティ製品と、コンテナ用のセキュリティ製品を扱っています。「開発者はセキュリティにも責任を持つべきである」というビジョンのもと、事業展開を行っているのです。

同社は2015年の創業から4年目を迎え、1億ドルの資金調達を成し遂げました。また、製品のユーザー数は40万人を超え、400社以上の顧客企業を抱えています。登壇時点での従業員数は約180人にものぼっています。2018年1月時点での従業員数は20人ほどだったといいますから、その成長の著しさがわかります。

では、Snyk Ltd はどのような歴史をたどってきたのでしょうか。Guy 氏はその歩みを初年度からふり返っていきました。同社の創業メンバーたちは「昨今ではセキュリティの重要性が大きくなっているにもかかわらず、良質なオープンソースソフトウェアの脆弱性データベースがない」ことに気づき、製品の開発に取り組みます。

最初に誕生した製品は、Node.js/npm 向けの、オープンソースソフトウェアの脆弱性を発見・解消する CLI ツールでした。そして、このツールは多くのユーザーに受け入れられました。ベータ版でのリリースだったにもかかわらず、何万ものダウンロードと、何千ものユーザー登録があったのです。しかし、その後の正規版のリリースまでに、彼らはある課題に直面することになりました。

「非常に多くのユーザーに CLI ツールを導入していただいたにもかかわらず、継続的に利用していただけなかったのです。まだまだ、機能が充実していませんでした。より利便性の高い製品へとブラッシュアップしていこうと、正規版のリリースに向けてさまざまな機能を実装していきました」

なかでも、非常に価値が高かった機能は GitHub との統合です。わずか数クリックの操作を行うだけで、各リポジトリの抱える脆弱性をモニタリングできるようになりました。特定の Pull Request が脆弱性を内包している場合には、GitHub 上でのビルド段階で検出できるようにもなりました。

また、最大の改善点はライブラリの脆弱性を自動的に解消してくれる Pull Request 機能です。何か特定のライブラリなどに脆弱性が検出された場合に、「どのような修正を加えるべきか(例えばライブラリのバージョンアップを行った方が良い、など)」の情報を提示した Pull Request が自動発行されるようになったのです。

 

正規版で導入された数多くの機能により、ユーザー数はさらに拡大しました。継続的にツールを利用する方の割合も増えていきました。ですが、まだ課題は残ります。有料プランに加入するユーザーがなかなか増えなかったのです。

「その課題を解決するには、より多くのプログラミング言語・ライブラリのサポートを行い、他のソフトウェアとのインテグレーションを充実させる必要がありました。経験から多くのことを学び、企業は2年目のフェーズに入りました」

 

ソフトウェアのセキュリティを守ることは、すべてのセキュリティを守ること

その後、Snyk Ltd はエンタープライズ向けに Ruby や Java、Python などのプログラミング言語もサポートしました。さらに、GitHub Enterprise との連携機能も実装したのです。その他にも機能の追加を続け、開発やテスト、CI/CD など広域をサポートする製品へと成長を遂げました。

 

また、数多くのパートナー企業が増えたことによって、脆弱性のデータベースは一層の充実を見せていくことになります。資金面においても、複数の投資家からシリーズ A の 700 万ドルの資金調達を行うことに成功しました。

「事業が徐々に軌道に乗り始め、3年目へと突入しました。この時期から、企業としてさらに規模を拡大するため、どういった方向性で製品を成長させていくべきか、方向性を見定めていく必要が出てきました。

私たちの製品に欠けていたのは、エンタープライズ向けの各種機能です。例えば、シングルサインオンやレポーティング、グルーピングなどの機能を充実させることが必須でした。また、もともとはエンジニアが中心の企業だったのですが、事業を成長させていくために営業やカスタマーサクセス、マーケティングの担当者を増やし、マーケットチームを充実させていきました」

さらに、この年にはふたつめの製品をリリースすることになります。コンテナ用のセキュリティ製品です。近年、コンテナの需要は急激に伸びていますが、新しい技術には多くのセキュリティのリスクが伴います。さらに、コンテナはその技術特性上、脆弱性対応のパッチを当てることが、従来の仮想マシンよりもさらに難しくなります。この課題を、同社は解決しようとしたのです。

こうした着実な改善の積み重ねにより、3年目の Snyk Ltd は急成長を遂げます。2018年1月には23人だった社員が、2018年の終わりには70人に増加しました。2017年と比較して、2018年には7倍の収益を達成しました。さらにベンチャーキャピタルである Accel から、シリーズ B の 2,200 万ドルの資金調達を行います。4年目である2019年には、さらなる躍進を遂げました。

「幸いなことに、私たちは事業をスケールさせることができました。まだまだたくさんの課題があり、毎日が冒険です。しかし、企業は成長しても、目指すビジョンはけして変わりません。

現代社会を端的に表すならば『Software is eating the world(ソフトウェアが世界を食い尽くしている)』といえるでしょう。インフラ構築も、徐々にソフトウェアによって定義されるようになってきています。そして、ありとあらゆるものが IT 化されつつあります。

ソフトウェアのセキュリティを守ることは、すべてのセキュリティを守ることにつながるのです。だからこそ、私たちはこれからも、デブ・ファーストのセキュリティ企業として世界を牽引していきたいと考えています」

創業期から現代にいたるまで、「ユーザーにとっての課題は何か」「どう事業を成長させていくか」というテーマと徹底的に向き合ってきた Guy 氏。だからこそ、彼の語る「世界を牽引していきたい」という言葉は強い説得力を持っていました。