클라우드 컴퓨팅이란?
인터넷을 통해 연결된 원격 컴퓨터를 활용하는 기술
개인 PC가 있는데 왜 클라우드 컴퓨팅을 이용해야 될까?
- 언제 어디서나 성능이 좋은 컴퓨터를 이용할 수 있다.
- 사용한 만큼만 비용을 지불하면 된다.
- 몇 분 만에 전 세계에 서비스를 배포할 수 있다.
AWS EC2 (Amazon Elastic Compute Cloud)
Elastic이라는 용어가 크기 조정이 가능하다는 뜻으로 쓰이는데 EC2는 컴퓨터 한 대를 빌려준다고 생각하면 쉽다.
리전(Region)
- AWS가 전 세계의 각 데이터센터를 클러스터링 하는(묶은) 물리적 위치
AWS는 데이터센터가 전 세계에 여러 대 존재한다. 이를 물리적위치로 묶은 것을 리전이라고 한다.
(서울 리전은 2016년에 개설되었다.)
가용 영역(Availability Zone: AZ) = 데이터센터
한국에 4개의 리전이 있고 각 리전 안에 최소 두 개 이상의 데이터센터가 있어야 하는 이유는 천재지변에의해 데이터센터가 무너져도 다른 데이터센터가 살아있으면 되기 때문에 데이터를 보호하기 위해 여러 개를 둔다.
VPC (Virtual Private Cloud)
- 직역하면 가상 개인 공간이다.
- 논리적으로 격리된 사용자 전용 가상 네트워크
- 복수의 AZ(가용영역)에 걸친 상태로 생성가능
- 물리적으로 다른 곳에 위치하지만 같은 VPC 안에 존재
- 그래서 물리적으로 다른 곳에 위치하지만 논리적으로는 같은 네트워크로 사용할 수 있다.
서브넷(Subnet)
- VPC를 한번 더 쪼개는 행위
- 단일 데이터센터(AZ)에 위치
VPC - 내부 구성요소
인터넷 트래픽이 EC2에 도달하기까지 흐름
자동차로 할머니네 집까지 가는 상황으로 가정해본다.
먼저 차를 타고 톨게이트에 도착한다. 톨게이트에 해당하는 것이 인터넷 게이트웨이(Internet Gateway)이다. 인터넷 게이트웨이에 연결이 되어야만 외부 인터넷과 통신 할 수 있다.
갈림길에 도착한다. 할머니네 집 주소를 알고 있지만 갈림길에서 어느 방향으로 갈지는 모르지만 표지판을 보면 어느 방향으로 가야하는지 알 수 있다. 표지판에 해당하는 것이 라우트 테이블(Route Table)이다. 라우터(Router)는 라우터 테이블 해당하는 주소를 보고 인터넷 트래픽을 맞는 방향에 전송해준다.
그리고 할머니네 동네에 들어가기 전에 검문소가 있다고 가정한다. 검문소가 동네 들어가기 전에 검문하는 것처럼
NACL은 Network Access Control List인데 동네에 들어가기 전, 즉 인터넷 트래픽이 서브넷에 접근하기 전 허용한 트래픽인지 거부한 트래픽인지 확인하는 절차를 가진다.
NACL에 통과하면 할머니네 집 앞에 있는 개도 통과해야 한다. 할머니 집을 지키고 있는 개처럼 인스턴스에 접근하는 트래픽이 허용한 트래픽인지 확인하는 절차를 가지는 게 보안그룹(Security Group)이다. 보안그룹을 통과해야 인스턴스에 접근할 수 있다.
공통점 | 차이점 | |
Network Access Control List | 인바운드, 아웃바운드 트래픽 확인 | VPC 내부에 생성 서브넷 단위 |
보안그룹 | 서브넷 내부에 생성 인스턴스 단위 |
NACL과 보안그룹은 둘 다 인바운드, 아웃바운드 트래픽을 확인하는 것은 똑같지만 큰 차이점은 NACL은 VPC 내부에 생성해서 서브넷 단위로 트래픽을 확인하고, 보안그룹은 서브넷 내부에 생성해서 인스턴스 단위로 트래픽을 확인한다.
VPC와 서브넷이 네트워크를 어떻게 분리해줄까?
그전에 IP를 간략히 알아보자
IP는 8bit 4개의 그룹으로 이루어져 있고 8bit이기 때문에 256개이고 0부터 표현하면 255까지 표현된다.
AWS에서는 VPC나 서브넷을 생성할 때 CIDR(Classless Inter-Domain Routing) 블록 형태로 IP 공간을 분리해 준다. CIDR 블록 형태는 '/'와 '숫자'가 붙는 형태이다. '/24' 라고 하면 앞에서부터 24비트의 IP공간을 고정하고 남은 256개의 IP를 할당 한다는 뜻이다.(0과 255는 사용 못하므로 254개)
NACL과 보안그룹이 인바운드, 아웃바운드 트래픽를 확인 한다고 했는데, 먼저 아웃바운드 트랙픽은 인스턴스에서 외부로 나가는 트래픽이다. 인바운드 트래픽은 외부에서 인스턴스로 들어오는 트래픽이다.
보안그룹을 보면 아웃바운드 규칙은 포트번호 전체에 대해서 0.0.0.0/0, 모든 IP를 뜻한다. 그래서 인스턴스 내부에서 스타벅스로(222.123.123.123) 아웃바운드 트래픽이 나갈 수는 있지만 인바운드 규칙을 보면 22번 포트에 대해 IP가 123.123.123.0/24로 제한 되어있다. 그래서 선릉캠(123.123.123.25), 잠실캠(123.123.123.13)에서만 접근 가능하고 스타벅스(222.123.123.123)는 IP가 다르기 때문에 외부(스타벅스)에서 22번 포트로 접근할 수 없던 것이다.
VPC에는 프라이빗 서브넷과 퍼블릭 서브넷이 존재할 수 있고 프라이빗 서브넷은 외부 인터넷과 단절되어 있다. 그래서 보안을 위해 보통 데이터베이스 서버로 사용하는데 데이터베이스 서버로 사용 하고 싶어도 여러 설치 파일들이 필요할 수 있다. 설치 파일들은 인터넷을 통해 다운 받을 수 있는데 인터넷에 연결되어 있지 않기 때문에 다운 받을 수 없다.
이때 필요한 기술이 NAT(Network Address Translation) Gateway 이다. NAT 게이트웨이는 퍼블릭 서브넷의 인스턴스 안에 설치한다. 그리고 이것을 프라이빗 서브넷의 인스턴스와 연결한다.
프라이빗 서브넷에서 'apt-get mysql install'(외부 인터넷 자원 요청)을 하면
NAT 게이트웨이로 연결되고 NAT 게이트웨이에서는 프라이빗 서브넷의 Source IP를 자신의 Source IP로 바꾼다.
인터넷에 자신의 Source IP로 설치 요청을 전송한다.
인터넷에서는 Source IP가 NAT 게이트웨이이기 때문에 NAT 게이트웨이에게 설치파일을 전송한다.
NAT 게이트웨이에서는 라우트 테이블로 프라이빗 서브넷 IP 주소를 가지고 있기 때문에 외부에 자신의 IP를 공개하지 않더라도 설치파일을 받을 수 있게 된다.
참고
https://www.youtube.com/watch?v=tkP5u_SrF-8&ab_channel=%EC%9A%B0%EC%95%84%ED%95%9C%ED%85%8C%ED%81%AC
'개발 관련 강의 정리 > 10분 테코톡' 카테고리의 다른 글
[10분 테코톡] 마코의 JCF 정리 (0) | 2023.06.01 |
---|---|
[10분 테코톡] 마루의 데이터베이스 Lock 정리 (0) | 2023.05.31 |
[10분 테코톡] 릭의 MySQL 아키텍처 정리 (0) | 2023.05.28 |
[10분 테코톡] 에덴의 서버 네트워크 정리 (0) | 2023.05.26 |
[10분 테코톡] 클레이의 상속과 조합 정리 (0) | 2023.05.25 |
댓글