분류 전체보기

·Cloud/Terraform
- data를 통해 az 조회 및 조회 데이터로 리소스 생성 - available 상태의 zones 조회data "aws_availability_zones" "az_list" { state = "available"}output "aws_availability_zones" { value = data.aws_availability_zones.az_list} - ap-northeast-2a, ap-northeast-2c 두개 존에 ec2 배포 기본 서브넷 문제로 서브넷은 변수로 할당provider "aws" { region = "ap-northeast-2"}data "aws_availability_zones" "az_list" { state = "available"}data "aws_ami" "ec2-..
·Cloud/Terraform
- VPC, ec2, alb 구성 실습[vpc.tf]provider "aws" { region = "ap-northeast-2"}variable "name" { default = "ssungz"}variable "cidr" { type = list(string) default = ["10.100.0.0/16", "10.100.1.0/24", "10.100.2.0/24" ] }variable "az" { type = list(string) default = [ "ap-northeast-2a", "ap-northeast-2c" ]}resource "aws_vpc" "ssungz-vpc" { cidr_block = var.cidr[0] enable_dns_hostnames = true enab..
·Cloud/Terraform
- 조건에 일치하는 검증 조건 변수에 입력된 파일 리스트와 파일 이름이 일치하면, 코드 수행variable "file_name" { type = list(string) default = [ "abc-0.txt", "abc-1.txt", "abc-2.txt", "abc-3.txt", "abc-4.txt", "abc-5.txt", "abc-6.txt" ]}resource "local_file" "test_file" { for_each = toset(var.file_name) content = "abc" filename = "${path.module}/abc-${each.value}.txt" lifecycle { precondition { condition = contains(var...
·Cloud/Terraform
1. EC2 웹 서버 배포 - init.sh#!/bin/bashapt-get updateapt-get install -y apache2echo "hoon-test-web" > /var/www/html/index.htmlsystemctl start apache2systemctl enable apache2 - main.tfprovider "aws" { region = "ap-northeast-2"}data "template_file" "init-sh" { template = file("init.sh")}resource "aws_instance" "test-web-srv" { ami = "ami-0e73d7a01dba794a4" instance_type = "t2.micro" associate_pub..
·Cloud/Terraform
조건문Conditional Expressions 테라폼에서의 조건식은 3항 연산자 형태를 갖는다.조건은 true / false로 확인되는 모든 표현식 사용이 가능하다. Docs 조건식은 ? 기호를 기준으로 왼쪽은 조건이며, 오른쪽은 : 기호를 기준으로 왼쪽이 조건에 대해 true가 반환되는 경우이고,오른쪽이 false가 반환된다.# ? : var.a != "" ? var.a : "default-a" 조건식을 통해 단순 변수 재정의나 출력 값에 대한 조건 정의 뿐만 아니라 리소스 생성 여무에 응용할 수 있다.count에 조건식을 결합한 경우 아래와 같이 특정 조건에 따라 리소스 생성 여부를 선택할 수 있다.variable "enable_file" { default = true}resource "loc..
·Cloud/Terraform
for_each 반복문지난 글에 이어 terraform 반복문에 대해 정리하겠다. count로 반복했던 지난 글에서 중간 리소스를 삭제할 경우 에러가 발생했고,그에 대한 대응 방안으로 for_each가 있다고 작성했다. for_each : 반복문, 선언된 key 값 개수만큼 리소스를 생성한다.for_each는 반복할 때 타입 값에 대해 하나하나 each object로 접근한다는 의미이다.each object는 key, value 2개 속성을 가지고 있다.each.key : 선언된 for_each 항목의 key를 나타낸다.each.value : 선언된 for_each 항목의 value를 나타낸다.for_each는 모든 타입 object에 접근 할 수 있고, map, set 타입만 허용한다.map,set 타..
·Cloud/Terraform
반복문반복문을 통해 테라폼 구성 정의를 반복하지 않고 관리할 수 있다. (List 형태 값, key:value 형태) - count : 정수 값만큼 리소스나 모듈을 생성 resource "local_file" "name" { count = 5 content = "abc" filename = "${path.module}/abc.txt"}output "filecontent" { value = local_file.name.*.content}output "fileid" { value = local_file.name.*.id}output "filename" { value = local_file.name.*.filename}배포하면 정상적으로 배포된 것으로 보이지만 실제로는 파일이 한개 생겼다...
·Cloud/Terraform
[실습]- EC2를 배포하기 위한 기본 네트워크 환경을 EC2를 포함하여 배포  VPC 배포는 이전 글의 코드를 기반으로 사용했다. 코드 구조는 3개로 이루어져있다.## main.tfprovider "aws" { region = "ap-northeast-2"}data "aws_availability_zones" "az-zone" { state = "available"}variable "names" { default = "ssungz"}locals { cidr_list = [ "10.10.1.0/28", "10.10.2.0/28" ]}resource "aws_vpc" "ssungz-aws_vpc" { cidr_block = "10.10.0.0/16" enable..
·Cloud/Terraform
Data SourceTerraform에서 Data는 정의되지 않은 외부 리소스 또는 저장된 정보를 테라폼 내에서 참조할 때 사용한다. - 데이터 소스 유형은 첫 번째 _를 기준으로 앞은 프로바이더 이름, 뒤는 프로바이더에서 제공하는 리소스 유형이다.- 데이터 소스 유형 선언 후 뒤에는 고유한 이름을 붙인다.- 리소스의 이름과 마찬가지로 이름은 동일한 유형에 대한 식별자 역할을 하기 때문에 중복될 수 없다. ex) AWS EC2의 AMI와 같이 프로바이더의 상품을 조회해 사용할 때 사용하기도 한다.예제 코드 [Terraform Registry]# 프로바이더 = aws, 리소스 유형 = ami, 고유 이름 = exampledata "aws_ami" "example" { executable_users = ..
·Cloud/Terraform
HCL (hashicorp configuration language)IaC는 수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로비저닝 하는 것을 의미테라폼에서 HCL이 코드의 영역을 담당한다. HCL은 쉽게 읽을 수 있고 빠르게 배울 수 있는 언어의 특징을 가짐인프라가 코드로 표현되고, 이 코드는 곧 인프라이기 때문에 선언적 특성을 갖게 되고 Turing-complete 언어적 특성을 갖는다.즉, 일반적인 프로그래밍 언어의 조건문 처리 같은 동작이 가능하다. 자동화와 더불어, 쉽게 버전이해 히스토리를 관리하고 협업이 가능한 기반을 제공한다.Terraform 블록테라폼 구성을 명시하는 데 사용테라폼 버전이나 프로바이더 버전과 같은 값들은 자동 설정되지만, 함께 작업할 대는 버전을 명시적으로 선언하고,..
ssungz
'분류 전체보기' 카테고리의 글 목록 (3 Page)