Dev

Docker Introduction

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

Read
Dev

Primary Key - Surrogate Key VS Natural Key

DB 테이블의 primary key를 surroage key를 사용할것이냐 아니면 natural key(bussiness key라고도 함) 를사용할것이냐는 질문은 개발자나 DB 관리자들 사이에서는 고전적인 주제다. 고전적인 주제 임에도 불구하고, 주관적인 선호도가 작용할수 있는 여지가 많은 주제이기 때문에 계속해서 이야기되는 주제이기도 하다...

Read
Dev

Docker로 OpenVPN 쉽게 설치하기

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

Read
Dev

파이썬 package 배포 하기

Python은 가장 널리 쓰이는 언어중 하나고 오픈소스 라이브러리도 너무나 많으므로 당연히 오픈소스 배포과정이 쉽게 정리가 잘되어있을을것 같지만 의외로 헛갈리는 점들이 몇가지 있다. 알고나면 어렵지 않지만 처음 해보는 사람에게는 약간 혼동될수 있는 경우도 있으므로 정리를 해보기로 한다.

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