時代の変遷とともに変わった、インフラエンジニアのあり方
黒澤氏はまず、社会人になってから現在に至るまでの、自身のキャリアの歩みについてふり返る。黒澤氏がエンジニアとしてのキャリアをスタートしたのは2000年ごろ。すべての機器がネットワークでつながれ、インターネットへの常時接続が当たり前になる時代が到来しようとしていたころだ。
「今後はネットワークエンジニアが活躍できる」と考えた黒澤氏は、基礎知識を身につけるためにCisco認定資格であるCCNAに挑戦する。数回のチャレンジの後に、見事合格した。その努力が実を結び、Ciscoの機器を扱う案件を担当できたという。「資格取得に加えて、やりたいことを積極的に周囲や上司にアピールしていったことが功を奏しました」と黒澤氏は語る。
続いて、サーバー仮想化時代が到来する。2006年ごろに仮想化技術の土台を形成したVMware Infrastructure 3が登場したことで、より簡単にサーバー環境を用意することが可能になったのだ。当時の黒澤氏は、ネットワークエンジニアではなくサーバーエンジニアとして業務にあたっていた。しかし、VMware環境を仮想マシンとして払い出す形で社内リリースを行ったものの、コストが高いためなかなかメンバーに利用してもらえなかったという。
そんな折、コストの課題を解決する救世主が登場する。無償版のハイパーバイザであるESXiが登場したのだ。これに黒澤氏は飛びついた。特に開発環境にはもってこいだと考え、試験運用をかねて社内のメンバーに積極的に使ってもらうことにしたという。
「社内展開にあたり重要なのが、組織の上層部と現場サイド両方の理解を得ることです。そこで、全社的なアナウンスを行っただけではなく、現場サイドへの説明会を開いてサーバーについての説明をしました。徐々に利便性が理解されたことで、社内での普及が進んだのです。たとえ良いソフトウェアでも、地道な啓蒙活動を行わなければなかなか普及しません」
次に、クラウドの黎明期に入る。2011年ごろにAWSの東京リージョンが登場したことで、徐々にパブリッククラウドの利用が一般的になっていった。黒澤氏は、無償版ESXiの運用を長年続けるなかで、可用性に関する課題が徐々に見えてきたこともあり「無償版ESXiの課題を解決できること」「AWSに対抗できる価格でインフラを提供できること」という条件を満たすプライベートクラウドの構築を検討していったという。
このプロジェクトはコストを主軸に置いていたため、主にオープンソースソフトウェアを採用した。だが、オープンソースソフトウェアはメーカー製ソフトウェアほどドキュメントは整理されておらず、カスタマーサポートに問い合わせることもできない。そこで、外部の勉強会・コミュニティーに積極的に参加し、情報収集を行った。
インフラ技術者は、ネットワークやサーバー、ミドルウェア、データベースなど幅広い知識を持つ必要がある。しかし、それらをすべて自分の力で学ぶことは厳しい。「だからこそ、外部のエンジニアとのつながりを持ち、情報交換をする姿勢が必要になってきます」と黒澤氏は解説する。
2015年ごろからはAmazon AuroraやAWS Lambdaなどが東京リージョンに登場し、サーバーレスの潮流が起こり始める。このころから、インフラ運用の方法論が変化してきた。インフラに関する作業をコード化する流れが出てきたのだ。
「これから先、インフラエンジニアとして戦っていくには、今まで通りのやり方だけでは通用しません。クラウドサービスの知見を持ち、クラウドに適した手法を取ることが必要とされています。
そこで一大決心し、パブリッククラウドをフル活用しようと考えている企業への転職を検討しました。知人からゲーム業界には臨む場があるという話を聞いたため、現職であるディライトワークスに足を踏み入れます。技術者同士のつながりは、ここでも生かされました」
「より良いインフラ」へとアップデートし続けるために
続いて黒澤氏は、ディライトワークスでの現在の取り組みを解説していく。各種のパブリッククラウドのなかで、同社でもっとも利用されているのはAWSだ。インフラ環境を構築する場合、基本的にはマネジメントコンソールから画面上での操作を行っている。だが、マネジメントコンソールによる環境構築は、作業量が多くなると時間もかかり、ミスも増える。
そこで同社は、インフラのコード化を推進した。用いられたのは、AWS CloudFormationやTerraformといったプロビジョニングツールだ。これにより、作業が効率化され、所要時間やミスが大幅に軽減された。「エンジニアへの負担が減ることで、新しい技術を学ぶための時間が確保できることにも意義があります」と黒澤氏は解説する。
とはいえ、どれほど効率化しようと環境構築の作業そのものがなくなるわけではない。そこで、SREチーム内で議論を行った結果、「非エンジニアの利用者でも、開発環境が10分で作成できるような仕組みをつくれないか」というテーマが立ち上がった。
用意する対象は、Amazon Route 53やAmazon CloudFront、AWS Elastic Beanstalk、Amazon Aurora、Amazon ElastiCacheといったサービス群である。だが最初のうちは、これらのリソース作成をコード化しても、環境の完成までに2時間弱もの時間がかかってしまったという。
そこで、所要時間を極力短縮できるような工夫を行った。まず、特定のリソースを作成するのに、「他のリソースとの依存関係があるか」「作成までどれくらいの時間がかかるか」「作成後、リソースを使わなくても費用が発生するか」などの点を洗い出した。
作成だけでは費用が発生しないリソースならば、あらかじめつくっておくようにし、時間課金が発生するリソースに関しては、利用するタイミングで用意する方針にした。この設計を採用したことにより、10分には収まらなかったものの、わずか20分で環境の新規構築が完了するようになったという。
「今後は、サービス冗長化と監視体制の強化を進めていきます。冗長化のための取り組みとしては、マイクロサービス化による障害発生影響の局所化、マルチクラウドの利用による復旧の容易化、カオスエンジニアリング(システムを自動復旧できるようなアーキテクチャにしておき、そのうえで障害を意図的に発生させてサービス継続が可能かどうかをテストする手法)の導入などを想定しています。
監視体制の強化としては、ログの収集や分析、可視化を推進していきたいです。とりわけ、分析作業には人の力だけではなく機械学習やAIなども活用し、サービスへ良いフィードバックを返していくことが重要だと考えています」
黒澤氏のキャリアは、「時代ごとに必要な技術を学び、周囲の協力を得ながら実績をつくっていく」ことのくり返しだ。それを実現するには、新しい技術を学べる場へ自分の身を置き、工夫を続けながら技術を会得するための環境や時間を確保していくことが重要となる。その意義が十分に伝わるセッションとなった。
お問い合わせ
ディライトワークス株式会社