IaC
Terraform stateファイルを格納するバックエンドの情報を動的に設定する方法の備忘録です。 はじめに Terraform backendの設定を動的に行う方法 おわりに 参考 はじめに Terraformのstateファイルを管理するためのバックエンド(S3/DynamoDBなど)の設定を、Te…
Terraformのone()関数の挙動を整理します。 はじめに one()関数の振る舞いを理解する one()関数の仕様 具体例 one()関数の使いどころ おわりに 参考 はじめに Terraformにはone()関数が用意されています。 端的すぎる命名ということもありパッと挙動がわから…
AWS Cloud9をPrivate Subnetで作成する方法を整理します。 はじめに 前提: Private SubnetでのCloud9の仕組み Private SubnetでCloud9を構築する Internet Gateway / NATありの場合 Internet Gateway / NATなしの閉域Private Subnetの場合 おわりに 参考 は…
TerraformでAWSリージョンを取得する方法の備忘録です。 はじめに TerraformでAWSリージョンを取得する やり方 おまけ: Terraformソースコードを読む おわりに 参考 はじめに TerraformでAWSリソースを書いていると、ARNの指定などでアカウントidやリージョ…
Terraformのstateを格納するbackend(S3/DynamoDB)を構築する、CloudFormationテンプレートの備忘録です。 はじめに Terraform backendを構築するCloudFormationテンプレート おわりに 参考 はじめに Terraformのstateを格納するbackend自身をどのように構築…
Azure Developer CLIにおけるリソースデプロイ系コマンド、 azd up azd provision azd deploy これらの違いを整理します。 はじめに azd up / provision / deploy 違い 動作確認 azd provision azd deploy azd up おわりに 参考 はじめに 最近、Azure Develo…
含めるべきではない、と感じているので考えを整理します。 はじめに リソース名に"リソース種名"を含めるべきか デメリット リソース名実装ロジックの複雑性が増す リソース名の文字数上限を圧迫する リソース種名の略語の決定に時間と労力を消費する メリッ…
terraform plan実行時に、plan結果と要約を併せて表示するワンライナーを組みます。 はじめに terraform plan結果の要約を表示する 1. とりあえずgrep 2. 元々の出力も表示する 3. 一時ファイルの作成にmktempを使う おまけ: aliasを作成する おわりに 参考 …
Terraform moduleスコープ設計時に役立つ3つの観点をまとめます。 はじめに Terraform module設計の考え方 Moduleスコープ設計の3つの観点 Encapsulation / カプセル化 Privileges / 特権性 Volatility /変動性 Module設計例 Network module Web module Ap…
Terraformのmapでkeyが数字から始まったり、スペースを含んだりするとエラーになる問題の備忘録です。 はじめに Terraformエラー対処: "Error: Missing key/value separator" 起きたこと 原因 対処法 問題あるmap/問題ないmapまとめ おわりに 参考 はじめに …
作成するか否かをcountで制御したリソースをoutputする方法を整理します。 はじめに count制御したリソースをoutputする やり方1:one関数を使う やり方2:try関数を使う おわりに 参考 はじめに Terraformではcountを指定することで、そのリソースの作成…
Rustで書いたAWS LambdaをTerraformでデプロイする方法の備忘録です。 はじめに RustのAWS LambdaをTerraformで実装する 作ったもの Terraformの実装 Lambda用Rustパッケージの実装 1. cargo-lambdaのインストール 2. 新規Lambdaパッケージを生成 3. Rustコ…
GitHub Actionsでterraform fmtをチェックする方法をメモします。 はじめに GitHub Actionsでterraform fmt おわりに 参考 はじめに こんにちは、@bioerrorlogです。 コードのフォーマットチェックをCIで自動担保させることは、シンプルですが大切なことです…
Terraformで現在のAWSアカウントIDを取得する方法の備忘録です。 はじめに TerraformでAWSアカウントIDを取得する やり方 おまけ: Terraformソースコードを読む おわりに 参考< はじめに Terraformを書いているとき、arnの指定等でAWSアカウントIDを取得&設…
Terraformの三項演算子の使い方と、その使用例をまとめます。 はじめに Terraformで三項演算子 使い方 具体例 シンプルな例 条件演算子を組み合わせ 型がcastされる例 エラー: 異なる型を指定 エラー: bool以外をconditionに指定 活用事例:resource count …
Terraformで出力ログレベルを変更するやり方の備忘録です。 はじめに TerraformでDEBUGレベルのログを出力する TerraformとProviderで個別にログの出力レベルを設定する おまけ: Terraformのソースコードを読む おわりに 参考 はじめに 不具合の切り分けをす…
terraform plan結果がNo changesかどうかを検知するのに便利な方法をメモします。 はじめに terraform plan結果がNo changesでないときに異常終了させる おわりに 参考 はじめに terraform applyした直後であっても、terraform planで差分が発生してしまうこ…
Terraformのsubstrを使って、文字列を切り出す/抽出するやり方を整理します。 はじめに substrの使い方 基本の使い方 マイナス値を活用する おわりに 参考 はじめに こんにちは、@bioerrorlogです。 substr関数を使えば、Terraformで文字列を切り出すことが…
Terraformのmodule variableで、特定パターン・条件を強制/validateする方法を整理します。 はじめに Terraformのvariableで特定パターンを強制する やり方 活用例: AMI ID 活用例: S3 URI おわりに 参考 はじめに こんにちは、@bioerrorlogです。 Terraform…
AWS CloudFormationで!FindInMapを!Sub内で使うやり方をまとめます。 はじめに !FindInMapを!Subの中で使う おわりに 参考 はじめに CloudFormationの!Subは値を代入/置換 ("substitute")できる関数、!FindInMapはMappingsから値を取得できる関数です。 (!Su…
CDKやCloudFormationにて、変更したDeletionPolicy (RemovalPolicy)がStackに反映されない時の対処法を残します。 はじめに DeletionPolicyの変更が反映されないときの対処法 起こったこと 原因 対処法 おわりに 参考 はじめに 先日、CDKで作成したリソース…
AWS CDKでTagを付与する方法の備忘録です。 はじめに 環境 CDKでTagを付与する 具体例 Stack単位でTagを付与する Construct単位でTagを付与する 補足: 非推奨のTag付与方法 おわりに 参考 はじめに CDKでリソースにTagを付与するとき、やり方を忘れてググり…
AWS CDKのバージョンアップ方法を記します。 また、Cloud9でCDKをバージョンアップする際の注意点についても記述します。 はじめに 作業環境 CDK をアップデートする 一般的なCDKアップデート方法 Cloud9でのCDKアップデート方法 おわりに 参考 はじめに CDK…
ChaliceアプリケーションをCDKでデプロイする方法を記します。 はじめに AWS Chaliceとは 作業環境 実行手順 前準備: Python3.7のインストール Chaliceプロジェクト作成 Chalice appコード CDKプロジェクトの作成 CDKコード CDKデプロイ リソースの削除 おわ…
よく使うCDKの基本コマンドをまとめます。 はじめに 環境 CDKコマンドまとめ CDKバージョン確認 CDKインストール CDKプロジェクト作成 CDKコマンド実行前の下準備 CDK Stack一覧表示 CloudFormationテンプレートの生成 CDKデプロイ前準備:bootstrap CDKデプ…
AWS CDKでStackをネスト (入れ子) にしてデプロイする方法を記します。 はじめに 作業環境 CDKでStackをネストにする 問題: Stackが入れ子にできない 解決策: NestedStackを使う おわりに 参考 はじめに AWS CDKでStackをネスト(入れ子)にしようとしたところ…