Cloud/Terraform

기록하는 Terraform
·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 블록테라폼 구성을 명시하는 데 사용테라폼 버전이나 프로바이더 버전과 같은 값들은 자동 설정되지만, 함께 작업할 대는 버전을 명시적으로 선언하고,..
·Cloud/Terraform
Terraform InstallTerraform은 크게 3가지 방법을 통해 설치할 수 있다.이미 빌드된 바이너리 파일을 다운로드테라폼 소스 코드를 다운로드 후 빌드하기OS 패키지 관리자를 활용하기나는 OS 패키지 관리자를 통한 설치를 진행할 것이고,macbook과 윈도우 환경에 WSL 환경 2가지를 사용하고 있으므로 두가지 방법에 대해 서술하겠다. - WSL (Ubuntu)$ wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg$ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyr..
·Cloud/Terraform
IntroCloudNet@ 에서 진행하는 Terraform 101 Study에 참여하게 되었다.막연했던 Terraform을 누군가 알려주고 누군가와 토론할 수 있다는 점이 기대되어 티켓팅(?) 하듯 호다닥 참여하였다.겸사겸사 이번 기회에 블로그를 시작해야겠다는 생각도 생겨 하나씩 추가하려 한다.Terraform 으로 시작하는 IaC스터디 서적은 한빛미디어에서 출간한 "Terraform으로 시작하는 IaC" 이고,아직 전부를 읽지 않았지만, 생각보다 기초적인 부분을 잘 정리해놓은 것 같다.스터디를 해당 서적으로 진행하므로 해당 책을 바탕으로 정리하겠다.https://product.kyobobook.co.kr/detail/S000202478097 Terraform은?Terraform은 HashiCorp에서 ..
ssungz
'Cloud/Terraform' 카테고리의 글 목록 (2 Page)