「より良いインフラ」へとアップデートし続けるために
続いて黒澤氏は、ディライトワークスでの現在の取り組みを解説していく。各種のパブリッククラウドのなかで、同社でもっとも利用されているのはAWSだ。インフラ環境を構築する場合、基本的にはマネジメントコンソールから画面上での操作を行っている。だが、マネジメントコンソールによる環境構築は、作業量が多くなると時間もかかり、ミスも増える。
そこで同社は、インフラのコード化を推進した。用いられたのは、AWS CloudFormationやTerraformといったプロビジョニングツールだ。これにより、作業が効率化され、所要時間やミスが大幅に軽減された。「エンジニアへの負担が減ることで、新しい技術を学ぶための時間が確保できることにも意義があります」と黒澤氏は解説する。
とはいえ、どれほど効率化しようと環境構築の作業そのものがなくなるわけではない。そこで、SREチーム内で議論を行った結果、「非エンジニアの利用者でも、開発環境が10分で作成できるような仕組みをつくれないか」というテーマが立ち上がった。
用意する対象は、Amazon Route 53やAmazon CloudFront、AWS Elastic Beanstalk、Amazon Aurora、Amazon ElastiCacheといったサービス群である。だが最初のうちは、これらのリソース作成をコード化しても、環境の完成までに2時間弱もの時間がかかってしまったという。
そこで、所要時間を極力短縮できるような工夫を行った。まず、特定のリソースを作成するのに、「他のリソースとの依存関係があるか」「作成までどれくらいの時間がかかるか」「作成後、リソースを使わなくても費用が発生するか」などの点を洗い出した。
作成だけでは費用が発生しないリソースならば、あらかじめつくっておくようにし、時間課金が発生するリソースに関しては、利用するタイミングで用意する方針にした。この設計を採用したことにより、10分には収まらなかったものの、わずか20分で環境の新規構築が完了するようになったという。
「今後は、サービス冗長化と監視体制の強化を進めていきます。冗長化のための取り組みとしては、マイクロサービス化による障害発生影響の局所化、マルチクラウドの利用による復旧の容易化、カオスエンジニアリング(システムを自動復旧できるようなアーキテクチャにしておき、そのうえで障害を意図的に発生させてサービス継続が可能かどうかをテストする手法)の導入などを想定しています。
監視体制の強化としては、ログの収集や分析、可視化を推進していきたいです。とりわけ、分析作業には人の力だけではなく機械学習やAIなども活用し、サービスへ良いフィードバックを返していくことが重要だと考えています」
黒澤氏のキャリアは、「時代ごとに必要な技術を学び、周囲の協力を得ながら実績をつくっていく」ことのくり返しだ。それを実現するには、新しい技術を学べる場へ自分の身を置き、工夫を続けながら技術を会得するための環境や時間を確保していくことが重要となる。その意義が十分に伝わるセッションとなった。
お問い合わせ
ディライトワークス株式会社