IaC

Pulumi ぷるーみ

Infrastructure as CodeTerraformクラウドインフラPythonTypeScriptDevOps
Pulumiについて教えて

簡単に言うとこんな感じ!

PulumiはAWSやAzureなどのクラウドインフラを、普通のプログラミング言語PythonTypeScriptなど)で書いて管理できるツールだよ!「インフラもコードで管理しよう」という考え方(IaC)の仲間で、専用言語を覚えなくていいのが最大の特徴なんだ!


Pulumiとは

Pulumiは、クラウドインフラ(サーバー・ネットワーク・データベースなど)の構成をプログラミング言語で記述・管理するためのオープンソースツールです。2017年に登場し、Infrastructure as Code(IaC) ツールの一つとして注目を集めています。

IaC(インフラのコード化)とは、「クラウドのサーバーを何台立てるか」「どんなネットワーク設定にするか」といった構成を、手作業のポチポチ操作ではなくコードとして定義し、再現性・管理性を高めるアプローチです。同じ領域の代表格としてHashiCorp社のTerraformがありますが、TerraformがHCLという専用言語を使うのに対し、PulumiはPython・TypeScript・GoC#Javaなど開発者がすでに使い慣れた言語をそのまま使えるのが最大の差別化ポイントです。

「インフラの設定をするために新しい言語を学ばなくていい」というシンプルな価値提案は、特に開発者チームがインフラ管理も担うDevOps文化の組織で高く評価されています。


Pulumiの仕組みと構造

基本的な動作フロー

ステップ内容
① コードを書くPython・TypeScript等でインフラ構成を記述
pulumi up 実行Pulumiがコードを解析し、変更差分をプレビュー
③ 承認変更内容を確認してYesで適用
④ 状態管理現在のインフラ状態をStateとして保存
⑤ 変更・削除コードを変えて再び pulumi up → 差分だけ反映

対応言語・対応クラウド

分類対応内容
プログラミング言語TypeScript / JavaScript / Python / Go / C# / Java / YAML
主要クラウドAWS / Azure / Google Cloud / その他100以上のプロバイダー
State保存先Pulumi Cloud(SaaS)/ AWS S3 / Azure Blob / ローカル

サブトピック1:名前の覚え方

プルーミ」と読みます。「Pull(引っ張る)」+「me(私)」→ インフラを自分のコードで引っ張ってくるイメージで覚えると◎。公式ロゴは白い虫(caterpillar)で、「コードがインフラをじわじわ構築していく」様子を表しています。

サブトピック2:Pulumiの主要コマンド

pulumi new        → 新しいプロジェクトを作成
pulumi up         → インフラをコードの内容に合わせて適用
pulumi preview    → 変更内容を確認だけする(適用しない)
pulumi destroy    → 管理中のインフラを全削除
pulumi stack      → 環境(開発/本番など)を切り替え

歴史と背景

  • 2017年 — Joe Duffy(元Microsoft)らが創業。「開発者がすでに知っている言語でインフラを書けるべき」というコンセプトで開発開始
  • 2018年 — パブリックベータを公開。TypeScript/Pythonサポートで開発者コミュニティから注目を集める
  • 2020年 — Go・.NETサポートを追加。エンタープライズ向け機能も強化
  • 2021年 — Pulumi 3.0リリース。Javaサポート追加、Automation APIで他ツールへの組み込みも可能に
  • 2022年 — Pulumi Cloudのガバナンス機能強化。大企業採用が増加
  • 2023年〜 — AI連携(Pulumi AI)でプロンプトからインフラコードを自動生成する機能が登場
  • 現在 — Terraform対抗馬として認知が定着。特にDevOps・プラットフォームエンジニアリング領域で採用拡大中

TerraformとPulumiの比較

IaC選定でよく比較されるTerraformとの違いを整理します。

比較項目PulumiTerraform
記述言語Python / TypeScript / Go / C# / JavaHCL(独自言語)
学習コスト既存言語の知識を活かせるHCLを新たに習得が必要
ロジック表現if文・ループ・関数など自由に使える制限あり(HCLの範囲内)
State管理Pulumi Cloud / S3 / ローカル等Terraform Cloud / S3等
エコシステム成長中非常に成熟・豊富
ライセンスApache 2.0(OSSコア)2023年以降BSL(商用注意)
向いている組織開発者がインフラも担うDevOps組織インフラ専任チームがいる組織
Pulumi と Terraform:アーキテクチャ比較 Pulumi 汎用言語(Python / TS / Go…) Pulumi SDKでリソース定義 Pulumi Engine(差分計算) クラウドAPI(AWS / Azure…) Terraform HCL(独自の設定言語) .tf ファイルでリソース定義 Terraform Core(差分計算) クラウドAPI(AWS / Azure…) vs どちらも最終的にはクラウドAPIを呼び出してインフラを構築する

実務での選び方

Pulumiが向いているケース

  • 開発者チームがインフラも管理するDevOps・SRE組織
  • 条件分岐・ループなど複雑なロジックが必要なインフラ定義
  • 既存のテストフレームワークをインフラコードにも使いたい
  • TerraformのBSLライセンス変更を機に移行を検討している

Terraformが向いているケース

  • インフラ専任チームがいてHCLに慣れている
  • 実績・事例・ドキュメントの豊富さを重視する
  • 多数のTerraformモジュールを流用したい

関連する規格・RFC

規格・仕様内容
Pulumi Registry公式プロバイダー・モジュールのレジストリ(registry.pulumi.com)
Pulumi Automation APIPulumiをSDKとして他アプリに組み込むためのAPI
OpenTofuTerraformのOSSフォーク。Pulumi対抗比較でよく言及される

関連用語

  • Infrastructure as Code(IaC) — インフラ構成をコードで管理するアプローチ全般
  • Terraform — HCLを使うIaCツールの代表格。Pulumiの最大の比較対象
  • AWS CloudFormation — AWSが提供する独自のIaCサービス
  • DevOps — 開発と運用を統合する文化・手法。IaC普及の背景にある考え方
  • クラウドプロバイダー — AWS・Azure・GCPなどPulumiの管理対象となるクラウド基盤
  • GitOps — Gitをインフラ変更の唯一の信頼源とする運用手法。IaCと組み合わせて使われ