My __ 노트

AWS 클라우드 VPC 리소스들에 대한 개념 본문

클라우드/AWS(클라우드)

AWS 클라우드 VPC 리소스들에 대한 개념

블루빔 2020. 12. 9. 07:00

 VPC  [ Virtual Private Cloud ]: 
▶개념: 사용자가 정의한 가상 네트워크 환경. 리전의 모든 가용 영역에 적용된다.
▶설정:
1) CIDR 블록 설정:
    권장: 넷마스크 범위 /16 ;  RFC1918   (예: 192.168.0.0/16)
    이유: 연결할 수 있는 다른 네트워크와 겹치는 범위를 피해야 함 

 

2) 퍼블릭 IP 주소가 있는 인스턴스가 DNS 호스트 이름을 가질 수 있도록 하는 옵션  

 

 

 

 서브넷  :
▶개념: 단일 가용영역에 연결된 VPC하위 집합
   - 가용성을 위해 복수개의 가용 영역에 서브넷을 생성하는 것을 권장

     (한 가용영역에서 장애 발생 시 다른 가용 영역과 격리되어 장애로부터 애플리케이션을 보호할 수 있다.)
   
▶설정:
1) CIDR 블록 설정:
    권장: 넷마스크 범위 최소 /24. (VPC와 같거나 작을 수 있다.)
   - 예) 넷마스크 /24일 경우 사용가능한 IP개수 251
         0 : 네트워크 주소
         1 : AWS에서 VPC 라우터용으로 예약 
         2 : AWS에서 예약 
         3 : AWS에서 예약 
         255 : 브로드캐스트 주소   

 

Public 서브넷
▶개념: 인터넷으로 향하는 트래픽이 인터넷 게이트웨이을 통해 아웃바운드된다.
설정:
1) Amazon의 퍼블릭 IP 주소 풀에서 퍼블릭 IP 주소를 자동 할당 받음 
         
2) 인터넷 게이트웨이를 통해 아웃바운드할 수 있도록 라우팅 테이블을 업데이트한다.


    - 퍼블릭 IP 주소는 인스턴스가 중지&종료되면 더 이상 사용할 수 게 된다.    
    - 영구 퍼블릭 IP 주소가 필요한 경우 EIP를 사용할 수 있다. 

 

Private 서브넷:
▶개념: 인터넷으로 향하는 트래픽이 아웃바운드되지 못하며 필요시 nat 게이트웨/nat 인스턴스를 통해 아웃바운드된다.
▶설정:
1) 퍼블릭 IP 주소
으며 인터넷 연결을 하기 위해서는 EIP를 할당 받음

    - EIP : Amazon의 IPv4 주소 풀, AWS 계정으로 가져오는 퍼블릭 IPv4 주소, 
             등에서 Elastic IP를 할당받을 수 있다. 

 

2) NAT 게이트웨이를 통해 아웃바운드할 수 있도록 라우팅 테이블을 업데이트한다.

▶장점: Private 서브넷과 연결된 인스턴스들은 인터넷 연결 시 NAT 게이트웨이를 사용하며 퍼블릭 IP가 아닌 EIP로 외부와 통신을 하기 때문에 외부에서 직접적으로 해당 인스턴스에 접근할 수 없다. 그러므로 보안적으로 더 안전하다.  

 

 

Public subnet과 Private subnet을 나누는 이유: 
Public subnet과 연결된 EC2 인스턴스들은 라우팅 테이블에 인터넷 게이트웨이를 연결하여 퍼블릭 IP 주소로 인터넷 연결을 한다.
Private subnet과 연결된 EC2 인스턴스들은 인터넷 연결이 필요시에만 라우팅 테이블에 NAT 게이트웨이를 연결하여 EIP로 인터넷 연결을 한다. 그러므로 외부에서는 Private subnet안의 IP 주소들을 알 수 없게 되므로 보안에 더 유리해 진다. 

 

 

 

 라우팅 테이블  
▶개념:
서브넷 or 게이트웨이의 네트워크 트래픽이 전송되는 경로를 결정하는 라우팅의 규칙 집합
동일 서브넷 사이에는 통신이 가능하지만 다른 서브넷 간의 통신을 위해서는 라우팅 테이블을 만들어야 함.

