DevOps/Terraform 4

Day 3 - 백엔드 설정 및 리소스 작업 디렉토리 분리

Terraform Backend 사용하는 이유 협업 시에 리소스가 겹치거나 꼬이지 않게 Locking 하는 기능을 제공 로컬에 .tfstate 파일을 저장하여 관리하는 것보다 원격 저장소에 관리하는게 보안/관리적 측면에서 더 효과적임 생성된 리소스 자원(실제 상태)의 정보를 받아와 사용할 수 있음 코드로 보는 예제 기존 방식대로, 리소스를 개별 생성하고 output을 사용하지 않으면 생성된 리소스 자원을 하드 코딩하여 사용해야 함 기존 방식 resource "aws_instance" "example" { ami = data.aws_ami.amazon_linux_2.image_id instance_type = "t2.micro" availability_zone = "ap-northeast-2a" assoc..

DevOps/Terraform 2022.08.23

Day 2 - VPC 프로비저닝

Day 2 - VPC 프로비저닝 모듈을 사용하는 이유 캡슐화 재사용성 일관성 코드로 보는 예제 모듈을 사용하지 않으면, 각각의 개별 리소스들을 하나씩 생성해주고, 의존성을 확인해줘야 함. 모듈을 사용하면 모듈 내 변수에 값만 할당해주면 알아서 리소스들을 생성해줌 사용 예제를 보면 훨씬 간결하고 많은 공수 필요 없이 생성 가능 모듈을 사용하지 않았을 때 resource "aws_vpc" "main" { cidr_block = "192.168.0.0/22" instance_tenancy = "default" tags = { Name = "main" } } resource "aws_subnet" "public-2a" { vpc_id = aws_vpc.main.id cidr_block = "192.168.0.0..

DevOps/Terraform 2022.07.30

Day 1 - EC2 프로비저닝 (인스턴스 생성)

Day 1 EC2 프로비저닝 (인스턴스 생성) 테라폼 문법 리소스 선언 “” “” "" "" { ami = "ami-123456" instance_type = "t2.micro" } resource "aws_instance" "db" { ami = "ami-123456" instance_type = "t2.micro" } ""은 소스 내에서 참조를 위해 사용하는 변수 Output 프로비저닝 된 리소스의 메타데이터를 가져옴 코드 내용 암시적(Implicit), 명시적(explicit) 종속성 암시적 종속성 (Implicit Dependency) EC2 인스턴스가 생성된 이후에 EIP가 생성되어 연결 됨 resource "aws_instance" "example_a" { ami = data.aws_ami.a..

DevOps/Terraform 2022.07.25

Day 0 - Terraform 환경 구성

이번 회사에서 AWS 및 테라폼 관련 교육을 진행하기 위해서 자료를 만들어보고자 작성하고 있다. 나도 아직 테라폼에 대해서는 잘 모르는 부분이 많기 때문에, 이번 기회를 통해서 학습 및 정리를 하려고 한다. 직접 AWS 콘솔에서 인프라 환경을 프로비저닝하고, 그 이후에 테라폼으로 작성하여 프로비저닝 하는 순서로 진행될 예정이다. 기본적으로, 이번 포스팅의 테라폼 환경 구성은 AWS 계정이 있는 것을 전제로 한다. Terraform 환경 구성 환경 구성에 필요한 건, Terraform과 AWS IAM이다. Terraform 설치 내가 처음에 테라폼을 사용했을 때는 정확하게는 잘 모르겠지만, 직접 Terraform을 설치하여 버전 관리가 조금 어려웠다. 근데 버전 관리를 쉽게 할수 있도록 tfenv를 지원하..

DevOps/Terraform 2022.07.25