devops

Terraform Proejct Directory Structure Best Practice

다른 프로젝트와 마찬가지로 terraform도 프로젝트 디렉토리 구조를 잘 잡는것이 중요하다. 하지만 terraform의 `HCL (HashiCorp Configuration Language)`은 Python이나 Java같은 프로그래밍 언어가 아니라 말 그대로 설정 언어이기 때문에 (YAML 같은) 어떻게 프로젝트 구조를 잡아야 좋을지 감이 쉽게 오지 않을수 있다...

Read
Dev

Docker Introduction

Docker는 이미 많이 알려져있고 쓰이는 기술이다. 해외는 물론이고 국내에도 Docker 사용자가 늘고 있다. 그리고 docker를 소개하는 글은 넘치고 넘친다. 그럼에도 불구하고 docker 소개글을 쓰는 이유는 최근에 나에게 docker에 대해서 물어보시는 분들이 많이 생겨서 이 글을 쓰게 된다...

Read
Dev

Docker로 OpenVPN 쉽게 설치하기

AWS를 사용하여 infrastructure를 구성할때 널리 사용되는 보안 패턴중 하나가 중요 서버들을 private VPC에 구성하여 외부에서는 접속이 불가능 하도록 설정한후 bastion host를 통해서만 접속할수 있도록 하는것이다. Bastion host에 대해 간단히 설명하자면 내부 네트워크와 외부 네트워크 사이에 위치한 접속용 서버라고 생각하면 쉽다 (이보다 훨씬 복잡한 구조로 될 수도 있지만 아마 많은 스타트업 과 중견기업은 이정도 개념으로 사용하는 곳이 많을 것이다). 내부 서버들은 외부 접속은 모두 막고 bastion host를 통해서만 접속 가능하게 설정한후 bastion host는 접속이 허용된 유저들만 접속할수 있도록 설정함으로서 내부 서버가 직접적으로 외부에 노출되는 것을 막아준다...

Read
Devs

Terraform으로 Application Load Balancer 설정하기

AWS에서 제공하는 load balancer 서비스에는 2가지가 있는데 ALB(Application Load Balancer)와 ELB(Elastic Load Balancer)이다. 예전에는 AWS에서 ELB만 제공했었다. ELB는 굉장히 기본적인 load balancing 기능 밖에 제공하지 않았다. 예를 들어 url path에 따라 routing을 하는 기능 같은 것은 제공되지 않아서 많은 유저들이 ELB를 쓰지 않고 nginx나 HAProxy 등을 직접 운영하는 경우도 많았었다. ELB의 부족한 기능을 보완한것이 ALB이다. Url path 기반의 routing을 할수도 있고 최근에는 host-based routing 기능도 추가되었다. Terraform을 사용하여 ALB 설정을 구현해보자.

Read
Dev

Terraform으로 AWS Security Group 설정하기

Seucrity Group(보안그룹) 은 하나 이상의 인스턴스에 대한 트래픽을 제어하는 가상 방화벽 이다. 이전 [post](https://rampart81.github.io/post/vpc_confing_terraform/) 에서는 VPC를 사용하여 큰그림의 전체적인 네트워크를 구현했다면 Security Group을 사용해서 더 세부적으로 (서버별로) 네트워크 트래픽을 제어할수 있다. Security Group을 사용하여 해당 인스턴스에 접속 할수 있는 소스 IP, Protocol 와 해당 인스턴스가 보낼수 있는 outbound 트래픽까지 설정할수 있다. 이전 [post](https://rampart81.github.io/post/vpc_confing_terraform/)에서 구현했던 네트워크 아키텍쳐를 기반으로 security group 아키텍쳐를 구현해보자...

Read
Dev

Terraform으로 VPC 설정하기

VPC(Virtual Private Cloud) 는 논리적으로 독립된 가상의 네트워크 이다. 즉 클라우드 상에서 논리적으로 분리된 네트워크 이다. 데이터센터 에서 직접 서버를 운영하면 네크워크 분리를 하기위해 네트워크 장비를 사용하여 실제 물리적으로 네트워크들을 용도에 맞게 구분하고 분리하게 되는데, 이를 클라우드 상에서 가상으로 구현 가능하게 한게 VPC이다. VPC를 이용하여 네트워크 아키텍쳐를 구현하기 위해선 아래의 개념들을 이해해야 한다...

Read
Dev

Terraform으로 IAM 계정 설정하기

Terraform으로 IAM 계정 설정하는 방법을 설명하였다. Terraform을 사용해서 IAM 계정을 설정하기 위해서 필요한 terraform `resource`들은 아래와 같다...

Read