[TF]Terraform 조건문
·
DevOps/Terraform
Terraform에서는 조건식을 지원한다. 조건식 Condition ? If_True : If_False를 사용하여 나타낼 수 있다. 예제 provider "aws" { region = "ap-northeast-2" } variable "is_jhon" { type = bool default = true } locals { message = var.is_jhon ? "Hello John!":"Hello!" } output "message" { value = local.message } 위의 코드에서 값이 True면 Hello John!을 출력하게 되고 Flase면 Hello!를 출력하게된다. 조건식을 활용한 IGW provider "aws" { region = "ap-northeast-2" } varia..
[TF]Terraform Count, Foreach
·
DevOps/Terraform
IAM User 생성 provider "aws" { region = "ap-northeast-2" } resource "aws_iam_user" "user_1" { name = "user-1" } resource "aws_iam_user" "user_2" { name = "user-2" } resource "aws_iam_user" "user_3" { name = "user-3" } output "user_arns" { value = [ aws_iam_user.user_1.arn, aws_iam_user.user_2.arn, aws_iam_user.user_3.arn, ] } Output 결과 소 수의 사용자의 경우 위와 같은 코드를 사용할 수 있지만 다 수의 사용자를 관리하기 쉽게 반복문을 사용하여 반..
[TF]Terraform Variable & Local & Output
·
DevOps/Terraform
Terraform 정의 variable "vpc_name" {} module "vpc" { source = "terraform-aws-modules/vpc/aws" version = "0.24.0" name = "var.vpc_name" cidr_block = "10.0.0.0/16" } Variable를 통한 정의 variable 통해 vpc_name의 값을 입력 받는다. terraform apply를 하고 생성된 리소스를 AWS Console에서 보면 입력받은 값이 name이 된다. 환경변수를 통한 정의 운영체제 상에 환경 변수를 추가 export TF_WAR_vpc_name="test_vpc" 위와 같이 vpc name이 test_vpc가 된다. 파일을 통한 정의 terraform.tfvars 사용..
[TF] AWS Resource 생성
·
DevOps/Terraform
Terraform 코드를 통해 EC2를 생성할려고한다. 먼저 나는 awscli 설치를 하여 aws configure를 통해 access_key, secret_key를 선언하였다. Terraform 코드를 사용하여 간단하게 EC2 Instance를 생성할 것이다. provider "aws" { region = "ap-northeast-2" } resource "aws_instance" "ubuntu" { # ami Ubuntu_20.04 TLS ami = "ami-0454bb2fefc7de534" instance_type = "t2.micro" tags = { Name = "TerraformUbuntu" } } 위의 코드를 init 후에 apply를 하면 plan이 나오고 생성할 것인지 묻는다. yes를 ..
[TF]HCL 기초문법
·
DevOps/Terraform
HashiCorp Configuration Language(HCL) Terraform 파일은 HashiCorp에서 만든 언어인 HCL을 사용하고 있다. 파일과 디렉토리로 구성되었고 UTF-8을 사용한다. Terraform 형식 .tf와 JSON 형식인 .json을 모두 사용 가능하다 보통 작성할 때는 Terraform 형식으로 많이 사용하는데 사람이 읽기 좋은 구조로 되어 있고 주석도 사용이 가능하기 때문이다. 주석 라인 주석 #, // 사용하고 여러 라인 주석은 /*, */를 사용한다. Style Conventions Terraform에서 권장하는 작성 규약이 있다. ami = "ami-example" instance_type = "t2.micro" 1. = 열을 맞춰서 작성 2. 들여쓰기를 Tap이 ..
[TF]Terraform 기초 및 설치
·
DevOps/Terraform
Infrastructure as Code(IaC)란? - 직역하면 코드로서의 인프라이다. - 코드를 통해 인프라 생성, 설정, 관리를 할 수 있는 방식 IaC의 장점 비용 절감 배포 속도 향상 오류 감소 인프라 일관성 향상 구성 변동 제거 IaC 구현에 자동화 및 구성 관리 툴을 사용할 수 있다. 대표적으로 아래와 같은 툴이 있다. Chef Puppet Terraform Ansible AWS CloudFormation 그 중에서 Terraform을 사용하여 AWS에서 어떻게 인프라를 코드로 구성하는지 공부할려고 한다. Terraform이란? HashiCorp에서 만든 오픈소스 IaC툴 .tf 파일 형식 (HCL 기반) UTF-8 사용 AWS, GCP, Azure 퍼블릭 클라우드 및 다양한 서비스 지원 🔍..