Terraform

{Terraform} ALB/Alibaba

https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/slb_load_balancer cat <<-'EOF' | base64#!/bin/bashyum install -y httpdsystemctl start httpdsystemctl enable httpdecho $(uname -n) > /var/www/html/index.htmlEOF e…

{Terraform} RDS/Alibaba

https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/db_instance ※1 RDS作成時に下記エラー発生WaitForDBParameter Timeout In 1000 Seconds. Got: 0.100000 Expected: 0.1 !!! 小数のparametersに対応していないためと思われ…

{Terraform} S3/Alibaba

https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/oss_bucket echo test > test.txt cat <<-'EOF' > variables.tf EOF cat <<-'EOF' > main.tf terraform { required_version = ">= 1.0.0, < 2.0.0" required_providers { al…

{Terraform} EC2/Alibaba

https://zenn.dev/kaikakin/articles/8e0b1ea308b00a https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instancehttps://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/eip_address cat <<-'EOF' …

{Terraform} VPC/Alibaba

https://zenn.dev/kaikakin/articles/8e0b1ea308b00a https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/vpc cat <<-'EOF' > variables.tf EOF cat <<-'EOF' > main.tf terraform { required_version = ">= 1.0.0, < 2.0.0" r…

{Terraform} ALB/GCP

https://zenn.dev/btc4043/articles/5d9859d3226f7dhttps://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance_templatehttps://zenn.dev/syuri/articles/8f86312f8f52b1 ※インスタンステンプレートにnetwork_inter…

{Terraform} ALB/Azure

https://learn.microsoft.com/ja-jp/azure/application-gateway/quick-create-terraform cat <<-'EOF' > providers.tf terraform { required_version = ">=1.2" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 3.0" } random…

{Terraform} ALB/OCI

https://qiita.com/sugimount/items/6d060c03aa02837749c7https://oracle-japan.github.io/ocitutorials/intermediates/using-load-balancer/ https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/load_balancer_load_balancerhttps:…

{Terraform} RDS/OCI

https://qiita.com/yama6/items/c3c39fcf905861d1055e https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/database_autonomous_database cat <<-'EOF' > variables.tf locals { tenancy_ocid = "ocid1.tenancy.oc1..00000000000000…

{Terraform} S3/OCI

https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/objectstorage_bucket https://qiita.com/billtench/items/10f85d9098bd1bf1f3b6 echo test > file01.txtecho test > file02.txt cat <<-'EOF' > variables.tf locals { tenancy_…

{Terraform} EC2/OCI

https://registry.terraform.io/providers/oracle/oci/latest/docshttps://docs.oracle.com/en-us/iaas/Content/ResourceManager/Tasks/terraform-manage-default-vcn-resources.htmhttps://registry.terraform.io/providers/oracle/oci/latest/docs/data-so…

{Terraform} VPC/OCI

https://docs.oracle.com/ja-jp/iaas/developer-tutorials/tutorials/tf-provider/01-summary.htmhttps://oracle-japan.github.io/ocitutorials/intermediates/terraform/https://docs.oracle.com/ja-jp/iaas/developer-tutorials/tutorials/tf-compartment/…

{Terraform} validation, precondition and postcondition

https://www.bioerrorlog.work/entry/validate-terraform-variableshttps://dev.classmethod.jp/articles/terraform-precondition-postcondition/https://dev.classmethod.jp/articles/launch-ec2-from-latest-amazon-linux2-ami-by-terraform/ cat <<-'EOF'…

{Terraform} tfenv

https://github.com/tfutils/tfenvhttps://www.ios-net.co.jp/blog/20230322-861/ -- 1. インストール brew unlink terraform brew install tfenv -- 2. 動作確認 tfenv list-remote terraform --versiontfenv list tfenv install 1.6.4tfenv install 1.5.7 …

{Terraform} Deploying Docker in AWS EKS

参考文献: Terraform Up & Running (Yevgeniy Brikman著) cdmkdir -p ~/20231121cd 20231121 -- 1. k8sモジュール作成 mkdir -p ~/20231121/modules/services/k8s-app cat <<-'EOF' > ~/20231121/modules/services/k8s-app/variables.tf variable "name" { d…

{Terraform} moduleでマルチアカウントマルチリージョンproviderを使用する

参考文献: Terraform Up & Running (Yevgeniy Brikman著) モジュール使用マルチアカウントマルチリージョン インスタンス01 = アカウント1,ap-northeast-1インスタンス02 = アカウント2,ap-southeast-1 mac(Monterey)ではTERRAFORM CRASH発生のため、ubuntu(…

{Terraform} Working with Multiple AWS accounts

参考文献: Terraform Up & Running (Yevgeniy Brikman著) cat <<-'EOF' > variables.tf EOF cat <<-'EOF' > main.tf terraform { required_version = "= 1.6.0" required_providers { aws = { source = "hashicorp/aws" version = "= 4.17.0" } }} provider …

{Terraform} クロスリージョンリードレプリカ

参考文献: Terraform Up & Running (Yevgeniy Brikman著) mac(Monterey)ではTERRAFORM CRASH発生のため、ubuntu(22)で実施 -- 1. 作業ディレクトリ作成 cd ~mkdir 20231119cd 20231119 mkdir -p live/dev/db/mysqlmkdir -p modules/db/mysql -- 2. モジュー…

{Terraform} Working with Multiple AWS regions

参考文献: Terraform Up & Running (Yevgeniy Brikman著) cat <<-'EOF' > variables.tf EOF cat <<-'EOF' > main.tf terraform { required_version = "= 1.6.0" required_providers { aws = { source = "hashicorp/aws" version = "= 4.17.0" } }} provider …

{Terraform} Resources encryption with Secrets Stores

参考文献: Terraform Up & Running (Yevgeniy Brikman著) -- 1. シークレット作成 aws secretsmanager list-secrets aws secretsmanager create-secret \--name secret01 \--description secret01 aws secretsmanager describe-secret \--secret-id secret01…

{Terraform} GitHub Actions with OIDC

参考文献: Terraform Up & Running (Yevgeniy Brikman著)https://future-architect.github.io/articles/20230405a/ -- 1. OIDCプロバイダとロールの作成(ローカルで実行するコード) cat <<-'EOF' > variables.tf #variable "allowed_repos_branches" {# desc…

{Terraform} EC2 Instance with IAM roles

参考文献: Terraform Up & Running (Yevgeniy Brikman著) cat <<-'EOF' > variables.tf variable "role_name" { description = "role_name" type = string default = "role01"} EOF cat <<-'EOF' > main.tf terraform { required_version = "= 1.6.0" requir…

{Terraform} ランダム文字列

参考文献: 実践Terraform (野村友規著) cat <<-'EOF' > main.tf terraform { required_version = "= 1.6.0" required_providers { aws = { source = "hashicorp/aws" version = "= 4.17.0" } random = { source = "hashicorp/random" version = "= 3.5.1" } …

{Terraform} バージョン固定

https://dev.classmethod.jp/articles/about-terraform-version-required-constraints/ cat <<-'EOF' > main.tf terraform { required_version = "= 1.6.0" required_providers { aws = { source = "hashicorp/aws" version = "= 4.17.0" } }} provider "aws…

{Terraform} Conditionals

参考文献: Terraform Up & Running (Yevgeniy Brikman著)https://dev.to/hi_artem/terraform-interpolation-vs-directives-45f0 [1] countパラメータ[2] if String Directive [1] countパラメータ cat <<-'EOF' > variables.tfvariable "apply" { descriptio…

{Terraform} for String DirectiveでLoop

参考文献: Terraform Up & Running (Yevgeniy Brikman著)https://itnext.io/terraform-count-for-each-and-for-loops-1018526c2047 cat <<-'EOF' > variables.tfvariable "names" { description = "names" type = list(string) default = [ "user01", "user0…

{Terraform} for ExpressionでLoop

参考文献: Terraform Up & Running (Yevgeniy Brikman著)https://itnext.io/terraform-count-for-each-and-for-loops-1018526c2047 cat <<-'EOF' > variables.tfvariable "list01" { description = "list01" type = list(string) default = [ "user01", "use…

{Terraform} for_eachでLoop

[1] リソースのループ[2] モジュールのループ [1] リソースのループ cat <<-'EOF' > main.tfprovider "aws" { region = "ap-northeast-1"} resource "aws_iam_user" "users01" { for_each = toset(var.user_names) name = each.value}EOF cat <<-'EOF' > var…

{Terraform} countでLoop

countの制限①リソース内のインラインブロックで使用できない②配列要素の変更に未対応 cat <<-'EOF' > main.tfprovider "aws" { region = "ap-northeast-1"} resource "aws_iam_user" "users01" { count = length(var.user_names) name = var.user_names[coun…

{Terraform} モジュールサンプル(RDS/EC2/ALB)

S3dynanodbRDSEC2ALB 参考文献: Terraform Up & Running (Yevgeniy Brikman著) 2-4章 要件:・tfstateファイルはS3に格納・環境はdev/prodの2つで、環境ごとにディレクトリを分ける・terraform_remote_stateでDB情報をEC2構築時に取得・devとprodで共通する処…