Terraform
-
Terraform Cloud 활용하기 #2Terraform 2023. 8. 20. 17:14
VSC 연동 TFC에서 연동 가능한 VSC는 아래와 같다 GitHub App / GitHub Enterprise / GitHub.com GitLab.com / GitLab CE / EE Gitbucket Cloud / Server Azure DevOps Services / Server 이 중 가장 보편적이라고 할 수 있는 github 연동을 해보자 TFC 설정 Settings -> Providers -> Add a VCS provider -> GitHub.com(Custom) 위와 같은 화면이 확인되면 해당 정들을 github에 등록해야 한다. github 설정 Setting -> Developer settings -> OAuth Apps -> New OAuth App 위와 같은 화면이 보인다면 TFC에..
-
Terraform Cloud 활용하기Terraform 2023. 8. 12. 11:47
Terraform Cloud Terraform cloud란 이름 그대로 Terraform 의 운영환경을 cloud 를 통해 관리할 수 있도록 해주는 서비스다. 장점 State파일 관리를 위해 별도의 리소스를 생성할 필요가 없다. 사용자별로 허용 권한을 관리 할 수 있다. Sentinel을 사용해 생성할 리소스를 제한 할 수 있다. VCS 연동을 통해 자동화가 가능하다.단점 Agent의 수가 정해져 있기 때문에 실행 속도가 느리다. TFC가 Cloud리소스 생성시 권한이 필요하다. TFC의 Token을 관리해야 되기 때문에 관리 포인트가 늘 수 있다. free tier은 기능제한이 있기 때문에 추가 기능을 위해 라이센스 구매시 비용이 증가한다. TFC Dynamic Credentials 정적 자격 증명 사..
-
Terraform Study 4주차Terraform 2023. 7. 29. 16:20
도전과제 1 AWS DynamoDB/S3를 원격 저장소로 사용하는 실습을 따라해보세요! Terraform을 통한 리소스 배포를 혼자 하는것이 아닌 협업 하는 상황이라면 state파일을 local에서 관리하는 것이 아닌 원격에서 관리하는 작업이 필요하다. 이를 위해 AWS의 S3를 사용하는 방법과 Terraform Cloud를 사용하는 방법이 있으며 그 중 S3를 사용하는 방법에 대한 설명이다. S3에는 State파일을 저장할때 동시에 프로비저닝 하여 State파일이 꼬이는 상황을 막기 위해 S3뿐만 아니라 DynamoDB도 함께 사용해야 한다. resource "aws_s3_bucket" "tfstate" { bucket = "terraform_study" versioning { enabled = tru..
-
Terraform Study 3주차Terraform 2023. 7. 22. 23:33
도전과제 1+2 조건문을 활용하여 (각자 편리한) AWS 리소스를 배포하는 코드를 작성해보자!, 내장 함수을 활용하여 (각자 편리한) 리소스를 배포하는 코드를 작성해보자! resource "aws_route_table" "rt_private_web" { count = var.one_nat_gateway_per_az ? length(var.subnets_private_web) : 1 vpc_id = aws_vpc.vpc.id tags = merge({ Name = format( "%srt-%s-%s-%s", var.company, var.one_nat_gateway_per_az ? var.subnets_private_web[count.index].name : "web", var.env, var.team )..
-
Terraform Study 2주차 도전 과제Terraform 2023. 7. 15. 16:34
중요 개념 Terraform에서 Resource block을 loop 시키는 방법에는 count, for_each, for문을 사용할 수 있다. 이 함수들 중 count의 사용법이 쉬운 편이지만 list를 사용하는 함수이기에 주의가 필요하다. list의 경우 단순 숫자로 계산되기 때문에 변수 선언을 [1,2,3]으로 선언하고 Resource 생성 후 변수의 값을 [1,3]으로 바꾸었을 때 2,3에 해당하는 Resource가 삭제되고 3에 해당하는 Resource가 새로 생성된다. 단순 2의 값만 삭제했음에도 불구하고 순서로 판단되기 때문에 이런 일이 발생하게 된다. 때문에 map type을 사용해 for_each를 사용하는 방안이 좋으며 list로 선언했다면 for문을 사용해 map으로 변수 type을 ..