生成AIの活用はアプリケーション開発の分野で急速に進んでいますが、アプリケーションを動かすためのITインフラ構築・運用業務にも生成AIを活用することで、業務の効率化が期待できます。そこで本連載は、ITインフラの構築・運用フェーズで生成AIがどう役立つのかを解説します。第1回は、まずITインフラ業務の現状を整理し、生成AI活用の全体像を紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
生成AI(人工知能)の進化により、文章はもちろん、写真、音楽、デザインなども生成できるようになり、多くの分野で活用が進んでいます。特に、アプリケーション開発の現場ではAIコーディングエージェントの活用が急速に進み、日々の業務に欠かせない存在となりつつあります。
特にITエンジニアの現場で最も注目されているのが「コード生成」の進化でしょう。読者の皆さんもご存じのように、AIに対して「ToDo管理機能を作りたい。入力項目はタイトルと内容、削除と更新機能も追加。PythonのWebアプリで」と、仕様や機能を大まかに伝えるだけで、AIが目的に沿ったコードを出力するようになりました。
最近では、AIに指示を出しながら会話するように(あるいはAIに実装を完全に任せて)開発を進めるスタイルのことを「バイブコーディング」と呼ぶこともあります。
これまでプログラミングといえば、まず書籍などで基礎を学び、先輩に教わりながら試行錯誤し、バグが出ればインターネットを検索しながら夜遅くまで修正する――そんな流れが当たり前でした。ところが生成AIの進化で、このスタイルは大きく変わりつつあります。今や自然言語でプログラムを作る時代です。
ただ、アプリケーション開発における生成AIの活用が大きく注目され、先ほど紹介したバイブコーディングも、開発の文脈で語られることが多い印象です。
しかし、アプリケーションを動かすためには、ITインフラが欠かせません。仮想マシン(VM)のように自由度の高い実行基盤、アプリケーションの実行に特化したマネージドでスケーラブルなPaaS(Platform as a Service)、ファイルを保存するストレージ、データを扱うデータベース、さらにはこれらをつなぐネットワーク――アプリケーションの実行を支える基盤は多様です。しかも近年は、複数のインフラがさまざまなプロトコルで複雑に連携するようになり、設計や運用の難易度は増す一方となっています。
こうした複雑化したITインフラの構築や運用業務は、まさに生成AIによる効率化が期待できる分野でもあります。バイブコーディングのように、ITインフラも自然言語で構築・運用できれば、ITインフラ担当者は設計や方針決定に集中し、構築や運用管理をAIに任せることができるようになります。
そこで本連載は、ITインフラの構築・運用という2つの領域で、生成AIをどう活用できるのか、実装例とともに紹介していきます。第1回となる今回は、ITインフラ構築・運用業務における生成AI活用の全体像を紹介します。
ITインフラ構築の業務とは、アプリケーションを実行させるためのインフラを構築する作業全般を指します。サーバやネットワーク、ストレージ、データベースなど、アプリケーションの裏側を支える要素を設計し、組み立てる工程です。かつては、管理者がデータセンターに足を運び、物理サーバを設置、設定するのが一般的でした。
しかし現在はクラウドが主流となり、Web上の操作で、クラウド上にインフラを構築することが当たり前になりました。
そして近年は、Infrastructure as Code(IaC)という手法が標準になりつつあります。IaCは「インフラをコードで管理する」という考え方です。手作業の構築や設定をスクリプト化することで、次のような利点があります。
代表的なIaCツールに「Terraform」があります。Terraformは多様なサービスに対応しており、Microsoft Azure(Azure)、Amazon Web Services(AWS)、Google Cloudなどマルチクラウド対応という強みがあります。
一方で、クラウドごとに特化したツールも存在します。Azureには「Bicep」、AWSには「AWS CloudFormation」といった専用のIaCツールが用意されています。これらは各クラウドサービスの機能をいち早く取り込める利点があり、Terraformと併せて選択することでより柔軟なインフラ管理が可能になります。
ここで、IaCの代表例であるTerraformを使って、Azure上に仮想マシンを作成するTerraformの簡単な例を見てみましょう。以下のコードはTerraformを使ってAzure上に仮想マシンを1台作る最小構成のサンプルです。
resource "azurerm_resource_group" "rg" {
name = "demo-rg"
location = "japaneast"
}
resource "azurerm_linux_virtual_machine" "vm" {
name = "demo-vm"
resource_group_name = azurerm_resource_group.rg.name
location = azurerm_resource_group.rg.location
size = "Standard_B1s"
network_interface_ids = ["<既存NICのID>"]
admin_username = "azureuser"
admin_ssh_key {
username = "azureuser"
public_key = file("~/.ssh/id_rsa.pub")
}
os_disk {
caching = "ReadWrite"
storage_account_type = "Standard_LRS"
}
source_image_reference {
publisher = "Canonical"
offer = "0001-com-ubuntu-server-focal"
sku = "20_04-lts"
version = "latest"
}
}
わずか数十行のコードで、仮想マシンを自動構築できます。各種パラメーターを外部で定義してこのコードに与えるようにすれば、同じ内容を別リージョンや別環境(開発、本番など)で再利用することも容易です。このように、インフラ構築はコード化と自動化によって、従来よりもはるかに早く、確実に進められるようになっています。
次は、ITインフラを継続的に安全かつ安定稼働させるためのITインフラ運用フェーズについて見ていきます。
ITインフラ運用とは、構築済みのシステムを安全かつ安定稼働し続けるための作業全般を指します。代表的な業務には次のようなものがあります。
ITインフラが複雑化する中で、これらの業務は従来以上に効率的で正確な対応が求められています。そこで注目されているのが、生成AIによる運用支援です。
では、ITインフラ構築・運用業務に、生成AIをどのように活用できるのか見ていきます。
ITインフラ構築においては、IaCを活用することで、コードベースでインフラを定義、管理できます。ここに生成AIを組み合わせることで、自然言語で要件を伝えるだけで、必要なIaCコードを自動生成できます。
本連載では「GitHub Copilot」を例に、IaCコードの自動生成について解説していきます。GitHub Copilotの詳細は次回以降で説明しますが、GitHubとOpenAIが共同開発したAIペアプログラミングツールで、コードの自動生成や補完を支援します。エンジニアは自然言語でインフラ要件を伝えるだけで、TerraformやCloudFormationなどのIaCコードを自動生成できるようになります。
ただし、GitHub Copilotで利用できるLLM(大規模言語モデル)は、ある一定期間の学習データに基づいています。そのため、新しくクラウドに追加されたインスタンスタイプなど、最新情報が反映されていない場合があります。これを補うために、MCP(Model Context Protocol)というアプローチを活用します。
MCPは、LLMが外部システムと連携する際のインタフェースを標準化するプロトコルです。
今回の例で言えば、Terraformコードを生成する際、LLMが学習していない最新のクラウドサービスやTerraformの新機能に関する情報を補うためにTerraform MCP Serverを用います。
Terraform MCP Serverは、生成AIが最新の情報を活用してIaCコードを生成できるようにするためのブリッジの役割を果たします。生成AIに最新情報を提供することで、より正確で最新のコード生成が可能になります
GitHub CopilotもTerraform MCP ServerもMCPに準拠しており、連携が可能です。その処理の流れを図1に示します。
まず、GitHub Copilotを通じて、自然言語でインフラ要件を伝えます。GitHub Copilotは、LLMを利用して、要件に基づくIaCコードの生成を試みます。この際、最新のクラウドサービスや新機能に関する情報が必要な場合、GitHub Copilotは必要に応じてMCPサーバを通じてTerraform MCP Serverにリクエストを送ります。
Terraform MCP Serverは、Terraformに関する最新の情報にアクセスして、必要なデータを取得し、MCPクライアントを通じてGitHub Copilotに返します。GitHub Copilotは、この最新情報を活用して、より正確で最新のIaCコードを生成します。
先に述べた通り、ITインフラ運用における監視、障害対応、セキュリティ対応といった多様なプロセスは、大量のログ収集と分析によって支えられています。ここに生成AIを組み合わせることで、障害の早期検知や原因特定を、従来よりも迅速に行うことが可能になります。
運用管理者は、膨大なログから障害の原因やセキュリティインシデントの兆候を迅速に把握する必要があります。しかしながら、膨大なデータを手作業で分析するのは骨の折れる作業です。そこで生成AIを活用することで、ログデータに対して自然言語で質問を行い、必要な情報を効率的かつ短時間で抽出できるようになります。
この仕組みを実現するための有効なアプローチとして、RAG(Retrieval-Augmented Generation:検索拡張生成)があります。RAGは生成AIが外部の知識ベースから情報を検索し、その結果を基に回答を生成する手法です。これにより、ログデータの中から関連する情報を的確に取り出し、自然言語での質問に対して適切な回答を提示することができます。
RAGを活用して「昨日の深夜帯に異常なエラーがあったか教えて」と質問するだけで、関連するログの箇所と概要が即座に提示されます。また「特定のIPアドレスからの不審なアクセスをまとめて」と依頼すれば、必要な情報が横断的に抽出されます。さらに「1週間分の管理者ログイン履歴を一覧にして」と要求すれば、自動的にレポート化することも可能です。
次回以降で詳細に解説しますが、その全体像は図2に示すアーキテクチャに基づいています。
このような流れにより、運用管理者は自然言語で質問するだけで必要なログ情報を迅速に入手でき、障害対応やセキュリティ監視の効率を大幅に向上させることができます。
第1回では、ITインフラ構築、運用における生成AIの具体的な活用イメージを解説しました。次回以降は、生成AIを活用したITインフラ構築や運用について、実装例とともに詳細に説明していきます。
サイオステクノロジーに所属し、AzureやAI領域でのシステムインテグレーションや製品開発に取り組むエンジニア。Microsoft MVPとして認定され、YouTubeなどのメディアで「わかりみ深い」Azureの情報を日々発信しているほか、執筆活動(書籍『世界一やさしいRAG構築入門』)を通じて知識を広く共有している。
Copyright © ITmedia, Inc. All Rights Reserved.