Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

強いインフラチームをどう作る? Infrastructure as Code徹底活用術【デブサミ2019夏】

【A-5】Infrastructure as Codeでインフラチームはもっと強くなる ~ぼくのかんがえたさいきょうのいんふらちーむ~

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/08/07 12:00

 「どのようにして強いインフラチームをつくるか」は、多くのIT企業にとって悩みのタネだ。運用の属人性をなくし、各メンバーの業務負荷を減らしていくことは、達成することが非常に難しい目標である。この難題を見事クリアしているのが、自動車業界向けパッケージシステムの開発・販売を行う株式会社ブロードリーフだ。同社の持つ「強いインフラチームをつくるためのノウハウ」を、インフラエンジニアの左近充裕樹氏が明かした。

目次
株式会社ブロードリーフ 開発本部 情報基盤部 ネットワーク課 左近充裕樹氏
株式会社ブロードリーフ 開発本部 情報基盤部 ネットワーク課 左近充裕樹氏

Infrastructure as Codeが運用の属人化を防ぐ

 左近充氏はまず、ブロードリーフで使用しているインフラ環境の詳細について解説する。同社はGCP、AWS、オンプレミスなど複数のプラットフォームを利用してサービスを提供している。

 構築している環境は主に「dev(開発)」「stage(ステージング)」「prod(本番)」の3つ。これが各プロダクトやプロジェクトごとに存在しているため、トータルの環境数は何十もの数になるという。また、使用しているサービスやミドルウェア、ソフトウェアは下図のとおりだ。

 インフラのチームの人数は5名(東京3名、福岡1名、札幌1名)。これほどの規模のシステムを、5名で管理するのは大変なことだ。うまくシステムを運用するには、少人数で多くの環境を管理するための仕組みが必要である。それこそが、Infrastructure as Code(IaC)だ。

 「ブロードリーフのインフラチームは、ここ数年間でIaCに注力してきました。IaCとは、ソフトウェア開発のプラクティスをインフラのオートメーションに生かすアプローチのこと。コードによるインフラの管理を行うことで、インフラ構築の冪等性を担保し、自動化を可能にします。作業の属人化が排除されますし、作業工数も削減できるのです」(左近充氏)

 ブロードリーフではIaC実現のためのツールとして、パブリッククラウドのリソースにはTerraformを、OS以上のレイヤーにはAnsibleを、サーバーイメージのパッケージングにはPackerを使用している。

 また、仮想マシンのデプロイのために、CI/CDパイプラインによるイメージの構築を行っている。開発チームがGitLabにモジュールをコミットするだけで、デプロイが可能になっているという。処理フローは以下のとおりだ。

  • 開発者がデプロイしたいモジュールをGitのリポジトリにコミット
  • パイプラインがキックされ、TerraformやAnsible、Packerが入ったリポジトリからパイプラインを起動
  • Workerのインスタンス上で、アップされたモジュールを使って新しいAMIを作成
  • 新しく作ったAMIからインスタンスを作成してスケールアウト
  • 古いインスタンスを削除してスケールイン。新規作成されたインスタンスだけが残る(ただし本番環境の場合は、スケールアウトとスケールインは事故防止のためマニュアルでパイプラインを実行している)

 コンテナのデプロイの場合は、GKE(Google Kubernetes Engine)やAmazon EKSなどのパブリッククラウドはTerraformで管理しており、インフラチームの担当領域。この上に乗るコンテナは開発チームの担当領域となっているそうだ。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:【デブサミ2019夏】セッションレポート

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5