Pulumi - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Pulumi

Pulumi は、GitOps 専用に設計されていない IaC プラットフォームです。ただし、特にクラウドインフラストラクチャと Kubernetes デプロイでは、GitOps の原則を実装するために効果的に使用できます。

GitOps のサポート

[面積] ツール機能

IaC

Pulumi では、Python、TypeScript、Go などの汎用プログラミング言語を使用してインフラストラクチャを定義できます。このコードベースのアプローチは、バージョン管理された宣言型設定に重点を置いた GitOps と一致しています。

信頼できる唯一のソースとしての Git

Pulumi のインフラストラクチャコードは、Git リポジトリに保存してバージョン管理できます。これにより、Git はインフラストラクチャ定義の唯一の信頼できるソースとして機能します。

宣言的な目的の状態

Pulumi はプログラミング言語を使用していますが、インフラストラクチャの望ましい状態を宣言的に記述しています。このコードは、インフラストラクチャを作成するstep-by-stepのプロセスではなく、インフラストラクチャがどのように見えるかを定義します。

自動同期

Pulumi は CI/CD パイプラインと統合して、Git でコードが更新されると変更を自動的に適用できます。これにより、GitOps の主要な原則であるインフラストラクチャの変更を継続的にデプロイできます。

マルチクラウドと Kubernetes のサポート

Pulumi は幅広いクラウドプロバイダーと Kubernetes をサポートしているため、さまざまな環境で GitOps のプラクティスに従うことができます。このツールを使用すると、さまざまなプラットフォーム間でリソースを一貫して管理できます。

状態の管理

Pulumi は、リモートで安全に保存できるインフラストラクチャの状態を管理します。この状態管理は GitOps プラクティスにとって重要であり、定義された状態とインフラストラクチャの実際の状態の間の一貫性を確保します。

ドリフトの検出と調整

Pulumi は、希望する状態 (コード内) とインフラストラクチャの実際の状態の違いを検出できます。これらの違いは、継続的な調整のために GitOps の原則に沿って調整されます。

コードとしてのポリシー

Pulumi CrossGuard を使用して、ポリシーをコードとして定義して適用できます。これにより、バージョン管理された GitOps スタイルのコンプライアンスおよびセキュリティポリシーの管理が可能になります。

シークレットの管理

Pulumi は、インフラストラクチャコード内で機密情報を管理するための安全な方法を提供します。GitOps セキュリティプラクティスにとって重要な外部シークレット管理システムとの統合をサポートしています。

モジュール式および再利用可能なコンポーネント

Pulumi は、再利用可能なコンポーネントとモジュールの作成をサポートしています。このモジュール性は、複雑なマルチ環境デプロイを管理するための GitOps プラクティスと一致しています。

プレビューと計画

Pulumi では、変更を適用する前にプレビューできます。これにより、インフラストラクチャに対する安全で予測可能な変更という GitOps の原則がサポートされます。

ロールバックと履歴

Pulumi はデプロイの履歴を維持し、以前の状態へのロールバックをサポートします。これは、GitOps のトレーサビリティと可逆性の原則と一致しています。

インフラストラクチャの継続的な配信

Pulumi は CI/CD パイプラインに統合して、インフラストラクチャの変更を継続的に提供できます。インフラストラクチャコードの自動テストと検証をサポートしています。

RBAC とアクセスコントロール

Pulumi は、インフラストラクチャを変更できるユーザーを管理するためのロールベースのアクセスコントロールを提供します。これにより、GitOps セキュリティとガバナンスのプラクティスがサポートされます。

オブザーバビリティとログ記録

Pulumi は、インフラストラクチャの変更のログ記録とモニタリング機能を提供します。これらの機能は、GitOps プラクティスのオブザーバビリティの側面をサポートします。

他のツールとの統合

Pulumi はクラウド内のさまざまなツールと統合できます。この柔軟性により、包括的な GitOps ワークフローが可能になります。

環境管理

Pulumi は、異なる設定で同じコードベースを使用することで、複数の環境 (開発、ステージング、本番稼働) の管理をサポートします。これは、一貫したマルチ環境管理のための GitOps プラクティスと一致しています。

依存関係管理

Pulumi はリソース間の依存関係を処理し、オペレーションの正しい順序を確保します。これは、相互依存コンポーネントを含む複雑な GitOps デプロイに不可欠です。

カスタムリソースプロバイダー

Pulumi では、API 駆動型サービスを管理するためのカスタムプロバイダーを作成できます。これによりGitOps のプラクティスは、標準のクラウドサービスを超える幅広いリソースに拡張されます。

コラボレーション機能

Pulumi は、共有状態とアクセスコントロールによるチームコラボレーションをサポートしています。これにより、チーム環境での GitOps ワークフローが容易になります。

これらの Pulumi 機能を使用することで、組織はインフラストラクチャに GitOps プラクティスを実装できます。特に、きめ細かな制御や複雑なロジックが必要な場合や、単一の一貫性のあるフレームワーク内で多様なクラウドリソースとオンプレミスリソースのセットを管理したい場合などです。

GitOps に対する Pulumi のアプローチは、GitOps の原則に準拠しながら、汎用プログラミング言語のパワーと柔軟性をインフラストラクチャ管理にもたらすため、ユニークです。これは、使い慣れたプログラミング言語の使用を好み、ソフトウェアエンジニアリングのベストプラクティスをインフラストラクチャ管理に適用したいチームにとって特に有利です。

GitOps での Pulumi の主な差別化要因は、標準プログラミング言語を使用してインフラストラクチャを定義することです。従来の GitOps ツールでは YAML またはドメイン固有の言語がよく使用されますが、Pulumi ではより複雑なロジック、コードの再利用の向上、既存の開発ワークフローとの統合が容易になります。

詳細については、Pulumi のドキュメントを参照してください。