2022. 2. 4. 19:44ㆍCloud/AWS 기초
VPC란 무엇일까?
Amazon Virtual Private Cloud(이하 Amazon VPC)는 이름에서 알 수 있듯 가상의 프라이빗한(개인적인) 클라우드 라고 할 수 있다. 즉 유저가 정의한(구축한, 만든 기타 등등) 가상의 네트워크로 AWS리소스를 사용하는 하나의 서비스 형태이다.
우리가 일반적으로 인터넷을 설치하고 사용하는과정을 한 번 생각해 보자. 먼저 내가 원하는 ISP에 연락해서 속도, 환경 등을 다 계약한 후 설치기사님이 직접 오셔서 케이블 설치하고 라우터 연결하고 이것저것 만들고 나서 구동이 된다.
이것과 마찬가지로 AWS에서 로그인하여 설정을 하면 이와 같은 가상의 네트워크를 만들 수 있다.
이런 VPC의 특징은 7가지로 다음과 같다.
1. AWS계정 생성시 default값의 VPC가 하나 생성되어 있다.
2. EC2, RDS, S3등의 서비스를 활용할 수 있다.
3. subnet을 구성할 수 있다. 즉 네트워크를 사이드 블럭을 통해 분할 할 수 있다.
4. 보안 설정을 할 수 있다.(ip 블렉리스트, 화이트리스트 등)
5. VPC Peering(VPC간의 연결)을 할 수 있다.
6. IP의 대역을 지정할 수 있다.
7. VPC는 하나의 region에만 속할 수 있으며 다른 region으로는 확장할 수 없다.
위 그림은 VPC에 대한 대략적인 개념 도식도이다. 기본적으로 하나의 region안에 있으며(서울, 도쿄 등등) 가상네트워크인 만큼 이 안에는 subnet이 각각 존재한다. 인터넷 게이트 웨이를 통해서 외부의 인터넷과 소통을 하며 Network ACL(NACL)을 통해서 보안을 관리하며 Subnet안의 객체와 소통하기 위해 route table을 이용한다.
여기에 더해서 AZ(Availability Zone),Security Group, NAT(Netwok Addess Translation) instance, NAT Gateway, VPC Endpoint를 추가해 vpc의 구성요소를 알 수 있다.
*작년, 혹은 최근에 AWS를 공부했던 사람은 Internet Gateway의 모양이 이상하다고 느낄 것이다. 원래는 구름이 있어야하는데... 저 아이콘은 전부 AWS 공식 홈페이지에서 가져왔음을 밝힌다.
https://aws.amazon.com/ko/architecture/icons/
AWS 아키텍처 아이콘
아키텍처 다이어그램은 설계, 배포, 토폴로지에 관해 커뮤니케이션할 수 있는 유용한 방법입니다. 이 페이지에서 다이어그램을 구축하는 데 도움이 되는 AWS 제품 아이콘, 리소스 및 기타 도구가
aws.amazon.com
이제 하나씩 어떤 개념인지에 대해 알아보도록 하자.
AZ(Availability Zone)은 하나의 물리적으로 분리되어 있는 인프라가 모인 하나의 데이터 센터, 지역을 의미한다. 2021년 기준으로 서울을 포함한 전 세계 26개의 지리적 리전 안에서 84개의 AZ(가용 영역)을 운영중이며 최소 8개의 리전과 24개의 AZ를 추가할 예정이다. 하나의 리전은 반드시 2개 이상의 AZ로 구성되어 있으며 각 계정의 AZ는 다른 계정의 AZ와 다른 아이디를 부여받게 된다.
왜 리전은 반드시 2개 이상으로 구성이 되어 있을까? 우리는 고 가용성이라는 단어를 알 것이다. 한국의 경우 특히 이것을 직접적으로 받아들이기 쉬운데, 만약 서울에 단 하나의 AZ가 있다고 생각해 보자. 그런데 한국은 "휴전국"이다. 갑자기 북한이 전쟁을 선포하고 서울에 공격을 하여 물리적으로 AZ가 파괴되었다 라고 가정해보자. 그렇게 되면 이곳에서 사용중인 모든 데이터는 복구할 수 없게 될 것이다. 그렇기 때문에 다른 곳에도 분산하여 보관을 할 수 있어야하는데 이것이 바로 AZ가 2개이상인 이유이며 고 가용성의 개념이다.
Subnet은 VPC의 하위 단위라고 볼 수 있다. 하나의 AZ에서만 생성할 수 있으며, 이 안에서 다수의 Subnet을 생성할 수 있다. 아래의 그림을 보면 이해할 수 있다.
이런 서브넷은 인터넷에 접근이 불가능하여 내부에서만 소통이 가능한 Private subnet과 인터넷 접근이 가능한 Public subnet이있다. 구분을 하기 위해서 CIDR블록을 통해 구분을 한다.
내부의 어떤 요소들이 외부의 인터넷과 통신을 하기 위해서는 반드시 internet Gateway(이하 IGE)를 지나가야 한다. 단 여기서 private subnet 은 IGE와 연결되어 있지 않다. 즉 내부의 네트워킹에는 전혀 관여하지 않고 외부의 네트워킹만 관련된다.
Route Table이 무엇을 하는지 조금 더 자세히 알아보자. 서버와 스위치 등 네트워크 장치에서 흐르는 데이터의 양인 트레픽이 어디로 흘러가야 할지 알려주는 테이블이다. VPC를 만들면 자동으로 생성되는데, 이곳에는 IP에 대한 리스트가 있다. 예를들어 10.0.0.0/16이라는 ip는 local로, 0.0.0.0/0과 ::/0(즉 선행된 ip이외의 알 수 없는 ip)의 경우 igw-id로 가라. 라는 리스트가 있다고 치자. public subnet에서 만약 192.168.0.1/24 라는 ip에 신호를 보내게 된다고 할때 테이블에 지정된 ip가 아니기 때문에 외부로 나가서 외부에서 이 ip를 찾아서 들어오게 된다. 즉 외부로 나갈 수 있는가 없는가에 대한 이정표이다.
private subnet의 경우는 0.0.0.0/0이나 ::/0을 설정하지 않아야 하며 반드시 내부에 있는 ip값을 설정해 줘야 한다. 즉 사용자가 설정한 ip 이 외의 모든 ip는 아무데도 가지 않는다고 보면 된다. route table이 일종의 방화벽, 차단막 의 역할을 하는 것 이다.
NACL은 stateless한, 격리된 하나의 보안 검문소 라고 할 수 있으며 Security Group(SG)는 다양한 반환이 가능한 Stateful한 보안 검문소이다. inbound로 접근하는 특정 ip 대역에 대한 차단을 하기 위한 Access Block은 NACL에서만 가능하다.
'Cloud > AWS 기초' 카테고리의 다른 글
AWS VPC Bastion Host 접근법 (0) | 2022.02.08 |
---|---|
AWS VPC part 2. (NAT와 네트워크 동작원리) (0) | 2022.02.04 |
AWS EC2 instance 의 운용방식 (0) | 2022.02.04 |
CDN이란? (AWS's CloudFront) (0) | 2021.11.24 |
Amazon BigDATA part.2 (0) | 2021.10.12 |