サイト内検索
サイト内検索を閉じる

インフラ自動化を実践するコツ

DX推進や、それを支えるクラウド化の進展により、ビジネスに合わせた迅速な変化が求められる昨今、それを支えるITシステムの基盤もスピーディーに構築・変更・運用することが求められています。そのような背景から、Infrastructure as Code(IaC)をはじめとする技術でインフラ作業を自動化することは必須になってきており、本記事ではインフラ自動化を実践していく際のポイントについてアマゾン ウェブ サービス(AWS)のケースを取り上げながらご紹介していきます。

インフラ自動化が思うように進まない理由

インフラ自動化の必要性は認識されつつも実際の現場では十分に浸透しているとは言えないのが実情です。インフラ自動化が思うように進まない理由として大きく2つが挙げられます。

いくつかの自動化を導入する大きなコスト

インフラ自動化を実現する代表的なIaCツールにはAnsible, Serverspec, AWS CloudFormation, HashiCorp Terraformがありますが、それらのツールを使えるようになるには一定の学習コストがかかります。また、自動化する内容をそれぞれのツールに応じたコードやテンプレートとして定義する準備コストもかかります。これまでインフラ領域に従事してきたエンジニアはプログラミングに苦手意識があることも多く、学習・準備コストがかかることに「とっつきにくさ」を感じてしまいがちです。更には、自動化によって従来の作業プロセスを変えることに抵抗を感じることも多く、「自動化したら品質が下がるのでは?」という意見の前になかなかインフラ自動化に踏み切れないケースも散見されます。

汎用性の低い自動化導入

苦労して自動化を実現しても効果を実感できないケースも多々あります。例えば、インフラ基盤を初期構築する作業をIaC化しても、同様の基盤を構築するシーンがなく作成したコードを再利用できなくなることや、高度に自動化したコードを開発したものの運用体制にコードを理解できる者がおらず、維持ができなくなることがあります。

自動化レベルを上げていくという考え方

さきほど自動化が進まない理由を挙げましたが、筆者はどんな現場にも最適な自動化手法というのはそもそも存在せず、対象システムの環境制約、開発・運用メンバーのスキル、システムに求める更新頻度といった側面から最適な自動化手法を選択すべきと考えています。そこで、現場のニーズに合致する自動化手法を選択しやすくするためには、レベル分けして整理しておくとよいでしょう。
例として導入の難易度に応じて3つのレベル分けをしてみます。

  • レベル1:従来(手動)のプロセスで作業を効率化
  • レベル2:IaC を活用した構築・運用作業の自動化
  • レベル3:CI/CD を活用した構築・運用の自律化

自動化を浸透させるためには、いきなりレベル3を目指すのではなく「とっつきやすい」レベル1から実践して、効果を実感するのが重要と考えています。このようなアプローチにより元来課題だった「自動化への抵抗感」が自然と払拭され、自ずとレベル2,3へレベルアップが図れるようになるでしょう。

「レベル1: 従来のプロセスで作業を効率化」への取り組み例

ここでは導入しやすいレベル1の取り組み例として「AWSインフラのドキュメント作成」を例にとって紹介します。
AWS上にシステムインフラを構築する場合は、構築作業を自動化する/しないに関わらず、実際のAWSリソースの設定値を反映したドキュメントが現場では必要とされます。これらのドキュメントは現状Excelで作成することが多いのですが、AWSマネジメントコンソールを見ながら逐一手動でExcelに転記していたのが実態です。ただ、このやり方はドキュメント作成にかかる作業コストが大きく、また人手作業によるミスも起こり得るため、実際のAWSリソースとは乖離したドキュメントが容易に生成されてしまいます。
そこで、私どもでは実際のAWSリソース情報を反映したExcelドキュメントを自動生成する手法を確立することで、作業の効率化を図っています。また、この手法は筆者が開発した2つのツールを組み合わせて実現しています。

AWSのリソース情報を収集する:CloudGatherFacts

CloudGatherFactsはAWSのリソース情報を収集してJSONファイルに保存するPythonツールです。

収集したいサービス・リソースを設定してCloudGatherFactsを実行するとJSONファイルが保存されます。以下はVPCの情報が出力された例です。

収集したリソース情報からExcelドキュメントを生成する:PROMERG

PROMERGは様々なファイルからExcelドキュメントを作成する.NETツールで、特別なソフトウェアを導入することなくWindowsマシンですぐに実行することができます。

今回の例ではCloudGatherFactsで収集したAWSリソース情報のJSONファイルを利用しますが、PROMERG自体はJSON/CSV/YAML形式のファイルを入力可能ですので、データ収集ツールと組み合わせることで以下のようなことが実現できます

  • クラウドの構成ドキュメントを自動生成
  • サーバーのOSに関する構成ドキュメントを自動生成
  • 構築したサーバーのテスト結果をまとめたドキュメントを自動生成

実際にCloudGatherFactsで収集したAWSリソース情報からは以下のようなドキュメントを生成することができます。

これらのツールは、プログラミングスキルも特別なサーバー、ソフトウェアも必要としないことから、準備コストを気にすることなく導入が可能で実際の現場での活用が進んでいます。また、導入した効果として必要なドキュメントを作業者のスキルに依存せず、何度でも同じものが確実に作れる安心感を得られるようになっています。このことが、元来課題だった「自動化への抵抗感」の払拭にもつながっており、前述したレベル2, 3といった高度な自動化に取り組むきっかけとなっているようです。

インフラ自動化を実践する範囲を拡大、高度化していくために

今回はインフラ自動化を進めるきっかけとして「レベル1: 従来のプロセスで作業を効率化」に取り組んでいる例として、AWSリソース情報を反映したExcelドキュメントを自動生成する手法を紹介しました。
今回の例ではCloudGatherFactsで収集したJSONデータをExcelドキュメントのインプットとして活用しましたが、収集した情報は構成情報として分析可能な形に蓄積することで運用用途にも活用が可能ですので、前述したレベル2, 3の自動化実現に向けた取り組みへと進化させています。

なお、AWSにおいては本格的な運用を考慮するとAWS Configなどのサービスを活用することがベストプラクティスですが、現場の利用者が導入・活用しやすい方式として選択肢の一つになるよう整備を進めています。今後のITシステム基盤に求められるインフラ自動化を実践可能なものとして現場に浸透させていくために、誰もが自動化の恩恵を受けられる仕組みづくりに取り組んでいきたいと考えています。

※ CloudGatherFactsのソースコードはGitHubにも公開しています。
https://github.com/cnc4e/cloudgatherfacts
なお、TISではWindows用のEXEファイルとして配布して利用者が最小限のコストでツールを導入できるようにしています。

著:TIS株式会社 IT基盤技術事業部 IT基盤技術推進部 中西 剛紀

PAGE TOP

サービスに関する資料をご希望の方は、フォームに必要事項を入力いただき、ご送信ください。

資料を請求する

お問い合わせ
各種お問い合わせページ
お問い合わせフォーム
サービスに関するお問い合わせ
お電話
0800-600-9810
携帯電話
050-5816-9805
受付時間 9:00~12:00 13:00~17:00(土・日・祝日を除く)

更新日時:2024年5月23日 10時20分