[Terraform] 誤解されがちなignore_changesの動き・機密情報はstateに保持されるのか? どうも、ちゃだいん(@chazuke4649)です。 「なんかいい感じに無視してくれるignore_changes、正しい動きを理解してる?雰囲気で理解してることない?」 詳しい人から教えてもらってめっちゃ驚いたのでブログに書きます。 先にまとめ ignore_changesはあくまでTerraformコードによるstateの変更を無視するだけ。state上の値が以後変更されないことを保証するものではない 現にその値がTerraform外で変更された場合、terraform applyによってstateの値は実体に合わせ更新されうる ignore_changesに指定した場合の各AWSリソースの動きの違い SSM Parameter Store は手動で変更したらstateは更
しばたです。 私は普段Windows環境でTerraformを使っており、Terraformのバージョン管理には自作ツールを使っていました。 つい先日新しいバージョンマネージャーであるtenvというツールがあることを知ったので試してみることにしました。 tfenvのつらみ Terraformのバージョンマネージャーとしてはtfenvが一番メジャーかと思います。 tfenv ただ、このtfenvはシェルスクリプト(Bashスクリプト)の集合体でありWindows環境ではGit Bashでのみ動作する状況でした。 加えて2023年末ごろから開発停止状態になっています。 新しいバージョンマネージャー tenv 細かい経緯を正確に把握できていないのですが、今年に入りOpenTofuのコミュニティによりOpenTofu向けのtfenv派生であるtofuenvが生まれ、 tofuutils / tof
こんにちは、つくぼし(tsukuboshi0755)です! 最近ChatGPTがGPT-4Vを発表し、AI業界がさらに盛り上がりを見せてますね。 GPT-4Vを用いる事で、ChatGPTがユーザ側から入力された画像を読み取った上で、応答を返してくれるようになります。 GPT-4V(ision) system card この機能追加により、なんと以下のようにAWSの構成図を読み取って、IaCコードを生成できる事が話題になっていました。 本日をもって引退します pic.twitter.com/fygAQDQ5kj — 電気ひつじ(onoteru) (@teru0x1) October 13, 2023 これを見て私もGPT-4Vを試してみたくなったので、今回はChatGPTを使って、様々なAWSの構成図を入力し、どこまで正確にIaCコードを生成できるか確認してみます! GPT-4Vを利用する際
CIに組み込むことで真価を発揮するツールかと思うので、Localは検証・実運用はCIといった使い分けをするのが良さそうです。 やってみた 今回はLocalで試してみます。 Pluralith CLIのインストール 利用にはユーザー登録が必要です。 以下のページからユーザー登録します。 Pluralith サインインができたら以下のページに遷移します。 Localで試したいため、Local Setupを選択します。 Download CLIでバイナリをダウンロードして、macの場合は以下のコマンドでcliを利用できるようにします。 mv pluralith_cli_darwin_amd64_v0.2.2 pluralith mv pluralith /usr/local/bin/ chmod +x /usr/local/bin/pluralith ブラウザで表示されているAPI Keyを使っ
[アップデート]Terraform CloudがValutやAWS,Azure,Google Cloudに対してOIDCで動的なクレデンシャル生成に対応 「Terraform CloudもGithub ActionsみたいにOIDCを使ってAWS認証とかできたら最高だな」 と思ったことはありません? そんな方に朗報です。Terraform CloudがValutとクラウドプロパイダー(AWS,Azure,GCP)に対してOIDCで動的なクレデンシャル生成に対応しました。(beta版 2023/1/31時点 2023/4/9 GAになりました) Terraform Cloud Adds Dynamic Provider Credentials for Vault and Official Cloud Providers 今回はAWSでこのアップデートの内容を試してみました。 アップデート概要
ちゃだいん(@chazuke4649)です。 Control Towerのアカウント発行・プロビジョニングがIaC対応しました!その名も AWS Control Tower Account Factory for Terraform (AFT) の登場です。 2社それぞれのリリース記事と、ツイートが以下です。 AWS Control Tower introduces Terraform account provisioning and customization New – AWS Control Tower Account Factory for Terraform ? A new Terraform module maintained by the AWS Control Tower team that allows you to provision and customize AWS
以前「TerraformでAWSアカウントを作るのは簡単だけど削除はひと手間かかる」というブログを書きました。 タイトル通り、TerraformでAWS Organizations配下のアカウントを作成するのはaws_organizations_accountリソースを定義してterraform applyするだけなのでチョー簡単ですが、削除はaws_organizations_accountリソースを削除してterraform applyするだけではだめで、色々設定が必要になって大変だという内容です。 ですが、少し前に激アツアップデートがありました。 そしてこの簡単削除機能がTerraformでも利用可能になっていることを知ったのでレポートします。 close_on_deletion flag Terraform AWS Provider v4.9.0でaws_organizations
Terragruntを使えば、TerraformのコードをDRY(Don't Repeat Yourself、つまりコードの重複を減らす、無くす)にすることができ、より保守性の高いコードにすることができます。今回はbackend設定周りのコードをDRYにする方法をご紹介します。 大阪オフィスのかずえです。みなさんTerraform使ってますか? 私はTerraformが好きですが、ちょっと使いづらいなと感じている箇所があるのも事実です。その一つが同じようなコードを何度も書く必要があるところ。 TerragruntというTerraformのラッパーツールを使うことで、TerraformのコードをDRY(Don't Repeat Yourself、つまりコードの重複を減らす、無くす)にすることができることを知りましたので、ご紹介します。 今回扱う環境 以前書いた「Terraform初心者が実戦
HashiConfにて、Terraform Cloudが5人まで無料で使えるようになったとのことですので、早速使ってみました! 実際の利用する方法、おすすめの運用方法などもまとめてレポートします! 最近ウィルキンソンの炭酸水にハマっている もこ@札幌オフィスです。 HashiConfにて、Terraform Cloudが5人まで無料で使えるようになったとのことですので、早速使ってみました! 実際の利用する方法、おすすめの運用方法などもまとめてレポートします! Workspaceを作成 Terraform Cloudのアカウント作成方法などは省略させていただきます。 アカウント作成が終わった画面で"Create a new Workspace"が表示されます。 GitHub, GitLab, Bitbucketなどの主要Gitサービスとインテグ出来るそうです。 今回は個人のGitHubアカウ
今回は基本はTerraformでインフラを構築しつつも、部分的にはSAMを使用してLambda+API Gatewayをデプロイしたいと思います。 Lambdaのアーカイブ化やS3へのアップロードをSAMにやってもらうことで、Terraform側でのタスクを軽減することができます。 今回の記事の元ネタは以下のスライドです。 IaCについていろいろな知見が得られると思うのでおすすめです。 SAMとは SAMはLambdaなどのサーバーレスアプリケーションの開発・デプロイを補助するツールでCloudFormationのような形式のファイルを用いてこれらを定義することができます。 Lambdaを開発・デプロイする場合について考えると、必要となる工程は煩雑です。開発ではローカルでの実行やランタイムの管理などをしたくなりますし、デプロイでは依存するパッケージの設置、Zipファイルへのアーカイブ化、ア
AWS SSO(Single Sign-On)のユーザー(厳密にいうと、そのユーザーが引き受ける各アカウント上のロール)の権限でTerraformを使いたい場合どうやるのか、調べた結果をまとめます。 方法1. 環境変数にアクセスキーをセットする まずは、SSOポータルに表示されるこれを使う方法です。コピーしてターミナルに貼り付けて実行するだけです。 今回は、S3バケットを一つ作るだけのコードを用意しています。 terraform { required_version = "= 0.14.7" required_providers { aws = { source = "hashicorp/aws" version = "3.29.1" } } } provider "aws" { region = "ap-northeast-1" } resource "aws_s3_bucket" "t
上記エントリを書いた際(2020/10/29時点)には、TerraformでAWS SSO(Single Sign-On)のリソースをプロビジョニングすることはできませんでした。が、その後terraform-provider-awsのv3.23.0、v3.24.0で一部リソースのプロビジョニングができるようになりましたので、使ってみたいと思います。 Support for Managing AWS SSO Permission Sets · Issue #15108 · hashicorp/terraform-provider-aws 追加された Resource / Data Source Resource aws_ssoadmin_account_assignment aws_ssoadmin_managed_policy_attachment aws_ssoadmin_permiss
こんにちは、岩本です。 Terraformを利用する際にある一部のリソースを変更すると、再作成となってしまう場合、 もしくは、変更を無視したい場合などがあると思います。 そこで、テンプレートのアップデートの際に、特定のリソースの変更を無視する方法です。 結論 コマンド実行時に-target=を指定する。 -target=とは? plan/applyのオプションで、特定のリソースを指定し、適用を実施することができます。 つまり適用されるリソースは指定したもののみとなるため、それ以外は除外されます。 lifecycle を利用する。 lifecycleとは? 対象となるリソースに記載することで、そのリソースに変更が発生する際の挙動を変更できます。 lifecycleには下記にある3通りの挙動を選択できます。 create_before_destroy (bool) 既存のリソースが有った場合に
全て書くと以下のようになります。 output "instance_ip_addr" { value = aws_instance.server.private_ip description = "The private IP address of the main server instance." sensitive = true depends_on = [ # Security group rule must be created before this IP address could # actually be used, otherwise the services will be unreachable. aws_security_group_rule.local_access, ] } 補足ですが、valueはlist形式でもOKです。 他のModuleの値を参照する O
はじめに データアナリティクス事業本部のkobayashiです。 AWSとGCPをセキュアな環境で接続してそれぞれのサービスを相互に利用できないか検証するためそれぞれのVPC間をVPNで接続してみました。 前回、前々回とでAWSとGCPの接続方法である「Classic VPN」「高可用性(HA)VPN」接続の方法をまとめましたが、AWSとGCPのリソースを扱うならTerraformで構成管理した方が便利なのでは?と考えたことと、今までTerraformは興味がありましたがなかなか触る機会がなかったのでその勉強も兼ねて簡単にリソースの構築と削除を行えるようにTerraformテンプレートを作成しましたのでその内容をまとめます。 Cloud VPN の概要 | Google Cloud Provider: Google Cloud Platform - Terraform by Hashi
2020/08/10にTerrform 0.13がGA(一般提供開始)しました。 このエントリでは0.13の新機能をレポートします。 moduleでcountやfor_eachが可能に 0.13より前のバージョンでは、これまではmoduleブロックにcountやfor_eachを使うとエラーになりました。当然使えるのかなーと思って書いてみたらエラーになった記憶があります。 0.13からは使えるようになります。たとえばAWSだと、複数アカウントを使っている場合の管制塔アカウント内のIAMユーザーから、AssumeRoleできるIAMロールを人数分作成する処理を、iam-assumable-roleというmoduleでfor_eachすることで簡潔に書くことができます。 locals { iam_assumable_role_settings = { kazue = {username = "
こんにちは、岩城です。既存のAWS環境をTerraformでコード化する機会がありました。その際、Terraform素人であったため、コード化する流れを掴むまでに少し時間が掛かりました。同じような方に向けて、備忘録として残しておきます。 はじめに こんにちは、岩城です。 既存のAWS環境をTerraformでコード化する機会がありました。その際、Terraform素人であったため、コード化する流れを掴むまでに少し時間が掛かりました。 同じような方に向けて、備忘録として残しておきます。 用語解説 Terraform Infrastructure as Codeを実現するためのツール コードからインフラの構築/変更/バージョン管理を行える HashiCorp社が開発、オープンソース版とエンタープライズ版がある AWS、Azure、GCPを始めとするメジャーなクラウドプロバイダをサポートしている
Terraform Workspacesの基礎と使い方について考えてみた! #AdventCalendar こんにちは(U・ω・U) AWS事業部の深澤です。 さて、こちらは terraform Advent Calendar 2019 24日目の記事になります。 皆さん、 terraformのworkspace はご存知でしょうか。 これは環境を複数用意する際にterraform側でstateを分けて管理ができる機能になります。これを使うことで例えば環境がステージングと本番みたいに分かれていた場合、ディレクトリを分けなくても環境の管理が行えるようになります。ちょっと具体的に見ていきましょう。 workspaceの基礎 terraform workspaceでは以下のコマンドが提供されています。 terraform workspace -h Usage: terraform workspa
AWS CDKでプロバイダーとしてTerraformが使える!!CDK for Terraformが発表されました!! #awscdk AWS CDKがデプロイプロバイダーとしてTerraformをサポートしました!!!まだPreview版ですが、試しにVPCを作成してみました。 はじめに おはようございます、加藤です。私にとっては今年1番熱いアップデートが来ました!AWS CDKがなんとデプロイプロバイダーとしてTerraformをサポートしました!!! ただし、今の所アルファテストステージなので、原則プロダクション環境に使うべきでありません、使う際は慎重に判断してから使用しましょう。 今まで、TerraStackIO/terrastackという同様にCDKでプロバイダーとしてTerraformを使おうとするプロジェクトはあったのですが、あまり開発は進んでいませんでした。なので、これまで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く