DevOps/Terraform
[Terraform] Terraform과 Ansible 사용하여 3-tier 구현하기 Project
All in Notion 📔 Notion를 가시면 Timeline에 따라 Project 구현 및 진행을 보실 수 있습니다. 🥰 Github은 바로 Project를 실행해 볼 수 있습니다! Background 최근에 배운 기술 2가지를 사용하여 간단하게 만드는 프로젝트를 진행하고자 했다. Terraform과 Ansible을 사용하여 간단한 3-tier를 자동으로 구현할 수 있는 주제로 하였다. PLAN terraform의 기초를 배우면서 Project를 만드는 기간을 포함해서 1달(20.12.25 ~ 21.01.25)을 잡았다. 이미 AWS Cloud Resource를 Web Console을 통해 원하는 것을 조작해서 만들 수 있는 수준으로 자가판단(?)해서 그 부분에 대해서 Design적인 부분보다 그것..
[Terraform] Security Group과 Remote-exec의 관계
Background Security Group의 Inbound Rule에 대한 description과 몇몇의 규칙을 수정한 후 생긴 문제이다. 평소처럼 terraform apply 를 통해 Provisioning 중에 특정 null_resource가 Still creating을 반복하는 문제가 발생했다. null_resource의 의존성 문제 (depend_on)은 수정한적이 없다. 즉, 이전에는 정상작동했다. Solution 한 가지 null_resource를 예로 들어보자면 resource "null_resource" "web_env" { depends_on = [aws_instance.web] count = length(var.availability_zones) connection { user = ..
[Terraform] AWS Provider credential Authentication
background Terraform을 사용하면서 AWS Provider에서 제공하는 resource, data, modules를 사용하는 중이다. 매번 provider.tf 를 만들어서 다음코드를 통해 provider를 정의한다. provider "aws" { region = "ap-northeast-2" } 초기에는 access_key 와 secret_key 를 직접할당(Static Credential)한 방법으로 선언해 주었지만, Hard-coded credential은 risk leakage도 있고해서 다른 방법으로 구성했어야 했다. Authentication Methods Authentication 방법은 다양하게 있다. static credentials Environment variables ..
[Terraform] Terraform resource Graph
Terraform을 사용하다보면 내가 호출했던 resource들간의 의존성에 대한 문제가 발생하거나, 각 의존성이 어떻게 얽혀있는지 시각적으로 보고 싶을 때가 있다. Terraform graph를 실행하면 다음과 같은 Graphviz format의 text를 얻을 수 있는데, 이를 Graphviz Online을 이용하면 다음과 같이 시각적으로 확인할 수 있다.