Pulumi の Infrastructure as Code SDK は、使い慣れたプログラミング言語を使用して、あらゆるアーキテクチャのインフラストラクチャを構築し、あらゆるクラウド上にデプロイする最も簡単な方法です。お気に入りの言語とツールを使用してインフラストラクチャをより迅速にコーディングして配布し、オートメーション API を使用してどこにでも IaC を埋め込みます。
好みの言語でコードを記述するだけで、Pulumi はコードとしてのインフラストラクチャ アプローチを使用して、AWS、Azure、Google Cloud Platform、Kubernetes、および 120 以上のプロバイダー上でリソースを自動的にプロビジョニングし、管理します。 YAML をスキップし、ループ、関数、クラス、パッケージ管理など、使い慣れた標準の言語機能を使用します。
たとえば、3 つの Web サーバーを作成します。
const aws = require("@pulumi/aws");const sg = new aws.ec2.SecurityGroup("web-sg", {ingress: [{ プロトコル: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"] }],});for (i = 0; i < 3; i++) {new aws.ec2.Instance(`web-${i}`, {ami: "ami-7172b611",instanceType: "t2.micro",vpcSecurityGroupIds: [sg.id],userData: `#!/bin/ bash echo "Hello, World!" >index.html nohup python -m SimpleHTTPServer 80 &`,});}
または、Hacker News を毎日午前 8 時 30 分にアーカイブする単純なサーバーレス タイマー:
const aws = require("@pulumi/aws");const snapshots = new aws.dynamodb.Table("snapshots", {attributes: [{ name: "id", type: "S", }],hashKey: " id"、課金モード: "PAY_PER_REQUEST",});aws.cloudwatch.onSchedule("daily-yc-snapshot", "cron(30 8 * * ? *)", () => {require("https").get("https: //news.ycombinator.com", res => {let content = "";res.setEncoding("utf8");res.on("data", chunk => content += chunk);res.on("end", () => new aws.sdk.DynamoDB.DocumentClient().put({TableName: snapshots.name.get(),Item: { date: Date.now (), コンテンツ },}).promise());}).end();});
pulumi/examples では、コンテナー、サーバーレス、インフラストラクチャにまたがる多くの例が利用可能です。
Pulumi は Apache 2.0 ライセンスの下でオープンソースであり、多くの言語とクラウドをサポートしており、拡張も簡単です。 このリポジトリには、 pulumi
CLI、言語 SDK、およびコア Pulumi エンジンが含まれており、個々のライブラリは独自のリポジトリにあります。
Pulumi を使ってみる: Pulumi を使用して、AWS、Azure、Google Cloud、または Kubernetes に単純なアプリケーションをデプロイします。
学習: Pulumi 学習パスウェイに従い、本物の例を通じてベスト プラクティスとアーキテクチャ パターンを学びます。
例: 多くの言語、クラウド、コンテナー、サーバーレス、インフラストラクチャなどのシナリオにわたるいくつかの例を参照します。
ドキュメント: Pulumi の概念について学び、ユーザー ガイドに従い、リファレンス ドキュメントを参照してください。
レジストリ: 必要なリソースが含まれる Pulumi パッケージを見つけます。パッケージをプロジェクトに直接インストールし、API ドキュメントを参照して、ビルドを開始します。
Pulumi ESC : シークレットの一元管理とオーケストレーション。すべてのクラウド インフラストラクチャとアプリケーションにわたって、シークレットの拡散と構成の複雑さを安全に管理します。
Pulumi ロードマップ: 次の四半期に計画されている作業と、検討中だがまだスケジュールされていない問題の選択されたバックログを確認します。
コミュニティ Slack : Pulumi コミュニティ Slack に参加してください。すべての会話や質問は大歓迎です。
GitHub ディスカッション: 質問したり、Pulumi で構築しているものを共有したりできます。
選択したプラットフォームとクラウドで Pulumi をすぐに使い始めるには、「スタート ガイド」を参照してください。
それ以外の場合は、次の手順で、AWS Serverless Lambdas を使用して最初の Pulumi プログラムを数分でデプロイする方法を示します。
インストール:
最新の Pulumi リリースをインストールするには、次のコマンドを実行します (追加のインストール オプションについては、完全なインストール手順を参照してください)。
$カール -fsSL https://get.pulumi.com/ |しー
プロジェクトを作成します。
インストール後、 pulumi new
コマンドを使用して開始できます。
$ mkdir pulumi-demo && cd pulumi-demo $ pulumi 新しい hello-aws-javascript
new
コマンドは、すべての言語とクラウド用のテンプレートを提供します。 引数を指定せずに実行すると、利用可能なプロジェクトが表示されます。 このコマンドは、JavaScript で書かれた AWS Serverless Lambda プロジェクトを作成しました。
クラウドへのデプロイ:
pulumi up
実行してコードをクラウドに取得します。
$プルミアップ
これにより、コードを実行するためにすべてのクラウド リソースが必要になります。 プロジェクトを編集するだけで、後続のpulumi up
が変更をデプロイするための最小限の差分を計算します。
プログラムを使用してください:
コードがデプロイされたので、コードを操作できるようになります。 上の例では、エンドポイントをカールできます。
$カール$(プルミスタック出力URL)
ログにアクセスします。
コンテナーまたは関数を使用している場合、Pulumi の統合ログ コマンドはすべてのログを表示します。
$ pulumi ログ -f
リソースを破棄します。
完了したら、プログラムによって作成されたすべてのリソースを削除できます。
$ pulumi 破壊 -y
さらに詳しく知りたい場合は、pulumi.com にアクセスして、コア Pulumi CLI とプログラミング モデルの概念のチュートリアル、例、詳細などの詳細情報をご覧ください。
Pulumi CLI v1 および v2 はサポートされなくなりました。まだ v3 を実行していない場合は、Pulumi が提供する最新かつ最高の機能を引き続き入手するために、v3 への移行を検討してください。 ?
v2 から v3 に移行するには、v3 移行ガイドを参照してください。
サポートされているクラウドおよびインフラストラクチャ プロバイダーの完全なリストについては、レジストリにアクセスしてください。
ソースから Pulumi を構築すること、または改善に貢献することについては、CONTRIBUTING.md にアクセスしてください。