mcpField
P
Pulumi CLI

Pulumi CLI

公式
pulumi.comクラウド・DevOps25.8kpulumi今日更新
リポジトリ公式サイト

Pulumi CLI について

Pulumi CLI は TypeScript、Python、Go、.NET、Java などのプログラミング言語を使用してクラウドインフラストラクチャを定義およびデプロイできます。インフラストラクチャプレビュー、マルチクラウドプロバイダー選択、スタック状態管理をサポートし、開発者が馴染みのあるプログラミングパラダイムでインフラストラクチャを管理できるようにします。

主な機能

  1. 01プログラミング言語を使用してクラウドインフラストラクチャコードを定義する
  2. 02インフラストラクチャの変更を適用する前にプレビューする
  3. 03複数のクラウドプロバイダー (AWS、Azure、GCP など) を管理する
  4. 04インフラストラクチャスタックの状態を追跡して管理する

活用シーン

  1. 01馴染みのあるプログラミング言語を使用して再利用可能なインフラストラクチャテンプレートを構築する
  2. 02CI/CD でクラウドリソースプロビジョニングと更新を自動化する
  3. 03複数の環境とクラウドプロバイダー全体でインフラストラクチャの一貫性を管理する

インストール

OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。

$
brew install pulumi/tap/pulumi

インストール後にpulumi --versionを実行して確認します。

コマンド例

よく使うコマンドを使う順に並べています。

01
pulumi login
02
pulumi new
03
pulumi up

詳細

Pulumi

Slack GitHub Discussions NPM version Python version NuGet version GoDoc License

人とエージェントのための Infrastructure as Code

README の画像

Pulumi Infrastructure as Code は、使い慣れたプログラミング言語を使って、あらゆるアーキテクチャやクラウド上でインフラストラクチャを構築、デプロイする最も簡単な方法です。お気に入りの言語やツールでインフラストラクチャのコード作成とデプロイを高速化し、Automation API を使えば、どこにでも IaC を組み込めます。

お気に入りの言語でコードを書くだけで、Pulumi が AWS、 Azure、 Google Cloud Platform、 Kubernetes、および 300+ providers 上のリソースを、 infrastructure-as-code のアプローチで自動的にプロビジョニングして管理します。 YAML を使う代わりに、ループ、関数、クラス、パッケージ管理など、使い慣れた標準的な言語機能を活用できます。

たとえば、3 台の Web サーバーを作成できます。

import * as aws from "@pulumi/aws";

const ami = aws.ec2.getAmiOutput({
    mostRecent: true,
    owners: ["amazon"],
    filters: [{ name: "name", values: ["al2023-ami-*-x86_64"] }],
});

