자 그럼 무엇무엇을 설정해야되느냐
이렇게 설정하면 된다.
ELB, EC2, RDS등등은 네트워크 영역설정한 다음에 설정하면 된다.
아마 네트워크 구성이 끝나면 이런모습이 될것이다.
자 그럼 하나씩 만들어보자
VPC는 논리적인 독립 네트워크를 구성하는 리소스입니다.
이름과 IPv4 CIDR 블록을 필수적으로 가집니다.
AWS의 가장 큰 단위는 리전이다. 영역단위가 리전 -> AZ(가용영역) -> VPC ... 뭐 이런식으로 내려오는데
사용자가 설정할수있는 가장 큰 단위가 VPC이다.
이름과 CIDR 블록을 지정하면 된다고 하는데 그럼 CIDR 블록은 뭘까
IP의 범위를 지정하는 방식입니다.
CIDR 블록은 IP 주소와 슬래시(
/
) 뒤에 따라오는 넷마스크 숫자로 구성되어있습니다.이 숫자는 IP 범위를 나타냅니다.
ex) 192.168.0.0/24 ==> 192.168.0.0 ~ 192.168.1.255 까지를 뜻한다.
내가 대역을 설정해놓으면 거기만 쓰겠다는거다.
근데 이거 계산하는거 복잡하다.
https://www.ipaddressguide.com/cidr
그래서 이런 계산기 사이트들을 사용하면 편리함.
사설망 대역을 사용하는 것을 권장합니다.
사설망 대역은 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16가 있습니다.
자 이렇게 기본설명이 끝났으니 실제로 만들어봅시다.
콘솔에서 VPC메뉴로 들어가보자.
VPC생성을 눌러보자.
정말 별거없다.
이름, CIDR블록만 잘써주면 끝이다.
VPC생성을 눌러주면 생성완료.
자 젤 큰단위인 VPC생성을 마쳤으니 다음으로 서브넷을 생성해보자
VPC의 서브넷메뉴로 들어가보면
서브넷 생성을 눌러보자
여기도 마찬가지로 이름과 대역만 잘정해주면된다.
VPC는 내가 아까 만들었던 VPC로 설정해주면되고
이름은
이름-private or public-subnet-부가정보
난 이런식으로 짓는데 이건 뭐 알아서 하면되고
CIDR블록역시 아까 만들었던 VPC대역 내에서 생성해주면 된다.
Public
10.0.0.0/20
10.0.16.0/20
Priavte
10.0.32.0/20
10.0.48.0/20
10.0.64.0/20
10.0.80.0/20
10.0.96.0/20
10.0.112.0/20
난 이런식으로 설정해주었다.
VPC대역에서 벗어나지 않게, 다른 subnet영역을 침범하지 않게만 설정해주면 문제없다.
애초에 저 규약을 어기면 생성자체가 안된다.
VPC는 기본적으로 격리된 네트워크 환경입니다.
따라서 VPC에서 생성된 리소스들은 기본적으로 인터넷을 사용할 수가 없습니다.
인데 이런VPC를 인터넷 환경과 연결시켜주는게 IGW인것이다.
사실 Private Subnet, Public Subnet을 나누는 기준도
IGW에 연결 되어있으면 Public, 안되있으면 외부접속이 막혀있으니까 Private인것이다.
그럼 IGW를 생성해보자. 인터넷 게이트웨이 메뉴로 가자
인터넷 게이트웨이 생성을 눌러보자
이름만 지어주면 된다.
인터넷 게이트웨이 생성을 누르자
내가 방금만든건 상태가Detached이다. 이걸 VPC에 붙여줘야 활성화가 되는것이다.
작업 -> VPC에 연결
VPC를 고르고 인터넷 게이트웨이 연결을 선택하자.
그럼 상태가 Attached로 변경될것이다.
그럼 IGW작업도 완료
NAT 게이트웨이는 NAT(네트워크 주소 변환) 서비스입니다.
프라이빗 서브넷의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서 이러한 인스턴스와의 연결을 시작할 수 없도록 NAT 게이트웨이를 사용할 수 있습니다.
private subnet에서 update나 그런걸 위해서 외부로 요청은 보낼수있지만
외부에서 직접접속은 막는데 사용하는 서비스
NAT 게이트웨이 -> NAT 게이트웨이 생성
우리는 이걸 외부와 통신하는데 쓸거기 때문에 public 영역에 놔야합니다.
서브넷도 public subnet 유형도 public 탄력적 IP도 없다면 생성해서 할당을 해줍니다.
NAT 게이트웨이 생성누르면 생성완료
라우팅 테이블(route table)은 서브넷 혹은 게이트웨이를 통해서 네트워크 트래픽이 어디로 향하는지에 대해 결정할 때 사용
내가 접속을 하면 이걸 어디로 연결시켜줘야될지 정하고 그곳으로 보내준다는거다.
기본적으로 내가 서브넷을 만들면서 IGW, 라우팅테이블등등을 만들어 주지않아도
다 default로 없으면 새로 생성해서 잡아준다. 그래서 내가 따로 설정을 안해놓고 서브넷을 바로 생성해도 통신하는데 문제가 없다.
하지만 나는 재대로 구성을 해야되기 때문에 명시적으로 내가 다 만드는것이 관리도 쉽고 파악도 쉽다.
자 그럼 한번 만들어보자.
라우팅 테이블 생성을 눌러준다.
이름을 적어주고 VPC도 내가만든 VPC로 선택해준다.
라우팅 테이블 생성을 눌러준다.
난 private용, public용 2개가 필요하겠지? 2개를 생성해준다.
라우팅 테이블 선택해보면 세부사항이 나온다
라우팅을 설정해주자
라우팅 -> 라우팅편집
private용 table
local은 내부통신이라는 소리기 때문에 그냥 냅두면 되고
private용이기 때문에 NAT Gateway를 추가해줍니다.
public용 table
public용은 IGW를 연결해줍니다.
변경 사항 저장을 누르면 완료
이제 서브넷을 추가해주자
서브넷 연결 -> 서브넷 연결 편집
private용은 private 서브넷을 모두 선택해줍니다.
public용은 public서브넷을 모두 선택해줍니다.
연결 저장을 누르자.
이럼 라우팅 테이블 설정도 완료
이럼 우리가 처음에 만들려고 했던
이 네트워크 구조가 완성되었다.
이제 여기에
Bastion Host, Web, Was, RDS 등등 구성을 추가하면 완성될것이다.