VPC와 Route 53
가용영역(Availability Zone = AZ)이란?
1개 이상의 물리적인 데이터센터를 묶어놓은 논리적 개념이다. 가용영역 안의 데이터센터는 물리적으로 떨어져 있어 물리적인 장애로부터 보호된다.
리전이란?
리전은 위의 가용영역이 2개 이상으로 구성된 지리적 영역으로, 모든 리전에서 AWS의 서비스를 누릴 수 있는 것은 아니다. 또한 리전을 지정해야만 쓸 수 있는 서비스와, global 서비스가 분리되어 있다.
지역마다 할당된 코드가 존재한다. 예를 들면 서울의 리전 코드는 ap-northeast-2이며, 서울리전의 AZ는 ap-northeast-2a, ap-northeast-2c, ap-northeast-2b로 표현한다. (그런데 웃긴 점은 이 3개가 서울에 다 있는 건 아니라는 것이다.)
VPC(Virtual Private Cloud)란?
VPC란 AWS 클라우드 내에서 논리적으로 격리된 네트워크 환경을 만들어주는 서비스이다.
AWS의 모든 리소스(서버리스나 s3같은 독립적인 서비스는 제외)는 vpc 안에 존재한다.
default VPC가 아닌 VPC를 만들어야 하는 이유는?
우리는 EC2를 배포할 때, 기본 vpc를 할당받아 사용했다. 이때 vpc 내부의 리소스는 서로의 private IP를 통해 통신할 수 있다. 그런데 A앱과 B앱을 기본 vpc에 할당받는다면, 서로 다른 성격을 지닌 앱이 격리되지 못하고 언제든 서로에게 영향을 미칠 수 있는 상태가 된다. 예를 들어, 하나의 vpc는 자신의 IP CIDR 대역을 가지는데 부족한 IP 대역을 두 앱이 나눠써야하는 등의 문제가 생기는 것이다. 따라서 하나의 서비스는 하나의 "격리된 공간"을 가지는 것이 옳다.
VPC에 많은 대역을 할당할수록 좋다?
VPC의 CIDR 대역은 중간에 변경할 수 없기에 신중해야 한다. IP대역을 많이 할당한다고 돈이 더 드는 것이 아닌데, 왜 적게 할당하는 걸까? 그 이유는 온프레미스 IDC 서버와 통신해야할 때 문제가 생긴다. 즉, 온프레미스의 IP대역과 VPC의 IP대역이 겹치기에 VPC로 가야할 리소스들이 모두 온프레미스로 가는 문제가 생기기 때문이다.
VPC에 많은 서브넷을 할당할수록 좋다?
용도별로 관리가 편하게 최대한 서브넷으로 쪼개는게 항상 좋은 것이 아니다. 서브넷으로 지정한 만큼 IP대역을 모두 쓸 수 있는 것이 아니기 때문이다. AWS는 서브넷별로 5개의 IP를 예약하기에 실질적으로 쓸 수 있는 IP대역은 더 적다.
IGW(internet gate way)란?
서브넷이 인터넷과 통신하기 위해서는(public subnet)이 되기 위해서는 IGW와 연결되어 있어야한다.
NAT gateway란?
외부 서비스에서 private subnet의 인스턴스로 접근할 수 없게 하되, private subnet 의 인스턴스에서는 외부 서비스로 접근할 수 있게 해주는 서비스이다. 즉, 오로지 먼저 Private 서브넷에서 Request가 올 경우에만 그에 대한 Response로 접근 가능하다.
Route53란?
route53은 AWS의 DNS 서비스로, domain register 역할도 함께 수행한다. route53은 로드밸런서와 다르게 트래픽을 라우팅하는 개념이 아니다. 오직 DNS 쿼리에 대해 response만을 한다. (쿼리에 대한 맵핑)
DNS 레코드란?
DNS 레코드란 request 패킷을 받았을때, 어떻게 처리할지 정해둔 지침으로,
A, CNAME, NS, MX가 있다. 자세한 포스팅은 https://jwkdevelop.tistory.com/83 를 참고하자.
Route53을 통한 EC2 배포는?
https://developer-ping9.tistory.com/320 를 참고하자.
백엔드 배포할 때는 ec2->로드밸런서->route53 로직으로 연결했었는데, EC2 하나에 왜 로드밸런서까지 연결한건지는 모르겠다.. 아는 분 댓글 부탁 ㅎㅅㅎ(현직 개발자분도 모르겠다함)