Pulumi
Amazon EFSといえば、ECS/EKS/EC2問わず複数マシンで単一ボリュームを参照できて非常に便利です。 EFS自身はAWS Backupでバックアップできるのですが、EFSの中身を直接見ることは出来ず不便なことも多いでしょう。 今回は、EFSの中身をS3にバックアップする…
AWS IAM Identity CenterをTerraformで構成するときはaws-ia/terraform-aws-iam-identity-centerが便利です。 同様にPulumiでも構成してみましょうという回です。 どのような構成にするのか グループと権限セットはアカウントごとに分ける 管理アカウントで…
以前、Visual Studioのデバッグ実行でpulumi previewを実行する方法を紹介しました。 今回はデバッグ実行中のPulumiにデバッガーをアタッチする方法を紹介します。これを使うとPulumi実行時にブレークポイントを仕込んで実行しつつ経過確認したり、変数の値…
PulumiをVisual Studioで書いていてpreviewできるようにする方法を紹介します。 単純ですが、かなり便利なのでPulumi C#を使っている人におすすめです。 モチベーション launchSettings.jsonでプレビューを実行する まとめ モチベーション 普段私はPulumiをC…
Pulumiでマルチプラットフォーム対応のDocker Imageを作成する時はdocker-buildパッケージを使うのがオススメです。ただ注意点として、1年余りプレビュー状態が続いており、これまでのdockerパッケージから見ると挙動の違いに注意が必要です。 今回はPulumi…
C# 91から利用できるTarget-typed newは使い方によっては非常に便利です。 ただ、ライブラリのAPI設定次第で使いたいときに使えないというシーンもあるのでメモです。 暗黙的型変換を期待するAPIではTarget-typed Newは使えない Pulumi C#で頻出のAPIパター…
TerraformでAWSリソースを作成するときの定番がデフォルトタグです。Pulumiでもデフォルトタグを設定できるようになったのでメモです。 デフォルトタグは便利というレベルじゃない Pulumiのデフォルトタグはこれまで面倒だった Pulumiのスタックコンフィグで…
前回の記事でDatadogにCloudWatch Metric Streamを使ってメトリクスを送信するCloudFormation StackをPulumi/Terraformから呼び出す方法を書きました。今回は、CloudFormation StackでやっていることをPulumi C#にポートします。 なぜポートするのか Pulumi …
DatadogはAWSのCloudWatchメトリクスの取り込みをPull方式とPush方式の両方サポートしています。いわゆるDatadog AWS IntegrationはPull方式でCloudWatchメトリクスを10分程度のレイテンシーで取り込みます。一方で、AWS CloudWatch Metric StreamはPush方式…
Pulumiのパッケージ更新をしたら、プロパティ名が変わっておりcraete-replacementが生じてしまう。 Pulumi SDK側でプロパティ名が変更されると発生するのですが、普段出会うことはまずありません。 しかし稀に、プレビューパッケージを使ったり、プレビュー…
Pulumiはステートをスタック (Stack) に保持しています。 スタックはリネームや別のOrganizationへの移動はサポートされていますが、自分のOrganizationの別プロジェクトへの移動はサポートされていません。 しかしスタックを後から整理したいときには、この…
Infrastructure as Code (以降IaC) で組むときにIaCツールを選ぶ基準はいろいろあり、様々な理由で選ぶことでしょう。 IaCの言語がチームとって扱いやすいか クラウドやサービスへのIaCの対応状況は早い/十分か コミュニティの大きさは十分でググれば情報を…
Pulumiは複数の言語で書くことができるのですが、そのうちの1つに .NET (C#) もあります。 Languages より https://www.pulumi.com/docs/intro/languages/ 以前PulumiをC# で書く時の事始めシリーズを書いていましたが、あれから時間がたって書き方も変わり…
PulumiはStackの解析をして、現在のステートとの差分でどのような処理をするかpreview / upで表示します。 このため、Stackの解析中 (=コードをビルドして実行してStack生成中) に例外が生じたときにどのようにハンドルされるかは重要です。 今回はユーザー…
terraformもそうですが、Infrastructure as Codeとかやってるとstateの壊れる日が来て軽く絶望します。 Pulumiで、誤った操作からstateのリソースが200あまり消えたときにどのように復旧したのかをメモしておきます。 概要 状況 復旧目標 前提情報 State と…
この記事は、Pulumi dotnet Advent Calendar 2019の25日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet 最終日は、Pulumiでこんなときどうするのかをまとめていきます。 概要 Pulumi.Aws.Iam.Invokes のInput<T>がOutput<T>の依存解決を行えない </t></t>…
この記事は、Pulumi dotnet Advent Calendar 2019の24日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet そろそろ終わりです。pulumiでよく使うコマンドを見てみましょう。 概要 ドキュメント 操作 pulumi up pulumi config pulumi destroy …
この記事は、Pulumi dotnet Advent Calendar 2019の23日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet Terraformを使っていると、HCLで定義したリソースがHCLの定義とずれると差分として検出されました。 しかし、Pulumiではpulumi upをし…
この記事は、Pulumi dotnet Advent Calendar 2019の22日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet あまりないのですが、時にすでにあるProjectとローカルのpulumiを紐づけたいときがあります。 そんなときにどうやればいいのか見てお…
この記事は、Pulumi dotnet Advent Calendar 2019の21日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet Pulumiでterraform targetのような操作をどうやるか見てみます。 概要 実際に操作する 概要 Pulumi CLI 1.3.0から--targetによって可…
この記事は、Pulumi dotnet Advent Calendar 2019の20日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet 些末なコマンドメモです。 Terraformと違って細かい差分でないのですが、Continuous Deliveryしているとdetailsを忘れるアレ。 概要 S…
この記事は、Pulumi dotnet Advent Calendar 2019の19日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet そろそろどうやるか見てみましょう。 と思ったのですが、日本語OS上では解決方法が見つからないのでゆるぼ。 概要 Summary NOTE: だめ…
この記事は、Pulumi dotnet Advent Calendar 2019の18日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet Pulumiの各プロバイダの実装はPluginとして提供されています。 このプラグインを確認する方法を見てみましょう。 概要 Pluginの確認 G…
この記事は、Pulumi dotnet Advent Calendar 2019の17日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet PulumiのTIPSを見ていきましょう。 TerraformのRemote Stateに相当する処理を見てみます。 Pulumiで他のStackで管理しているリソース…
この記事は、Pulumi dotnet Advent Calendar 2019の16日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet PulumiのWeb UIを見ると、stateはProject/Stack配下で管理されています。ということは、stateを他Project/Stackに移動したいときは何…
この記事は、Pulumi dotnet Advent Calendar 2019の15日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet PulumiのStateから特定のリソースだけ管理対象外にしたい、そんなことはきっと起こります。 どのようにやればいいのか見てみましょう…
この記事は、Pulumi dotnet Advent Calendar 2019の14日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet すでにPulumiで扱うこと自体はなるほど、という感じになってきましたでしょうか。 完全に理解した() を目指して、さらに進めてみます…
この記事は、Pulumi dotnet Advent Calendar 2019の13日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet Terraformでは、PRに連動させてどのようにPlan/Applyをするのかを一度は考え、すでに実践しているはずです。 私のお勧めはAtlantisで…
この記事は、Pulumi dotnet Advent Calendar 2019の12日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet Pulumiには、ProjectとStackがあります。 この構成どうするのがコンセプト的にはいいのか見てみます。 概要 project:stack を 1:n に…
この記事は、Pulumi dotnet Advent Calendar 2019の11日目です。 https://qiita.com/advent-calendar/2019/pulumi-dotnet Terraformに慣れているとPulumiもイメージしやすいところはあります。 一方でTerraformとの違いでどうすればいいのかな? となることも…