본문 바로가기

전체 글137

3주차 1편 테라폼 기초 - 기본 사용 3/3 3.9 반복문 (2/2) for_each for_each를 사용하면 주어진 map 또는 set 타입의 컬렉션에 있는 각 요소를 개별적으로 처리할 수 있습니다.각 요소에 대해 each.key와 each.value를 통해 해당 요소의 키와 값을 사용할 수 있습니다.each.key: 이 인스턴스에 해당하는 map 타입의 키 값.each.value: 이 인스턴스에 해당하는 map의 값.map 또는 set 타입이 아닌 표현식은 toset 등의 함수를 사용해 이 타입으로 변환해야 합니다.예시 - mapresource "azurerm_resource_group" "rg" { for_each = tomap({ a_group = "eastus" another_group = "westus2" }).. 2024. 6. 30.
2주차 3편 테라폼 기초 - 기본 사용 2/3 3.7 local 지역 값로컬 변수(local variable)는 코드 내에서 선언되고, 코드 내에서만 참조 가능한 값을 의미합니다.로컬 변수는 선언된 모듈 내에서만 접근할 수 있으며, 외부에서는 접근이 불가능합니다.실행 시에 입력값을 받을 수 없습니다. 오직 코드 내에서 선언되고 가공된 값만을 사용합니다.로컬 변수는 테라폼 코드 구현 시 자주 사용하는 값이나 표현식을 반복적으로 사용하기 쉽게 합니다.여러 곳에서 빈번하게 사용될 경우 실제 값에 대한 추적이 어려워질 수 있습니다. 이는 코드의 유지 관리 측면에서 부담이 될 수 있습니다.local 선언선언 블록로컬 변수는 locals 블록으로 시작하여 선언됩니다.선언되는 인수에 표현되는 값은 상수뿐만 아니라 리소스의 속성, 변수의 값들도 조합하여 정의할 수.. 2024. 6. 19.
2주차 2편 테라폼 기초 - 기본 사용 2/3 [실습1] VPC + 보안그룹 + EC2 배포default VPC 대신 새로운 VPC를 생성하고 그 안에 EC2 인스턴스를 배포VPC 생성새 디렉터리와 Terraform 파일 생성mkdir my-vpc-ec2cd my-vpc-ec2touch vpc.tfvpc.tf 파일 수정provider "aws" { region = "ap-northeast-2"}resource "aws_vpc" "myvpc" { cidr_block = "10.10.0.0/16" tags = { Name = "t101-study" }}Terraform 초기화 및 배포terraform initterraform planterraform apply -auto-approveVPC 확인# AWS CLI의 결과를 페이지별로 보여주는.. 2024. 6. 19.
2주차 1편 테라폼 기초 - 기본 사용 2/3 3.5 데이터 소스Terraform에서는 데이터 소스를 사용하여 테라폼 코드 외부에서 정의된 리소스나 저장된 정보를 참조할 수 있습니다.이를 통해 기존 리소스를 활용하거나 외부 데이터를 가져와서 테라폼 코드 내에서 사용할 수 있습니다.데이터 소스 구성데이터 소스 블록은 data로 시작하며, 리소스 블록과 유사하게 구성됩니다.데이터 소스 유형은 '프로바이더_리소스유형' 형태로 정의됩니다.data "local_file" "abc" { filename = "${path.module}/abc.txt"}데이터 소스를 정의할 때 사용할 수 있는 메타인수는 다음과 같습니다depends_on: 종속성을 선언하여 특정 리소스의 생성 시점을 정의합니다.count: 여러 리소스를 생성합니다.for_each: map 또는 .. 2024. 6. 16.
1주차 2편 테라폼 기초 - 기본 사용 1/3 3.3 테라폼 블록테라폼 블록테라폼 블록은 테라폼 구성을 명시하는 데 사용됩니다. 주요 요소는 다음과 같습니다.테라폼 버전과 프로바이더 버전을 명시적으로 선언하여 실행 오류를 최소화합니다. 이는 오늘 실행하던, 3년 후에 실행하던 동일한 결과를 얻기 위함입니다.terraform { required_version = "~> 1.3.0" # 테라폼 버전 required_providers { # 프로바이더 버전 random = { version = ">= 3.0.0, " workspaces { name = "my-first-workspace" } } backend "local" { # state를 보관하는 위치 path = "relative/path/to/terr.. 2024. 6. 16.
1주차 1편 테라폼 기초 - 기본 사용 1/3 1장 IaC와 테라폼테라폼 이란?테라폼은 인프라를 코드로 관리하기 위한 하시코프사에서 공개한 오픈 소스 도구입니다. 주로 클라우드 인프라 자동화를 위해 사용되며, Infrastructure as Code (IaC) 도구 중 하나로 분류됩니다. 테라폼 제공 유형 3가지On-premise : Terraform이라 불리는 형태로, 사용자의 컴퓨팅 환경에 오픈소스 바이너리툴인 테라폼을 통해 사용Hosted SaaS : Terraform Cloud로 불리는 SaaS로 제공되는 구성 환경으로 하시코프가 관리하는 서버 환경이 제공Private Install : Terraform Enterprise로 불리는 서버 설치형 구성 환경으로, 기업의 사내 정책에 따라 프로비저닝 관리가 외부 네트워크와 격리 2장 실행 환경 구.. 2024. 6. 16.
8주차 2편 EKS IaC - Terraform, VPC, EC2 Terraform 실습 - VPC, EC2 VPC 배포vpc.tf 파일 생성provider "aws" { region = "ap-northeast-2"}resource "aws_vpc" "myvpc" { cidr_block = "10.10.0.0/16" tags = { Name = "aews-study" }}배포 및 확인# 배포terraform init && terraform plan && terraform apply -auto-approveterraform state listterraform state show aws_vpc.myvpc# VPC 확인export AWS_PAGER=""aws ec2 describe-vpcs | jqaws ec2 describe-vpcs --filt.. 2024. 4. 28.
8주차 3편 EKS IaC - Terraform, EKS Terraform 으로 EKS 배포첫 번째 EKS 클러스터 배포git clone 및 terraform init → plan → apply# 코드 가져오기git clone https://github.com/gasida/aews-cicd.gitcd aews-cicd/4# terraform 환경 변수 저장export TF_VAR_KeyName=kp-ihwooecho $TF_VAR_KeyName# terraform initterraform plan# 10분 후 배포 완료terraform apply -auto-approve주요 생성 자원 : VPC, Subnet, IGW, NATGW, Routing Table, EKS, EKS SG테라폼 정보 확인#terraform state list#terraform conso.. 2024. 4. 28.