본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# AWS

VPC와 Subnet을 통한 세부 필터링 실습

by iamlucia 2020. 8. 7.

AWS VPC


가상 네트워크를 생성하기 위한 서비스

  • 서버존과 DB존으로 이루어진 VPC

  • VPC라는 큰 덩어리 안의 작은 서브넷들

  • 각자 분리된 네트워크: 다른 회사의 vpc주소와 숫자가 같아도 괜찮다

  • AWS를 시작할 때
    자동으로 배치되는 단일 VPC 환경
    ⇒ 모든 인프라 자원(EC2, ELB, RDS 등)이 하나의 네트워크에 배치되는 형태
     외부에서 데이터 베이스에 접근할 수 있는 등의 보안상 결함의 가능성

  • 자신만의 독립적인 주소 대역을 사용하는 custom VPC를 사용하는 것이 적절

 

여러 부분으로 나뉜 Subnet

  • 장점: 보안! 
    특정 IP로 가기 위한 경로 지정(라우팅)
    ⇒ 트래픽의 세밀한 분류
    ⇒ 세부적인 필터링 가능

  • 단점: 장기적인 큰 비용
    초기 비용은 저렴하나 장기적 비용 큰 편 
    ⇒ 자체적으로 데이터 센터를
         운영하는 회사가 있는 이유

AWS VPC, Subnet을 통한 트래픽의 세부적인 필터링 실습 

 


1. VPC 생성 후 ELB, EC2, RDS 배치할 Subnet 생성

VPC생성 외에

인터넷으로 가기 위한 정적 경로 라우팅 및

해당 정보를 알려주는 라우터 확인 가능

 

1) 10.0.0.0/16 의 대역을 가진 VPC 생성 및  해당 네트워크 내부 4개의 서브넷 생성

RDS를 놓을 서브넷이 두개이며 서로 가용영역(Az)이 다른 이유:
멀티 AZ 구성을 통해 가용성과 내구성을 높이기 위함! 
예를 들어, 한 가용영역에 있는 데이터 베이스가 다운되더라도 
다른 가용영역에 이중화(Master와 Slave)로 구성해 놓은 데이터 베이스가 있는 경우
서비스가 끊이지 않고 계속 실행될 수 있을 것이다! 

 

Services > VPC > 단일 퍼블릭이 있는 서브넷 VPC 선택

2) 서브넷 

4개의 서브넷 생성

3) 게이트 웨이 생성 및 VPC 연결

 

생성한 인터넷게이트웨이와 vpc연결 완성

4) 라우팅 테이블 작성

 

라우팅 테이블 편집하기

 

라우팅 테이블에 생성한 게이트웨이 (Target) 설정 및 Destination에는 0.0.0.0 설정 

 

2. RDS 파라미터 그룹 및 서브넷 그룹 생성 

 

Edit > parameter > character_set_ : utf-8 값 수정

 

위에서 RDS 서브넷은 2개 생성되었고,

각 서브넷의 가용영역은 서로 다르다
(가용영역이 달라야 Multi-az 활성화 가능, 물론 무료 티어 버전에는 제한) 

하지만 이렇게 가용영역이 다른 RDS는 

RDS > Subnet Groups > Create DB Subnet Group

3. Security Group 설정 (매우중요) 

 

[ EC2 > Security Groups > Create SG ]

ELB: 외부 접속자의 연결(80, 8080 포트) 허용

WEBAp: ELB를 통합 접속(80, 8080 포트) 허용
**22번 포트 Close 주의! 아무나 원격접속하면 안되므로

RDS: WebAp를 통한 접속(3306번 포트, 관리용 내ip) 허용

 

 

 

 

4.  DB 인스턴스, EC2, Load Balancer 생성 + 관리자용 인스턴스 1개 

 

인터넷 연결을 위한 공인 IP 활성화하여 

WebAp 서브넷에 위치할 인스턴스 2개 생성

 

1) RDS DB 인스턴스 생성 

 

RDS DB 인스턴스가 위치할 VPC 지정
미리 생성한 RDS 서브넷과 가용영역 지정 
미리 생성해둔 서브넷 그룹도 지정

2) Load Balancer 생성 

 

로드 밸런서가 위치하는 서브넷 지정

 

로드밸런서가 부하를 분산해서 보낼 인스턴스 지정

❓ 로드밸런서는 각 EC2의 Health Chcek를 index.html 를 통해  하는데
아직 각 인스턴스에 해당 파일이 없는 상태이므로 ⇒ OutOfService

 

3) 관리자용 인스턴스 및 Security Group 생성 

관리자용 인스턴스에서

각 DB 및 인스턴스로 접속할 수 있도록

보안 그룹 생성 

 

Network Interfaces를 통해 10.0.2.100로 IP를 지정한 인스턴스 생성: 보안그룹 생성시 활용 

 

관리자용 인스턴스가 각 인프라에 접근할 수 있게 하는 보안 그룹

관리자용 인스턴스가
각 인프라(RDS, EC2)에 접속할 수 있게

하는 보안 그룹 생성

1. 현재 PC(포스트잇으로 가려진 부분) IP에서 들어오는 원격 접속 허용하는 rule : 정상 접속 확인용

2. 관리자용 인스턴스 IP에서 들어오는 원격 접속 허용하는 rule

3. 관리자용 인스턴스IP에서 들어오는 DB접속 허용하는 rule : TCP 3306

 

 

관리용 인스턴스 생성 후 공인 IP 접속 
웹 인스턴스 2개에 관리용 보안 그룹 추가 

 

🟢 추가 체크 사항/ 

관리용 인스턴스 SSH창에서 인스턴스 접속 

관리용 인스턴스ssh창에서 DB 접속