-
AWS Technical Essentials; Module 3Cloud/Amazon Web Services 2022. 6. 4. 20:51
모듈 3 : AWS 네트워킹
모듈 3 : AWS 네트워킹
3-1) 네트워킹
네트워킹 정의
네트워킹 : 전 세계의 컴퓨터를 연결하여 서로 통신할 수 있도록 하는 방법
네트워킹 예시 : AWS 글로벌 인프라
- AWS는 데이터 센터, 가용 영역 및 리전을 사용 ➡ 리소스 네트워크 구축
네트워킹 기본 정보
디지털 세계 컴퓨터는 편지 전송과 비슷한 방식으로 메시지 전달 처리 ➡ 라우팅
- 편지가 목적지에 도착하려면 ➡ 주소의 모든 부분 필요
- 정확한 주소가 없다면 ➡ 우편 배달부가 편지를 제대로 배달할 수 ❌
네트워킹을 생각하는 한 가지 방법 : 편지 보내는 일
편지를 보낼 때 다음 세 가지 요소를 제공합니다.
- 봉투 안의 편지, 즉 페이로드
- 보낸 사람 주소
- 받는 사람 주소
각 주소에는 다음과 같은 특정 정보가 포함되어야 합니다.
- 보낸 사람 이름 및 받는 사람 이름
- 국가
- 시도
- 시군구
- 번지 또는 우편 번호
- 국가
IP 주소
- 메시지를 특정 위치로 올바르게 라우팅하기 위해 필요
- 각 가정 우편 주소 = 각 컴퓨터 IP 주소
- 우편 주소 : 국가, 시도, 시군구, 번지, 우편 번호의 조합
- IP 주소 : 비트 0과 1의 조합
바이너리 형식의 32비트 주소의 예
IPv4 표기법
- 2진수 ➡ 10진수 형식 변환된 Ipv4 주소
- 32비트 ⇒ 일단의 8비트(8진수라고도 함) x 4개 그룹화
- 각 그룹 ⇒ 마침표로 구분된 십진수 형식으로 변환
Ipv4 주소 - 단일 컴퓨터 통신 시 중요한 요소 ➡ Ipv4 주소
- 네트워크 작업 ➡ CIDR 표기법 사용
CIDR 표기법
- IP 주소 범위 축약하여 지정하는 방법
- 범위 지정 ➡ 사용 가능한 IP 주소의 수 결정됨
192.168.1.30은 단일 IP 주소 192.168.1.0과 192.168.1.255 사이 IP 주소 표현하려면? ➡ CIDR(클래스 없는 도메인 간 라우팅) 표기법 사용
CIDR 표기법 - 시작 IP 주소 + / + 숫자
- 끝에 있는 숫자 ⇒ IP 주소의 고정된 비트 수 지정
- 위 그림 IP 주소의 처음 24비트가 고정되어 있습니다. 나머지는 유동적입니다.
- 총 32bit - 24개 고정 bit = 8개의 유동적인 bit
- 이러한 비트는 바이너리 ➡ 각각 0 또는 1
- 즉, 8비트 각각에 대해 두 가지 선택 (28) ➡해당 IP 범위에 256개 IP 주소 제공
- / 숫자 ➡ 클수록 네트워크의 IP 주소 수 작아짐
- EX) 192.168.1.0/24 범위 < 192.168.1.0/16
AWS 클라우드 네트워크 작업 수행 시, CIDR 표기법 사용하여 네트워크 크기 선택
- AWS에서 사용할 수 있는
- 가장 작은 IP 범위 : /28 ➡16개의 IP 주소를 제공
- 가장 큰 IP 범위 : /16 ➡ 65,536개의 IP 주소를 제공
리소스
- 외부 사이트: Stanford: Introduction to Computer Networking
- 외부 사이트: Ionos: CIDR: What Is Classless Inter-Domain Routing?
- 외부 사이트: CIDR.xyz
3-2) Amazon Virtual Private Cloud
Amazon VPC
Virtual Private Cloud(VPC)
- 클라우드에서 생성하는 격리된 네트워크
- 기존 네트워크 → IDC
VPC 생성 시 3가지 주요 요소
이 정보를 사용하여 해당 네트워크에 대한 네트워크 및 IP 주소 프로비저닝
- VPC 이름
- VPC가 상주할 리전
- 각 VPC는 선택한 리전 내의 여러 가용 영역에 걸쳐 있습니다.
- VPC의 IP 범위(CIDR 표기법)
- 이를 통해 네트워크 크기가 결정됩니다. 각 VPC는 최대 4개의 /16 IP 범위를 가질 수 있습니다.
서브넷
- 기본 네트워크 내부 소규모 네트워크로 간주
- 기존 온프레미스 네트워크 가상 로컬 영역 네트워크(VLAN)로 간주
- 온프레미스 네트워크 서브넷 사용 사례 : 네트워크 트래픽 격리, 최적화
- 리소스에 대한 고가용성, 연결 옵션 제공
- 서브넷 목표 : 리소스에 대한 액세스를 보다 세부적으로 제어할 수 있도록 하는 것
- VPC 생성 후 → 네트워크 내부에 서브넷 생성 해야함
서브넷 생성 위해
- 서브넷을 사용할 VPC. 이 경우: VPC(10.0.0.0/16)
- 서브넷을 사용할 가용 영역. 이 경우: AZ1
- 서브넷용 CIDR 블록(VPC CIDR 블록의 하위 집합이어야 함). 이 경우: 10.0.0.0/24
- EC2 인스턴스를 시작하면 서브넷 내부에서 시작
- 이 인스턴스는 선택한 가용 영역 내에 위치
VPC를 통한 고가용성
- 서브넷 생성 → 고가용성 고려
- 중복성, 내결함성 유지 → 이중화 구성
- 두 개의 가용 영역에 구성된 서브넷을 두 개 이상 생성
- AZ리소스를 다른 AZ에 복사
- AZ 중 하나 실패 → 다른 AZ의 리소스 백업으로 사용
예약된 IP
- AWS에서 VPC 적절하게 구성 위해 각 서브넷에 5개 IP 주소 예약
- IP 주소 : 라우팅, 도메인 이름 시스템(DNS), 네트워크 관리에 사용
EX) IP 범위 : 10.0.0.0/22인 VPC
VPC : 총 1,024개 IP 주소 포함
VPC는 동일한 크기의 서브넷 4개로 나뉘며,
각 서브넷에는 256개의 IP 주소가 포함되는 /24 IP 범위 존재
AWS는 5개 예약 → 이러한 IP 범위 각각에서 251개의 IP 주소만 사용 가능- 5개의 예약된 IP 주소는 네트워크 설계 방식에 영향 줄 수 있음
- 클라우드 처음 사용하는 경우,
- IP 범위가 /16인 VPC를 만들고
- IP 범위가 /24인 서브넷을 만드는 것이 일반적
- VPC, 서브넷 수준에서 사용할 수 있는 IP 주소 다수 제공
게이트웨이
인터넷 게이트웨이
- VPC에서 인터넷 연결 활성화 위함.
- 생성한 인터넷 게이트웨이는 VPC를 인터넷에 연결
- 컴퓨터를 인터넷에 연결하는 모뎀과 비슷한 개념
- 높은 가용성, 확장성
가상 프라이빗 게이트웨이
- AWS VPC를 다른 프라이빗 네트워크에 연결
- 가상 프라이빗 게이트웨이 생성 → VPC에 연결 → 게이트웨이가 연결의 AWS 측에서 앵커 역할
- 연결 다른 쪽 → 고객 게이트웨이를 다른 프라이빗 네트워크에 연결
- 고객 게이트웨이 디바이스 : 연결을 위해 고객 측에 설치된 물리적 디바이스 또는 소프트웨어 애플리케이션
- 두 게이트웨이가 모두 존재 → 양측 사이 암호화된 VPN 연결 설정 가능
리소스
- 외부 사이트: AWS: 퍼블릭 및 프라이빗 서브넷 이 있는 VPC(NAT)
- 외부 사이트: AWS: 사용자 지정 라우팅 테이블
- 외부 사이트: 고객 게이트웨이
- 외부 사이트: AWS: Amazon VPC란 무엇입니까?
- 외부 사이트: AWS: VPC 및 서브넷
3-4) Amazon VPC 보안
Amazon VPC 보안
AWS의 VPC 리소스를 보호하기 위한 2가지 옵션
- 네트워크 ACL
- 보안 그룹 (Security Group)
단일 인스턴스 또는 서브넷 트래픽에 대해 네트워크 전체 트래픽을 필터링하는 강력한 도구
네트워크 ACL
서브넷 수준에 위치한 네트워크 ACL - 서브넷에 배치
- 기본 네트워크 ACL는 모든 트래픽이 서브넷을 출입하도록 허용 → 커스텀하여 차단할 수도 있다
- In/Outbound 설정
- 기본적으로 모든 것이 허용 ➡ 허용과 거부 규칙 모두 사용 가능
네트워크 액세스 제어 목록을 사용하여 서브넷 보안
- 네트워크 액세스 제어 목록(네트워크 ACL) → 서브넷 수준의 방화벽
- 네트워크 ACL 사용 → 서브넷 출입 트래픽 종류 제어 가능
- 네트워크 ACL 구성 : 필터링할 트래픽 정의 규칙 설정
- 위 표의 기본 네트워크 ACL → 모든 트래픽 서브넷 출입 허용
- 데이터가 서브넷으로 자유롭게 이동
- 서브넷 수준에서 데이터 제한도 가능
그러나 서브넷 수준에서 데이터를 제한해야 할 수도 있습니다.
예를 들어 웹 애플리케이션이 있는 경우,
HTTPS 트래픽 및 원격 데스크톱 프로토콜(RDP) 트래픽을 웹 서버로 허용하도록 네트워크를 제한할 수 있습니다.- 인바운드 443, 아웃바운드 범위 1025~65535 허용
- HTTP가 포트 443을 사용하여 연결을 시작하고 임시 포트에 응답하기 때문
- 네트워크 ACL는 무상태로 간주 됨 → 프로토콜에 사용되는 인바운드 포트, 아웃바운드 포트 모두 포함해야 함
- 아웃바운드 범위 포함 되지 ❌ → 서버가 응답 BUT 트래픽은 서브넷 떠나지 ❌
- 네트워크 ACL 기본값 구성 : 수신, 발신 트래픽 허용
- 추가 보안 계층이 필요하지 않은 경우, 초기 설정을 변경할 필요 없음
- 추가 보안 계층이 필요하다면, 초기 설정 변경 필요
보안 그룹 (Security Group)
EC2 인스턴스 수준에 위치한 보안그룹 - EC2 인스턴스에 배치
- 기본 구성 : 모든 Inbound 트래픽 차단 + 모든 Outbound 트래픽 허용
- 상태 유지 리소스로 유지됨 ➡ 아웃바운드 포트 열 필요 ❌
- 연결이 원래 EC2 인스턴스에 의해 시작되었는지,
- 외부에서 시작되었는지 기억하고,
- 인바운드 규칙을 수정할 필요 없이,
- 일시적으로 트래픽이 응답하도록 허용
- 기본적으로 모든 것이 차단 ➡ 허용 규칙만 사용 가능
Inbound rule 설정 불가능한 보안 그룹
보안 그룹을 통한 EC2 인스턴스 보안
- EC2 인스턴스 수준의 보안 계층으로, 보안 그룹이라는 방화벽 생성 가능
- 보안 그룹 기본 구성 : 모든 인바운드 트래픽 차단, 모든 아웃바운드 트래픽 허용
그러면 모든 EC2 인스턴스가 고객 요청의 응답을 수신하지 못하게 되지 않을까 하는 의문이 생길 수 있습니다.
하지만 보안 그룹은 상태를 유지합니다.
즉, 연결이 원래 EC2 인스턴스 또는 외부에서 시작되었는지 기억하고 인바운드 규칙을 수정하지 않고 일시적으로 트래픽이 응답하도록 허용합니다.- EC2 인스턴스가 인터넷으로부터의 트래픽 수락하려면 → 인바운드 포트 오픈
- 웹 서버 있는 경우, 보안 그룹에 해당 유형 트래픽 허용하려면
- HTTP, HTTPS 요청 수락해야 허용 가능
- 위와 같이 포트 80(HTTP), 포트 443(HTTPS) 허용하는 인바운드 규칙 생성
서브넷 사용 → 네트워크의 컴퓨터 간 트래픽 분리
- 보안 그룹 → 같은 방식으로 사용 가능
- 일반적 디자인 패턴
- 리소스를 서로 다른 그룹으로 구성
- 각각 보안 그룹 생성 → 이들 간 네트워크 통신 제어
- 위 그림은 3개의 티어 정의
- 정의된 보안 그룹 규칙을 사용하여 각 티어를 격리
- 웹 티어에 대한 인터넷 트래픽 : HTTPS 통해 허용
- 웹 티어 ⇢ 애플리케이션 티어로의 트래픽 : HTTP 통해 허용
- 애플리케이션 티어 ⇢ 데이터베이스 티어로의 트래픽 : MySQL 통해 허용
- AWS 보안 그룹 사용 : 네트워크 연결❌ 동일한 격리 달성 ✅
- 기존 온프레미스 환경 : VLAN 구성 통해 리소스 그룹 격리
리소스
- 외부 사이트: AWS: 라우팅 테이블
- 외부 사이트: AWS: 라우팅 옵션 예
- 외부 사이트: AWS: 라우팅 테이블 작업
- 외부 사이트: AWS: 네트워크 ACL
- 외부 사이트: AWS: VPC의 보안 그룹
- 외부 사이트: AWS: EC2 인스턴스에서 웹 사이트를 호스팅합니다. 사용자에게 HTTP(80) 또는 HTTPS(443) 연결을 허용하려면 어떻게 해야 합니까?
모듈 3 지식 확인
#1 다음 중 Virtual Private Cloud(VPC)를 생성하는 데 필요한 정보는 무엇입니까?
✅ 상주할 AWS 리전
VPC를 생성할 때
VPC가 상주할 AWS 리전, VPC의 IP 범위, VPC 이름을 지정해야 합니다.#2 다음 중 보안 그룹의 기본 설정에 대한 올바른 설명은 무엇입니까?
✅ 모든 인바운드 트래픽을 차단하고 모든 아웃바운드 트래픽을 허용
보안 그룹의 기본 구성은
모든 인바운드 트래픽을 차단하고 모든 아웃바운드 트래픽을 허용합니다.
#3 네트워크 액세스 제어 목록(네트워크 ACL)은 EC2 인스턴스 수준에서 트래픽을 필터링합니다.✅ 거짓
정답은 거짓입니다.
네트워크 ACL은 서브넷을 보호합니다.
보안 그룹은 EC2 인스턴스 보안을 담당합니다.'Cloud > Amazon Web Services' 카테고리의 다른 글
AWS Technical Essentials; Module 5 (0) 2022.06.09 AWS Technical Essentials; Module 4 (0) 2022.06.07 AWS Technical Essentials; Module 2 (0) 2022.06.03 AWS Technical Essentials; Module 1 (0) 2022.06.03 AWS 기초 (0) 2022.05.30