CLOVER🍀

That was when it all began.

Terraform

TerraformのProvider Plugin Cacheを試す

これは、なにをしたくて書いたもの? Terraformを使うと、terraform init時に使用するProviderをダウンロードしてくるのですが、これをそれぞれのディレクトリで行っていると 各ルートモジュール配下の.terraformディレクトリのサイズの合計がだんだん無視で…

Terraform 1.7で追加されたモック(Mocks)を試す

これは、なにをしたくて書いたもの? Terraform 1.6でtesting frameworkが追加されたので、以前に試してみました。 Terraform 1.6で追加されたTerraform testing framework(terraform test)を試す - CLOVER そしてTerraform 1.7ではこれにモックが追加され…

Terraform 1.4で追加された、terraform_data resourceを試してみる

これは、なにをしたくて書いたもの? Terraformには、nullというプロバイダーがあります。 null_resource null Providerにはnull_resourceというリソースが含まれており、こちらを使うことで他のリソースの状態変化に合わせてコマンドを 実行させたりできて…

Terraform 1.6で追加されたTerraform testing framework(terraform test)を試す

これは、なにをしたくて書いたもの? Terraform 1.6で、Terraformのtesting framework(terraform testコマンド)が追加されたようなので、試してみようかなと。 Terraform 1.6 adds a test framework for enhanced code validation 今までTerraformのテスト…

Serverless Frameworkの設定にAWS Systems Manager Parameter Storeを使ってみる(LocalStack利用)

これは、なにをしたくて書いたもの? Severless Frameworkのserverless.ymlでAWS Systems Manager Parameter Storeの値を参照できるみたいなので、試してみることに しました。 合わせて、AWS Lambda関数内からAWS Systems Manager Parameter Storeを参照す…

Sonatype Nexus 3をTerraformで操作する

これは、なにをしたくて書いたもの? TerraformのProviderを見ていると、Sonatype Nexus用のProviderがあったのでちょっと試してみたいなと。 Nexus Provider Nexus Provider Sonatype NexusのTerraform Providerです。 Nexus Provider リポジトリーの定義な…

Amazon SQSにメッセージを送受信するアプリケーションをSpring Bootで書いてみる(AWS SDK for Java v2、LocalStack利用)

これは、なにをしたくて書いたもの? 前に、Amazon SQS(といってもLocalStack上のものですが)を使ってFIFOキューを試してみました。 LocalStackでAmazon SQSのFIFOキューを試してみる(AWS SDK for Javaを使用) - CLOVER 今回は、常駐アプリケーションと…

ElasticMQのキュー定義をTerraformで行ってみる

これは、なにをしたくて書いたもの? ElasticMQを使っていきたいと思うのですが、リソース定義をTerraformで行えないかなと思いまして。 結果を見ると、できるにはできるのですがちょっと難ありです。 ElasticMQ ElasticMQは、Amazon SQS互換のインターフェ…

Serverless Express+TypeScriptを使って、LocalStackにAmazon API Gateway+AWS Lambdaの環境を構成してみる

これは、なにをしたくて書いたもの? AWS Lambdaで使える、フレームワークをちょっと試してみたいなと思いまして。 Serverless Expressというものがあるみたいなので、ちょっと試してみることにしました。 Serverless Express Serverless ExpressのGitHubリ…

Terraformで、LocalStackにAmazon API Gateway+AWS Lambdaの環境を構成してみる

これは、なにをしたくて書いたもの? 以前に、LocalStackでAmazon API Gateway+AWS Lambdaを動かしてみるエントリを書きました。 LocalStackでAmazon API Gateway+AWS Lambdaを動かしてみる - CLOVER 今回は、こちらをTerraformで実現できないかなと思いま…

Terraform、Vagrant、ConsulなどのHashiCorp製品をLinuxのパッケージマネージャーでインストールする

これは、なにをしたくて書いたもの? 自分はTerraformやVagrantなど、HashiCorp製品をそれなりに使っているのですが、いつもzipなりdebなりで インストールしていました。 ですが、最近Terraformのドキュメントにaptやyumリポジトリに関するドキュメントが増…

TerratestでTerraformのテストを書いてみる

これは、なにをしたくて書いたもの? Terraformに対するテストコードを書くのに、Terratestというものが使えるというようなので。 こちらを試してみようかな、と。 Terratest Terratestとは、インフラストラクチャーをテストするためのパターン、ヘルパー関…

Terragruntを使って、複数のTerraformモジュールの操作を1回のコマンド実行で行う

これは、なにをしたくて書いたもの? Terragruntを学ぶシリーズ。今回でひと区切りの予定です。 最後は、Terragruntを使って複数のTerraformモジュールの操作を1回のコマンド実行で行ってみます。 Terragruntで、Terraformモジュールの操作を1度に行う Terra…

Terragruntを使って、環境ごとのTerraformの構成ファイルを削減する

これは、なにをしたくて書いたもの? Terragruntを学ぶシリーズ。 今回は、Terragruntを使って環境ごとに作るTerraformの構成ファイルを減らしてみます。 Terragruntで、環境ごとの構成ファイルを減らす Terraformを使って、複数の環境を構築、管理するのに…

Terragruntを使って、Terraform実行時の引数やオプション指定をまとめてみる