const sg = new aws.ec2.SecurityGroup("web-sg", {
    ingress: [{ protocol: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"] }],
});

for (const i of [0, 1, 2]) {
    new aws.ec2.Instance(`web-${i}`, {
        ami: ami.id,
        instanceType: "t3.micro",
        vpcSecurityGroupIds: [sg.id],
        userData: `#!/bin/bash
            echo "Hello, World!" > index.html
            nohup python3 -m http.server 80 &`,
    });
}

または、毎日午前 8 時 30 分に Hacker News をアーカイブするシンプルなサーバーレスのタイマーを作成できます。

import * as aws from "@pulumi/aws";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
import { DynamoDBDocumentClient, PutCommand } from "@aws-sdk/lib-dynamodb";

const snapshots = new aws.dynamodb.Table("snapshots", {
    attributes: [{ name: "id", type: "S" }],
    hashKey: "id",
    billingMode: "PAY_PER_REQUEST",
});

aws.cloudwatch.onSchedule("daily-yc-snapshot", "cron(30 8 * * ? *)", async () => {
    const res = await fetch("https://news.ycombinator.com");
    const content = await res.text();

    const client = DynamoDBDocumentClient.from(new DynamoDBClient({}));
    await client.send(new PutCommand({
        TableName: snapshots.name.get(),
        Item: { id: `${Date.now()}`, content },
    }));
});

コンテナ、サーバーレス、インフラストラクチャに関する多くのサンプルを pulumi/examples でご覧いただけます。

Pulumi は Apache 2.0 license のもとでオープンソースとして提供されており、多くの言語やクラウドをサポートし、簡単に拡張できます。この リポジトリには pulumi CLI、言語 SDK、Pulumi のコアエンジンが含まれており、個々のライブラリはそれぞれ独自のリポジトリで管理されています。

はじめに

Pulumi クイックスタートのターミナル
  • Pulumi を始める:Pulumi を使って、AWS、Azure、Google Cloud、または Kubernetes にシンプルなアプリケーションをデプロイします。

  • 学ぶ:Pulumi の学習パスに沿って、実際の例を通じてベストプラクティスやアーキテクチャパターンを学びます。

  • 例:コンテナ、サーバーレス、インフラストラクチャなど、多くの言語、クラウド、シナリオにわたるさまざまな例をご覧ください。

  • ドキュメント:Pulumi の概念について学び、ユーザーガイドを参照し、リファレンスドキュメントをご確認ください。

  • レジストリ:必要なリソースを含む Pulumi パッケージを見つけましょう。パッケージをプロジェクトに直接インストールし、API ドキュメントを参照して、開発を始められます。

  • シークレット管理:Pulumi ESC を使って、すべてのクラウドインフラストラクチャとアプリケーションにわたるシークレットの散在や設定の複雑さを、安全に解消できます。

  • コミュニティ Slack:Pulumi Community Slack にご参加ください。あらゆる会話や質問を歓迎します。

  • GitHub ディスカッション:質問したり、Pulumi で構築しているものを共有したりできます。

はじめに

動画を見る

はじめ方ガイドを参照して、お好みのプラットフォームとクラウドで Pulumi をすばやく始めましょう。

または、以下の手順に沿って、AWS Serverless Lambda を使った最初の Pulumi プログラムを数分でデプロイできます。

  1. インストール:

    最新の Pulumi リリースをインストールするには、次のコマンドを実行します(その他のインストール方法については、インストール手順をご覧ください)。

    curl -fsSL https://get.pulumi.com/ | sh
    
  2. プロジェクトを作成:

    インストール後、pulumi new コマンドを使って始められます。

    mkdir pulumi-demo && cd pulumi-demo
    pulumi new serverless-aws-typescript
    

    new コマンドでは、すべての言語とクラウド向けのテンプレートを利用できます。引数を指定せずに実行すると、利用可能なプロジェクトが表示されます。このコマンドにより、TypeScript で記述された AWS Serverless Lambda プロジェクトが作成されます。

  3. クラウドにデプロイ:

    pulumi up を実行して、コードをクラウドにデプロイします。

    pulumi up
    

    これにより、コードの実行に必要なすべてのクラウドリソースが作成されます。プロジェクトを編集するだけで、以降の pulumi up では変更をデプロイするために必要な最小限の差分が計算されます。

  4. プログラムを使用:

    コードのデプロイが完了したら、プログラムを操作できます。上記の例では、エンドポイントに curl を実行できます。

    curl $(pulumi stack output url)
    
  5. ログにアクセス:

    コンテナまたは関数を使用している場合、Pulumi の統合ログコマンドですべてのログを確認できます。

    pulumi logs -f
    
  6. リソースを破棄:

    作業が完了したら、プログラムによって作成されたすべてのリソースを削除できます。

    pulumi destroy -y
    

さらに詳しく知るには、pulumi.comをご覧ください。チュートリアル、例、Pulumi CLI の基本やプログラミングモデルの概念など、多くの情報をご確認いただけます。

プラットフォーム

言語
言語状態ランタイムバージョン
README の画像JavaScript安定版Node.js現行版、アクティブな LTS 版、メンテナンス中の LTS 版
README の画像TypeScript安定版Node.js現行版、アクティブな LTS 版、メンテナンス中の LTS 版
README の画像Python安定版Pythonサポート対象バージョン
README の画像Go安定版Goサポート対象バージョン
README の画像.NET (C#/F#/VB.NET)安定版.NETサポート対象バージョン
README の画像Java安定版JDK11+
README の画像YAML安定版該当なし該当なし
クラウド

サポート対象のクラウドおよびインフラストラクチャプロバイダーの全一覧は、レジストリをご覧ください。

貢献

ソースから Pulumi をビルドする方法や改善への貢献については、CONTRIBUTING.mdをご覧ください。

コメント