VPC
subnet
- VPC 내에 구성되는 가상 네트워크 서비스
- 가용 영역 단위 서비스
- subnet 유형
- public subnet
- private subnet
routing table
- 네트워크 환경에서 호스트를 검색하는 경로 정보를 가지고 있는 네트워크 요소
- VPC 생성시 자동으로 하나의 라우팅 테이블 자동 생성
- subnet수에 따라서 필요한 라우팅 테이블 생성
- public subnet을 위한 라우팅 테이블에 인터넷 통신을 위한 라우팅 추가
internet gateway
- 인터넷과 연결을 수행하는 서비스
- VPC와 연결
- 인터넷과 양방향 통신 수행
EC2
- 가상화 기술을 이용하여 AWS 에서 관리하는 물리적인 Server에 생성되는 가상 computer 서비스( 가상 머신 )
- 요금
- EC2 인스턴스 유형에 따른 사용기간 + 보조기억장치(EBS) 사용량 + 네트워크 송신량
AMI
- 즉시 사용가능한 OS 와 패키지를 가지고 있는 이미지
- 별도 OS 설치 과장없이 AMI 를 이용하여 EC2를 바로 사용할 수 있는 이미지
- 완전 가상화 형태
EC2 상태
- Pending - EC2 instance 구동 준비 상태, 요금 미청구
- Running - EC2 instance 구동 상태, 요금 청구
- Stopping - EC2 instance 구동 중지 상태, 요금 미청구, 스토리지 비용은 청구, 메뉴 - 인스턴스 정지
- Shutting down - EC2 instance 종료 준비 상태, 요금 미청구
- Terminated - EC2 instance 삭제, 요금 미청구, 메뉴 - 인스턴스 종료
private subnet 상의 EC2 instance 관리 방법
- private subnet에 위치한 AWS resource( EC2, RDS 등 )은 직접적인 인터넷 접속이 불가능
- private subnet에 위치한 AWS resource는 외부로 부터 직접 접근을 허용하지 않기 위해 구성하는 Network
- private subnet에 위치한 AWS resource가 인터넷에 접속하여 사용하기 위해서는 NAT 게이트웨이 서비스 활용
NAT 게이트웨이 서비스
- 인터넷과 연결을 수행하는 서비스
- 인터넷과 단방향 통신만 수행
- 인터넷 게이트웨이는 양방향 통신 수행
- 통상 private subnet에 위치한 AWS 리소스( EC2, RDS 등 ) 가 인터넷에 연결하여 사용할 때 활용하는 서비스
- 일반 client가 private subnet에 있는 AWS 리소스 접근은 불가능 - 단방향 통신
- NAT 게이트웨이 서비스 인스턴스는 반드시 public subnet에 위치 해야 한다.
- NAT 게이트웨이 서비스는 EIP를 사용한다.
Bastion server를 이용하여 private subnet에 있는 AWS resource 접근 및 제어
- Bastion server
- private subnet에 위치한 EC2 instance를 제어하는 목적으로 사용하는 EC2 instance
- 역할에 따라 부여된 명칭
- private subnet에 EC2 instance 생성
- subnet - private subnet에 위치
- 퍼블릭 IP 할당 - 비활성화
- NAT 게이트 웨이 생성
- EIP 생성
- EC2 메뉴 -> 탄력적 IP -> 탄력적 IP 주소 할당
- NAT 게이트웨이 인스턴스 생성
- VPC 메뉴 -> NAT 게이트웨이 -> NAT 게이트웨이 생성
- 이름
- 서브넷 - 반드시 public subnet에 위치
- 연결 유형 - 퍼블릭
- 탄력적 IP 할당
- private subnet의 라우팅 테이블에 NAT 게이트웨이에 대한 라우팅 추가
- VPC 메뉴 -> 서브넷 -> 라우팅 테이블 -> private subnet 라우팅 테이블 선택 -> 라우팅 -> 라우팅 편집 -> 라우팅 추가 -> NAT 게이트웨이 라우팅 추가
- private subnet에 위치한 EC2 instance는 NAT 게이트웨이를 통해 인터넷 접속이 가능한 상태가 되었으나 외부에서 인터넷을 통해 private subnet에 위치한 EC2 instance에 직접 접속은 불가능하다. -> NAT 게이트웨이는 단방향 통신만 가능
- public subnet에 위치한 bation server를 통해 private subnet에 위치한 EC2 instance를 제어한다.
- bastion server를 이용하여 private subnet의 EC2 instance에 접속하기 위해서는 private subnet의 EC2 instance에 대한 keypair 파일이 bastion server에 위치 해야 한다.
AWS 네트워크 보안
보안그룹( Security Group )
- EC2 instance 단위로 설정
- inbound 규칙과 outbound 규칙으로 구성
- 허용( Allow ) 규칙만 생성 가능
- 기본적으로 모든 보안 그룹의 outbound 규칙은 모든 트래픽을 허용하고, inbound 규칙은 모드 거부하는것으로 설정
- 각 EC2 instance는 서로 다른 보안 그룹 할당 가능
- 설정된 EC2 instance는 연결되어 있는 보안 그룹의 모든 룰을 적용 받는다.
- 보안 그룹은 상태를 저장하는 성격( stateful )을 갖는다.
- inbound를 통과하는 패킷은 outbound 규칙을 적용받지 않는다.
- 상태를 저장하여 한번 outbound를 통과하는 패킷은 inbound 규칙을 적용 받지 않는다.
네트워크 ACL( NACL )
- inbound 규칙과 outbound 규칙으로 나뉜다.
- NACL은 여러 subnet에 적용 가능
- 하지만 subnet은 한 개의 NACL만 연결 가능
- 허용( Allow ) 규칙뿐만 아니라 거부( Deny ) 규칙 생성 가능
- 규칙 번호는 숫자가 매겨져 가장 작은 숫자값을 지니는 규칙이 우선적으로 적용
- 규칙 번호순으로 적용( 낮은 번호에서 높은 번호 순으로 적용 )
- 같은 유형에 대하여 규칙을 구성한 경우 낮은 규칙 번호의 규칙이 적용되면 높은 규칙 번호의 동일 규칙에 대해서는 적용되지 않는다.
- 규칙 번호는 연속된 번호 보다는 일정 간격의 번호를 설정해야 차후 필요시 규칙 추가가 용의하다.
- NACL 규칙 목록은 inbound, outbound 최대 20개 까지 지정 가능
- NACL은 상태를 저장하지 않은 성격( stateless ) 을 갖는다.
- 보안그룹과 네트워크 ACL( NACL )을 조합하여 필요한 보안 관리를 수행할 수 있다.
통상은 보안 그룹을 통해 관리
용어 정리
- stateful - 상태를 저장
- stateless - 상태를 저장하지 않음
스토리지 서비스 - EBS
블록 형태 데이터 저장 스토리지 서비스 - EBS( Elastic Block Storage )
일반적인 데이터 저장
외장 HDD/SSD 성격
EC2 instance와 연결하여 사용
파일 형태 데이터 저장 스토리지 서비스 - EFS( Elastic File Storage )
네트워크를 이용한 파일 저장 및 공유
NAS 성격
데이터 공유
통상은 EC2 instance와 연결하여 사용 - NFS( Network File System ) 사용
객체 형태 데이터 저장 스토리지 서비스 - S3( Simple Storage Service )
객체( object ) 단위로 저장
객체 - 유/무형의 모든 형식의 사물
Serverless 방식 - 별도의 EC2 instance와 연결하지 않더라도 사용 가능
AWS의 다른 서비스와 데이터 공유를 목적으로 할 때 많이 사용
네트워크 서비스 - ELB
Scale out
- 동시 접속 client 수에 따른 서버 분산 처리 - 서버 부하 분산
- EC2 instance를 복제하여 여러 개의 EC2 instance를 생성하는 처리 하는 동작
- client 동시 접속 증가에 따라 Server 처리 능력을 높이기 위하여 같은 동작을 하는 Server를 여러 개 생성하여 client 동시 접속에 대한 처리 효율을 높이는 방법
- AWS Scale out을 위한 서비스
- ELB( Elastic Load Balancing )
동시 접속 client를 여러 서버로 분산해서 처리 할 수 있도록 관리 하는 서비스
서버 분배
- Auto Scaling
서버 처리량에 따라 서버를 자동 증설 및 감소 시키는 서비스
ELB
- Elastic Load Balancing
- 트래픽 분산
- 자동 확장( Auto Scaling )
- EC2 instance 상태를 자동 감지하여 오류가 있는 시스템은 제외
- 사용자 세션을 특정 instance에 고정 가능
- SSL 암호화 지원
- SSL의 경유지로 ELB를 사용하는 경우에 SSL 처리에 따른 부하를 ELB가 수용
- IPv4, IPv6 지원
- Amazon CloudWatch를 통한 모니터링
- 사용한 시간과 통과한 트래픽에 따라 종량제 과금
- OSI 7 계층 네트워크 프로토콜에서 L4( Transport ) 계측과 L7( Application ) 계층에 대한 서버 부하 분산 기능 제공
- L4( Transport ) 계층 - TCP, UDP에 대한 처리 계층 - Network Load Balancer
- L7( Application ) 계층 - HTTP, HTTPS 등에 대한 처리 계층 - Application Load Balancer
컴퓨팅 서비스 - Auto Scaling
Auto Scaling
- Scale out 적용시 사용하는 기능
- 다중 서버를 운영할 때 서버의 일정한 부하 임계치를 넘었을 때 자동으로 서버를 증가 시키거나 부하 임계치가 해소 되었을 때 다시 원래의 서버수로 자동 변화를 수행하는 서비스
Reference