これは、なにをしたくて書いたもの? Terragruntを学ぶシリーズ。 次は、Terragruntを使ってTerraform実行時の引数やオプション指定をまとめてみます。 Terragruntで、Terraform実行時の引数やオプション指定をまとめる Terraformを実行する時に、引数やオプ…

Terragruntを使って、TerraformのProvider定義をまとめてみる

これは、なにをしたくて書いたもの? 前に、Terragruntを使ってTerraform Backendの定義をまとめてみました。 TerragruntをUbuntu Linux 20.04 LTSにインストールして、Terraform Backendの定義をまとめてみる - CLOVER 今度は、Providerの定義をまとめてみ…

TerragruntをUbuntu Linux 20.04 LTSにインストールして、Terraform Backendの定義をまとめてみる

これは、なにをしたくて書いたもの? Terraformを使うの時にTerragrantというラッパーを使うと便利、みたいな話があるようなので少し試してみようかなと。 Terragrunt | Terraform wrapper Terragrunt TerragruntとはGruntworkが作成しているTerraformのラッ…

Terraformのコレクションには、単一のデータ型のみが格納可能だという話

これは、なにをしたくて書いたもの? Terraformのコレクションが、単一のデータ型のみが格納可能だということを、ちゃんと把握できていなかったのでメモとして。 Type Constraints - Configuration Language - Terraform by HashiCorp 平たく言うと、anyを勘…

Terraformでリソースやモジュールに適用するProviderを、エイリアスで指定する

これは、なにをしたくて書いたもの? Terraformで、同じ種類のProviderであってもエイリアスを使って異なる構成のProviderとして定義し、適用するリソースや モジュールに応じてどのProviderを使うか選択することができます。 Provider Configuration / alia…

Terraformのprovidersコマンドを試す

これは、なにをしたくて書いたもの? Terraformのprovidersというコマンドにちょっと興味があったので、調べてみようかと。 terraform providersコマンド providersと言っているのは、terraformに含まれるコマンドです。 Command: providers - Terraform by …

Terraformで、参照している外部モジュールを強制的に再取得する

たとえば、Terraformで外部モジュールをGitリポジトリで参照している場合を考えます。 Module Sources / Generic Git Repository module "vpc" { source = "git::https://example.com/vpc.git" } module "storage" { source = "git::ssh://username@example.…

Terraformで使う外部モジュールが、内部でサブモジュールを使用していた場合の挙動を確認する

これは、なにをしたくて書いたもの? Terraformを使っていると、自分でモジュールを作ることがあります。 最初は、自前のルートモジュール内にサブモジュールを作り、こんな感じで使うのだと思います。 module "my_module" { source = "./modules/my_module"…

Terraformのcount、for_eachに作成前のリソースの情報を指定できないという話

これは、なにをしたくて書いたもの? Terraformでcountを使っていた時にこんなエラーに当たったので、「これはなんだろう?」と思い。 The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predi…

TerraformでリソースやモジュールのOutputを一括で設定する

これは、なにをしたくて書いたもの? Terraformを使っていて、 output "xxx" { value = resource_a.this.xxx } output "yyy" { value = resource_a.this.yyy } output "zzz" { value = resource_a.this.zzz } ... といった感じで、あるリソースやモジュール…

GitLabをTerraformのStateの保存先として使う

これは、なにをしたくて書いたもの? GitLab 13.0で、TerraformのStateのバックエンドとして利用できるようになったというのを見かけまして。 GitLab 13.0 released with Gitaly Clusters, Epic Hierarchy on Roadmaps, and Auto Deploy to ECS / GitLab HTT…

Terraformリソース間の依存関係を確認する

これは、なにをしたくて書いたもの? Terraformのリソース間の依存関係について、ちゃんと学んでおきたいなと思いまして。 リソース間の依存関係について Terraformのドキュメントで、リソースについて書かれているページを見てみます。 Resources - Configu…

Terraformで、リソースを作成する・しないをコントロールしたい

これは、なにをしたくて書いたもの? Terraformでリソースを作るにあたり、条件によって作る・作らないをコントロールしたいなと。 解法としては繰り返しを使うみたいなのですが、自分でちゃんと追ってみましょうか、と。 環境とお題 今回の環境は、こちら。…

TerraformリソースのLifecycleのカスタマイズを行う

これは、なにをしたくて書いたもの? TerraformリソースのLyfecycleのカスタマイズした時の動きを、1度自分でも確認しておきたいなということで。 TerraformのMeta Arguments Terraformのリソース定義には、Meta Argumentsと呼ばれる引数を含めることができ…

TerraformでRemote Stateを参照して、Data Sourceとして扱う

これは、なにをしたくて書いたもの? TerraformのRemote Stateを参照することで、Data Sourceとして扱えるらしいので、試してみることにしました。 Remote StateをData Sourceとして使う Remote Stateは、デフォルトではローカルに保存されるStateを、別のリ…

Terraformのgraphコマンドで、構成を可視化してみる

これは、なにをしたくて書いたもの? Terraformのリソースの依存関係を出力できないのかな?と思ったのですが、terraform graphコマンドでGraphvizのdot形式で出力可能な ようなので、1度試してみることにしました。 Command: graph - Terraform by HashiCor…