Pulumi ぷるーみ
簡単に言うとこんな感じ!
PulumiはAWSやAzureなどのクラウドインフラを、普通のプログラミング言語(PythonやTypeScriptなど)で書いて管理できるツールだよ!「インフラもコードで管理しよう」という考え方(IaC)の仲間で、専用言語を覚えなくていいのが最大の特徴なんだ!
Pulumiとは
Pulumiは、クラウドインフラ(サーバー・ネットワーク・データベースなど)の構成をプログラミング言語で記述・管理するためのオープンソースツールです。2017年に登場し、Infrastructure as Code(IaC) ツールの一つとして注目を集めています。
IaC(インフラのコード化)とは、「クラウドのサーバーを何台立てるか」「どんなネットワーク設定にするか」といった構成を、手作業のポチポチ操作ではなくコードとして定義し、再現性・管理性を高めるアプローチです。同じ領域の代表格としてHashiCorp社のTerraformがありますが、TerraformがHCLという専用言語を使うのに対し、PulumiはPython・TypeScript・Go・C#・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との違いを整理します。
| 比較項目 | Pulumi | Terraform |
|---|---|---|
| 記述言語 | Python / TypeScript / Go / C# / Java | HCL(独自言語) |
| 学習コスト | 既存言語の知識を活かせる | HCLを新たに習得が必要 |
| ロジック表現 | if文・ループ・関数など自由に使える | 制限あり(HCLの範囲内) |
| State管理 | Pulumi Cloud / S3 / ローカル等 | Terraform Cloud / S3等 |
| エコシステム | 成長中 | 非常に成熟・豊富 |
| ライセンス | Apache 2.0(OSSコア) | 2023年以降BSL(商用注意) |
| 向いている組織 | 開発者がインフラも担うDevOps組織 | インフラ専任チームがいる組織 |
実務での選び方
Pulumiが向いているケース
- 開発者チームがインフラも管理するDevOps・SRE組織
- 条件分岐・ループなど複雑なロジックが必要なインフラ定義
- 既存のテストフレームワークをインフラコードにも使いたい
- TerraformのBSLライセンス変更を機に移行を検討している
Terraformが向いているケース
- インフラ専任チームがいてHCLに慣れている
- 実績・事例・ドキュメントの豊富さを重視する
- 多数のTerraformモジュールを流用したい
関連する規格・RFC
| 規格・仕様 | 内容 |
|---|---|
| Pulumi Registry | 公式プロバイダー・モジュールのレジストリ(registry.pulumi.com) |
| Pulumi Automation API | PulumiをSDKとして他アプリに組み込むためのAPI |
| OpenTofu | TerraformのOSSフォーク。Pulumi対抗比較でよく言及される |
関連用語
- Infrastructure as Code(IaC) — インフラ構成をコードで管理するアプローチ全般
- Terraform — HCLを使うIaCツールの代表格。Pulumiの最大の比較対象
- AWS CloudFormation — AWSが提供する独自のIaCサービス
- DevOps — 開発と運用を統合する文化・手法。IaC普及の背景にある考え方
- クラウドプロバイダー — AWS・Azure・GCPなどPulumiの管理対象となるクラウド基盤
- GitOps — Gitをインフラ変更の唯一の信頼源とする運用手法。IaCと組み合わせて使われ