Well Architecture를 만들어봅시다 (๑•̀ㅂ•́)و✧
필요한 요소
Internet gateway: VPC가 인터넷과 연결되기 위한 통로
NAT Gateway: private subnet의 인스턴스가 NAT Gateway를 통해서 외부 인터넷과 연결된다. 이 때 private 인스턴스의 사설 IP가 NAT Gateway의 EIP로 변경된다. 인터넷으로 나가는 통신만 가능하고 들어오는 통신은 불가하다.
Public Subnet: Public 내에 있는 인스턴스는 외부에서 접근 가능하다.
Private Subnet: Private 내에 있는 인스턴스는 외부에서 접근 불가능하다.
Bastion Host: Private 인스턴스에 직접 접근할 수 없으므로 Bastion 호스트를 만들어 각 private 인스턴스에 접근하다.
ALB: 7계층 Load Balancer로 외부 사용자들이 WEB 서버에 접근하기 위해 사용한다.
NLB: 4계층 Load Balancer로 WEB의 APACHE가 WAS의 TOMCAT과 연결할 때 사용한다.
Security Group: 보안그룹을 계층별로 생성하고 anyway IP 없이 설정한다.
AZ: 가용영역을 둘로 배치해 이중화한다. (본 실습에서 DB 이중화는 제외)
구분 | 구성 | 정보 |
VPC | 10.0.180.0/24 | |
public-subnet | public-1a | 10.0.180.0/28 |
public-1c | 10.0.180.64/28 | |
private-subnet | private-1a-01 | 10.0.180.16/28 |
private-1a-02 | 10.0.180.32/28 | |
private-1a-03 | 10.0.180.48/28 | |
private-1c-01 | 10.0.180.80/28 | |
private-1c-02 | 10.0.180.96/28 | |
private-1c-03 | 10.0.180.112/28 | |
public-route-table | igw | |
private-route-table | natgw |
네트워크 설정
VPC 생성
기본적으로 리전 당 5개의 VPC를 만들 수 있고, 필요 시 제한을 늘려야 한다.
"VPC등"으로 만들기를 사용하면 참 편하지만 만들 수 있는 서브넷 갯수가 제한적이라,, ㅎㅎ
"VPC만" 생성했다.
Subnet 설정
public subnet 2개, private subnet 6개를 생성한다.
가용 영역을 1a, 1c 두 개로 두어 각각 public 1개, private 3개씩 할당한다.
Internet Gateway(IGW)
igw를 생성한다.
사진은 연결되어 있는 사진이지만,, VPC에 연결 버튼을 눌러서 아까 생성한 VPC에 연결시킨다.
igw는 VPC와 인터넷을 연결시키는 통로이다. 그래서 VPC랑 연결시켜주고, 내부에서 igw를 통해 나가기 위해서는 라우팅 테이블에 igw를 등록시켜주어야 한다.
Routing Table(IGW 연결)
라우팅 테이블을 생성한다.
라우팅 테이블은 연결된 서브넷에서 나가는 통신이 어디로 가야할지를 나타내는 표이다.
라우팅 테이블에는 0개 이상의 서브넷을 연결할 수 있으며, 서브넷은 최대 1개의 라우팅 테이블에만 연결할 수 있다.
라우팅 테이블이 연결되지 않은 서브넷은 자동 생성된 라우팅 테이블에 비명시적으로 연결되며, 이는 들어오는 통신을 모두 내부로 이동시킨다.(내부 통신만 가능하게 된다.)
0.0.0.0/0으로 가는 트래픽은 igw로 간다.
VPC의 CIDR인 10.0.180.0/24로 가는 트래픽은 local(내부 통신)로 간다.
따라서 routing table을 참고하여 내부에서 명시되어 있지 않은 목적지는 전부 igw로 라우팅 시키는 것이다.
라우팅 테이블에 서브넷을 연결시켜준다.
bastion host가 있는 public-1c 서브넷과 nat gateway가 있는 public-1a가 igw가 필요하므로 public subnet 둘을 연결시킨다.
igw에 연결이 제대로 됐는지 확인한다.
NAT Gateway
NAT Gateway를 생성하는데, 생성할 NAT는 외부와 통신해야 하기 때문에 public 서브넷에 할당하고 퍼블릭 유형으로 생성한다.
private에서 NAT를 통해 외부로 나가면 NAT에 할당한 EIP주소로 변경되어 나간다.
(EIP 이름을 미리 설정하고 싶어서 EIP를 먼저 만든 후에 진행했다. 상관없으면 여기서 IP 할당해도 된다.)
igw와 마찬가지로 NAT도 라우팅 테이블에 연결시켜서 서브넷의 길잡이로 만들어주자.
Routing Table(NAT 연결)
라우팅 테이블을 생성한다.
아까와 마찬가지로 목적지를 NAT로 설정해준다.
private 서브넷을 모두 넣어준다.
네트워크 구성은 이렇게 끝났고 이제 인스턴스를 만들러 가자 (งᐖ)ว