728x90

IaC 4

코드를 통한 인프라 관리 #4

- 이제 local이 아닌 aws에서 프로바이더를 사용해 볼 것이다. - 그 전에 링크를 참조하여 terraform CLI를 설정하자. 테라폼을 설치한 home 디렉토리에 ".terraformrc"를 사용하여 conf 설정을 해줄 것이다. - plugin_cache를 설정하면 플러그인 캐시가 설치되는 디렉토리를 지정할 수 있다. - 위와 같이 설정을 마쳤으면 아래 명령어로 디렉토리를 생성해준다. mkdir -p ~/.terraform.d/plugin-cache - 각 워크스페이스에 필요한 프로바이더나 모듈을 다운로드 받을 때 기본적 .terraform 디렉토리 안에 해당 캐시들을 설치하게 된다. 워크스페이스의 수가 증가할 수록 해당 플러그인 캐시 용량 계속해서 증가하게 되고, 이는 저장소 용량의 부족을 ..

IaC 2023.06.01

코드를 통한 인프라 관리 #3

- 이제 코드를 작성해보자. "${}" 부분은 string interplation으로 테라폼에서 변수를 가져오거나, 함수를 가져올 수 있다(js와 비슷하다). 먼저 Resources 부분부터 작성해보자. terraform { required_providers { local = { source = "hashicorp/local" version = "2.4.0" } } } provider "local" { # Configuration options } resource "local_file" "foo" { filename = "${path.module}/foo.bar" content = "Hello World Test!" } - 작성한 코드를 init 하자. terraform init - 아래와 같이 프로바이..

IaC 2023.05.31

코드를 통한 인프라 관리 #2

- 포스팅에서는 주로 IaC 도구중에서 terraform을 위주로 다룰 것이다. - terraform은 provider agnostic 하다, 즉 프로바이더에 의존하지 않는다. terraform은 GCP, AWS, Azure 등의 프로바이더를 지원한다. AWS 프로바이더를 사용하면 AWS 인프라를 관리할 수 있다는 뜻이다. - terraform의 registry에 들어가면 크게 providers와 modules로 나뉘는데 providers은 말 그대로 AWS, GCP, k8s 같은 프로바이더를 말한다. module은 예를 들어 Open VPN을 AWS EC2 환경에서 사용할 때 AWS 인스턴스, 보안 그룹, EBS 볼륨 등의 설정이 있는데 이러한 것들을 하나로 모아서 모듈처럼 활용하는 것이다. - pro..

IaC 2023.05.27

코드를 통한 인프라 관리 #1

- IaC(Infrastructure as Code)란 네트워크, 로드밸런서, 저장소, 서버 등의 인프라 자원을 수동 설정이 아닌 코드를 이용하여 프로비저닝하고 관리하는 것을 뜻한다. 대표적인 IaC도구로 Terrform, CloudFormation, Pulumi, Azure ARM Template 등이 있다. 주로 형상관리와 비교되기도 한다. - 형상관리(Configuration Management)란 서버 운영체제 상에서 필요한 소프트웨어를 설치하고 원하는 설정으로 관리하는 것으로 CaC(Configuration as Code)라고도 불린다. 대표적인 형상관리 도구로 Ansible, Puppet, Chef, Salt Stack 등이 있다. - 현재는 IaC와 형상관리간 엄청나게 큰 차이는 없다. 원래..

IaC 2023.05.25