Skip to content

VPC 환경 구성하기

SeoKyung Lim edited this page Dec 14, 2023 · 1 revision

참고 자료

VPC(Virtual Private Cloud) 시나리오

AWS 자료는 많은데 NCP 자료는 거의 없어서 너무 고생하다가 결국 공식문서로 해결했다.

페이지 중간에 있는 Public Subnet과 Private Subnet 생성 에서 많이 도움을 얻었다.

[AWS] 📚 VPC 개념 & 사용 - 인프라 구축 [Subnet / Routing / Internet Gateway]

VPC 개념 정리하기 좋다.

VPC (Virtual Private Cloud)란?

VPC는 사용자가 직접 정의하는 사용자 전용의 가상의 네트워크 이다.

사용자가 원하는대로 IP 주소의 범위를 선택하고 서브넷, 라우팅 테이블, NAT 게이트웨이 등등을 구성할 수 있다.

한마디로 말하자면 Cloud 환경에서 나만의 개인 네트워크 말 데이터센터를 만들 수 있다고 생각하면 될 것 같다.

AWS는 VPC를 모든 서비스에 적용하도록 하고 있지만 NCP는 classic 과 VPC 를 나누어서 서비스하고 있다.

원래 우리 서버도 classic 에서 만들었다가 VPC로 바꾸기로 결정했다.

Untitled

VPC 생성

가장 먼저 VPC를 생성한다.

Untitled

VPC 이름과 IP 주소 범위만 입력하면 간단하게 만들 수 있다.

Subnet 생성

이제 VPC 안에 있는 Public Subnet과 Private Subnet 을 생성한다.

public subnet 에 생성될 서버는 각각 공인 IP를 연결할 수 있고, private subnet 에 생성될 서버는 기본적으로 인터넷에서 수신되는 트래픽을 허용하지 않는다. 만약 필요하다면 NAT Gateway 를 추가하여야 한다.

Untitled

여기서 방금 만든 VPC 를 선택하고 IP 주소 범위를 입력하는데, VPC IP 주소 범위 안에 있는 주소여야하고, private public 서브넷을 둘 다 만들거라면 서로 겹치지 않게 해야한다.

예를 들어, VPC IP 주소 범위를 10.0.0.0/24 로 설정했으면 10.0.0.0 - 10.0.255.255 사이로 IP 를 설정할 수 있는 것이니까 private 과 public 서브넷은 각각 10.0.0.0/28 , 10.0.1.0/28 로 나눌 수 있다. 이건 개인이 판단해서 설정하면 될 것 같다.

그리고 가용 zone 과 acl 을 선택하는데, 중요한건 acl 이다. acl 은 변경 가능하니 일단 default 로 해줘도 된다.

Network ACL, ACG 설정

여기서 설정해주는 게 조금 헷갈리기는 하지만 잘 설정해줘야 한다.

ACL 과 ACG 를 모두 private, public 각각 생성해주고 문서에 나와있는 그대로 따라해주면 된다.

다만 뭔지는 알고 넘어가자.

룰을 보면 Inbound 규칙과 Outbound 규칙이 있다. AWS 서비스를 이용해봤다면 어느정도 익숙할 것이라고 생각한다. Inbound 규칙은 서버에 들어올 수 있는 규칙을 설정해주는 것이고, Outbound 규칙은 규칙은 반대로 서버에서 나갈 수 있는 데이터에 대한 규칙을 설정해주는 것이다.

그래서 공식문서의 규칙들을 보면, public 에서는 80, 443 포트를 모든 ip 에 대해서 허용해주고 있고 22 번 포트를 사용자(우리) ip 에 대해서 허용해주고 있다. 이게 보안에 좋지만 만약 github action 으로 자동배포를 할 것이라면 모든 ip 에 대해 허용해줘야 한다. 그리고 추가로 private 서브넷에 DB 를 둘 거라면 생성 후에 DB의 ip 에 대해서 3306 inbound 허용을 해줘야 한다. (여기서 시간을 좀 썼다)

private 에서는 public 서버의 IP 에 대해서 허용해주고 있는 것 이외에는 거의 다 차단이다. private 에서는 최대한 보수적으로 잡는 것이 좋은 것 같다. 그리고 나는 public 서버와의 DB 연결을 위해 서버 IP에 대해서 3306 포트를 허용해줬다.

ACG도 동일하게 적용시켜주면 된다.

ACL

Untitled

ACG

Untitled

Route table 설정

여기서도 private 과 public 서브넷에 대하여 따로 route table 을 만들어 줘야 한다.

public route table 에서는 인터넷과 연결해주는 인터넷 게이트웨이를 추가해주고, private 에서는 다음으로 만들어줄 NAT 에 대해서 추가해주면 된다.

NAT Gateway 생성

private subnet 을 위해 Nat Gateway 를 만들어준다. 다만 그 전에 NAT 전용 서브넷을 생성해줘야 한다. 전용 서브넷을 public 으로 생성하고 NAT Gateway 를 만들어준다.

서버 생성

이제 적절하게 VPC 안에 서버를 생성하면 된다!

Clone this wiki locally