#0 VPC란?
- 단일 AWS region에 여러 VPC를 둘 수 있고 region당 최대 5개까지 가능하다.
- VPC마다 할당된 CIDR은 다섯 개이다.
(각 CIDR의 최소 크기는 /28로 IP주소는 최소 16개가 있고 최대 크기는 /16로 IP주소는 최대 6만 개쯤이다.)
- VPC는 Private 리소스이기 때문에 Private IPv4범위만 허용된다.
#1 Subnet 🔃
- 서브넷이란? ✨
VPC 내부에 있는 IPv4 주소의 부분 범위라고 생각하면 편하다.
이 범위 내에서 AWS가 IP주소 5개를 예약한다. (처음에는 4개 마지막 1개를 서브넷마다 예약)
=> 이런 IP 주소는 사용도 안 되고 EC2 인스턴스에 IP로 할당되지도 못한다.
예를 들어 CIDR 블록 10.0.0.0/24가 있으면 일부는 예약된 IP주소이다.
☑️10.0.0.0 => 네트워크 주소
☑️10.0.0.1 => 아까 10.0.0.0을 VPC router용으로 예약
☑️10.0.0.2 => DNS에 매핑한다.
(이거는 당장 사용되진 않지만 나중에 필요할 지 모르니 예약)
☑️10.0.0.255 => 브로드캐스트 주소
(VPC에서 브로드캐스트를 지원하지 않아서 사용은 안 되지만 예약은 가능)
+) 만약 EC2 인스턴스 서브넷에서 IP주소가 29개가 필요할 때 /27 서브넷은 사용 못한다. 왜냐면 /27 IP주소는 32개인데 예약된 IP주소 5개를 제외하면 27개만 남기 때문이다. 29개가 필요하댔는데 그보다 작으니 안 되고 서브넷 크기는 /26이어야 한다.(서브넷에 IP주소 64개를 제공하기 때문, 예약된 IP주소 5개를 제거하면 59개가 되니 필요한 29개보다 훨씬 많다)
#2 Internet Gateway (인터넷 게이트 웨이)
internet gateway는 VPC의 리소스를 인터넷에 연결하도록 허용시키는 게이트웨이를 말하는데 EC2 인스턴스나 람다 함수 등이 있다. => 좋은 관리형 리소스이다.
(VPC는 Internet Gateway 하나에만 연결되고 Internet Gateway 자체는 인터넷 엑세스를 허용하지 않는다!)
VPC에 internet gateway를 만들어보자.
일단 그림 정도로는 서브넷에 인터넷 엑세스를 제공하지 못 하고 라우팅 테이블도 수정해야 한다.
따라서 public subnet에 공용 EC2 인스턴스를 만들고 라우팅 테이블을 수정해서 EC2 인스턴스를 라우터에 연결하고 internet gateway에 연결한다. 그러면 internet gateway가 인터넷과 연결될 수 있다!
#3 Bastion Hosts
사용자가 private subnet에 없는 EC2 인스턴스에 액세스하고자 한다. 사용자인 우리는 public subnet에 있는데 이는 사용자의 EC2 인스턴스가 private subnet에 위치하지 않기 때문이다 private subnet에 대한 인터넷 엑세스는 없다.😰
=> 이때 배스천 호스트를 사용할 수 있다!
배스천 호스트는 이름 그대로 EC2 인스턴스인데 이 EC2 인스턴스는 public subnet에 있다는 점이 특이한 점이다.
(배스천 호스트 보안 그룹이라는 자체 보안 그룹도 있다)
이때 public subnet에 있는 EC2 인스턴스(배스천 호스트)로 private subnet에 있는 EC2 인스턴스에 액세스할 수 있다.
=> 이 모든 것이 VPC에 존재하기 때문인 것을 잊지 말기
private subnet에 있는 EC2 인스턴스에 액세스하려면 먼저 SSH를 배스천 호스트에 연결하고 이 배스천 호스트가 다시 SSH를 private subnet의 EC2 인스턴스에 연결해야 한다.
...
결국에는 요약하자면
🌟배스천 호스트를 통해서 private EC2 인스턴스에 SSH로 액세스할 수 있다는 것이다.🌟
➕) 배스천 호스트를 위해서는 보안 그룹이 반드시 인터넷 액세스를 허용해야 한다! 그런데 모든 인터넷 액세스를 허용하면 보안상 위험이 크기 때문에 기업의 public CIDR 액세스만 허용하거나 사용자의 인터넷 액세스만 허용하는 등 제한하는 게 더 좋으니 염두해두고 만들길 바란다. => 이렇게 하면 배스천 호스트의 EC2 보안 그룹을 최대한 제한해서 특정 IP만 액세스가 가능하도록 설정할 수 있다.
➕➕) private subnet의 EC2 인스턴스 보안 그룹에서는 반드시 SSH 액세스를 허용해야 한다. 따라서 포트 22번이 배스천 호스트의 private IP가 되거나 배스천 호스트의 보안 그룹이 되는 셈이다. 이는 트래픽, 즉 EC2 인스턴스가 배스천 호스트를 이용해서 연결되기 때문이다.
'AWS' 카테고리의 다른 글
VPC에 대해 조금 더 자세히 알아보자 (4) - NACL (0) | 2024.04.19 |
---|---|
VPC에 대해 조금 더 자세히 알아보자 (3) - NAT Instance, NAT Gateway (0) | 2024.04.18 |
VPC에 대해 조금 더 자세히 알아보자 (1) - VPC를 알기 전, 간단히 CIDR에 대하여 (1) | 2024.04.12 |
AWS Lambda에 대해 더 살펴보자 (2) - Lambda Snap Start, CloudFront 함수와 Lambda@Edge 차이점까지 (0) | 2024.04.10 |
AWS Lambda에 대해 더 살펴보자 (1) - 람다의 장점과 람다 이벤트 만들기 (0) | 2024.04.09 |