▶설정:
1) 생성할 라우팅 테이블의 VPC 선택
    - Main Route Table은 VPC 생성 시 자동으로 생성된다.
      ( VPC 내 모든 인스턴스들끼리 통신이 될 수 있도록 함 )  

 

2) 서브넷을 특정 라우팅 테이블과 연결 
    - 서브넷을 특정 라이팅 테이블과 명시적으로 연결할 수 있다.

 


   - 연결하지 않으면 서브넷은 기본 라우팅 테이블과 암시적으로 연결된다. 

 

         
3) 라우팅 할 목적지와 대상을 지정 
    - VPC로 향하지 않는 모든 패킷들은 인터넷 게이트웨이로 향하도록 설정 

 

 

 

 인터넷 게이트웨이 
▶개념: 인터넷 간의 통신을 활성화해주는 서비스

▶설정:
1) 인터넷 게이트웨이 생성 
2) VPC와 연결 
3) 0.0.0.0/0으로 향하는 트래픽은 인터넷 게이트웨이로 향하도록 Public 서브넷 라우팅 테이블 편집

 

 

 NAT 게이트웨이  :
▶개념: (네트워크 주소 변환) 사용자는 인터넷을 사용할 수 있지만 인터넷에서 해당 사용자 PC에 연결을 시작 못한다.

▶설정:
1) Amazon IPv4 주소 풀에서 1개의 Elastic IP를 할당 받음
2) NAT 게이트웨이 생성
3) 0.0.0.0/0으로 향하는 트래픽이 NAT 게이트웨이를 향하도록 private 서브넷 라우팅 테이블을 편집

 

 

 

 보안 그룹  : default 모두 거부
▶개념: 인스턴스 단위로 트래픽을 관리하는 서비스 
▶장점: 원하는 포트에서 들어오는 트래픽만 허용하고 나머지는 모두 불허하는 설정을 할 수 있음 
    1) 웹서버의 보안 그룹을 anywhere로 하고 HTTP 프로토콜 설정

     2) DB서버의 보안 그룹을 웹서버 통해 들어오는 트래픽만 허용하도록 설정 

 statefull 방식  - 인바운드 규칙만 설정하면 된다.
서버로 들어올 때 connection을 기억해서 나갈때는 그냥 허용해줌

 

 

 

 

 네트워크 ACL  : default 모두 허용
▶개념: 서브넷 단위로 트래픽을 관리하는 서비스

 stateless 방식  - 인바운드, 아웃바운드 모두 명시적으로 허용해야만 allow 됨. 번호순으로 우선순위가 높다.  
서버로 들어올때 connection을 기억하지 않아서 나갈 때에도 포트를 지정해 주어야 함. 

 WAF (웹 애플리케이션 방화벽) : 공격자를 탐지하고 접근을 차단하는 보안 시스템

 

 

 

 

 VPC peering  :
▶개념: 비공개적으로 두 VPC 간에 트래픽을 라우팅 할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결
         (두 데이터 센터를 전용 연결선으로 연결하여 private 한 라인을 사용한 것과 같은 작용을 함)

▶사용 예 : 인증/ 디렉터리, 모니터링, 로깅, 원격 관리, 스캐닝  
              [ 여러 개의 게임 서비스들이 하나의 공통된 인증서버를 갖고 싶을 때 사용함 ] 

▶피어링 할 수 있는 조건:
   - 동일 리전 겹치지 않는 CIDR 블록이 있는 VPC 간 
   - 서로 다른 리전 겹치지 않는 CIDR 블록이 있는 VPC 간 
   - 서로 다른 AWS 계정에서 겹치지 않는 CIDR 블록이 있는 VPC 간 

   - 전이적 피어링된다

▶설정:
1) 피어링 연결 생성 
    - 요청자 VPC에서 수락자 VPC를 입력
    - 수락자 VPC에서 피어링 요청을 수락 

2) 각 VPC의 라우팅 테이블을 업데이트하여 피어링 경로를 만들어 줌