Terraform 9

Terraform - tfstate

1. tfstate의 역할현재 인프라 상태 저장 – Terraform이 관리하는 모든 리소스의 정보를 JSON 형식으로 저장변경 사항 추적 – Terraform 실행 시 기존 인프라와 새로운 코드의 차이를 비교하여 필요한 변경만 적용동일한 상태 공유 – 여러 팀원과 동일한 인프라 상태를 공유할 수 있도록 원격 저장소(예: AWS S3, Terraform Cloud) 사용 가능 2. tfstate 파일의 주요 구조{ "version": 4, "terraform_version": "1.6.0", "serial": 3, "lineage": "abcd-efgh-ijkl-mnop", "outputs": {}, "resources": [ { "mode": "managed", "ty..

Terraform 2025.02.11

Terraform - 변수 타입

1) String, Number, Bool variable "example_string" { type = string default = "Terraform"}variable "example_number" { type = number default = 10}variable "example_bool" { type = bool default = true}  2) list, map, object, tuple, set, any  2-1) list여러 값을 순서대로 저장하는 배열 형태의 자료구조리스트의 모든 요소는 같은 데이터 타입이어야 함list() 형태로 정의variable "example_list" { type = list(string) default = ["aws", "g..

Terraform 2025.02.10

Terraform - Resource

Terraform에서 resource는 인프라의 구성 요소를 정의하는 가장 기본적인 블록 resource의 기본적인 정의 형태 resource "_" "" { # 설정값 (Arguments)}AWS EC2 인스턴스 생성 예제 provider "aws" { region = "ap-northeast-2"}resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" # Amazon Linux AMI ID instance_type = "t2.micro" tags = { Name = "MyTerraformInstance" }} aws_instance: AWS의 EC2 인스턴스를 정의하는 리소스 타입 example: Terr..

Terraform 2025.02.10

Terraform Name Prefix 옵션의 사용

인스턴스를 TerraForm으로 생성 시, Prefix 옵션의 사용 예 resource "aws_instance" "example" { name = "my-instance" use_name_prefix = true}이 경우, 리소스의 이름은 my-instance- 또는 **my-instance-**으로 생성됩니다. 예를 들어:my-instance-asd12345my-instance-xyz67890여기서 접두사는 Terraform이 고유하게 생성하여, 동일한 이름 충돌을 방지합니다. 1. random_id 또는 random_string 리소스 사용Terraform의 random 프로바이더를 이용하면, 랜덤한 문자열 또는 ID를 생성해 리소스 이름에 고유값을 추가할 수 있습니다.ran..

DevOps 2024.10.10

[AWS] AWS CLI 설치

1.https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html  위의 홈페이지에서 윈도우즈 버전 설치 후 aws --version 명령어로 설치 확인 2. IAM에서 IAM 유저 생성 후 액세스키 발급 aws configure list-profiles 프로필 리스트 확인 명령어 aws configure --profile Vincent-dev Vincent-dev 프로필을 사용할 것이기 때문에 configure에 프로필 추가  Remote tfstate 저장소 활용https://developer.hashicorp.com/terraform/language/backend/s3https://dewble.tistory.co..

Cloud 2024.10.09

[TerraForm] 기본적인 각 블록의 개념

data 블록Terraform에서 사용하는 data 블록은 특정 리소스에 대한 정보를 조회하는 데 사용됩니다. 당신이 언급한 두 가지 데이터 블록은 다음과 같은 역할을 합니다: data "aws_caller_identity" "current" {}: 현재 AWS 계정의 정보를 가져오는 데 사용됩니다. 이 데이터 소스를 통해 AWS 계정 ID, 사용자 ARN 및 사용자 ID를 포함한 정보를 확인할 수 있습니다. 주로 현재 작업 중인 AWS 환경에 대한 정보를 얻기 위해 사용됩니다. data "aws_availability_zones" "available" {}: 현재 지역에서 사용 가능한 가용 영역(Availability Zones)의 목록을 조회합니다. 이 데이터 소스를 사용하면 여러 가용 영역을 기반으..

DevOps 2024.10.09

[VPC] 서브넷 로드밸런서 태그

서브넷에 로드 밸런서를 배포하려는 경우 서브넷에는 다음 태그가 있어야 합니다.프라이빗 서브넷키,값kubernetes.io/role/internal-elb1퍼블릭 서브넷키,값kubernetes.io/role/elb1 출처 : https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/network_reqs.html Amazon EKS VPC 및 서브넷 요구 사항과 고려 사항 - Amazon EKS추가하는 모든 서브넷은 클러스터를 생성할 때 원래 제공한 것과 동일한 AZ 세트에 있어야 합니다. 새 서브넷은 다른 모든 요구 사항을 충족해야 합니다. 예를 들어 충분한 IP 주소가 있어야 합니docs.aws.amazon.com    Terraform을 통해 VPC를 구축할 ..

Cloud 2024.09.20