Programming

[AWS, Certified Developer Associate] EC2 - 정의, 인스턴스 유형, 보안그룹

EC2 (Elastic Compute Cloud)

  • IaaS (Infrastructure as a Service)
  • 가상머신 임대 (EC2 인스턴스)
    • OS 설정
    • CPU 성능 설정
    • RAM 설정
    • 스토리지 설정
      • 네트워크 연결 스토리지 : EBS, EFS
      • 하드웨어 연결 스토리지 : EC2 Instance Store
    • 네트워크 유형 설정
      • 네트워크 카드 속도, Public IP
    • 방화벽 규칙 설정
      • 보안그룹
    • 부트스트랩 스크립트를 이용해 실행 시 동작 설정
      • EC2 User Data
  • 가상 드라이브에 데이터 저장 (EBS)
  • 부하 분산 (ELB)
  • 자동 서비스 확장 = Auto Scaling (ASG)

 

 

EC2 인스턴스 유형

  • m5.2xlarge
    • m : 인스턴스 클래스 (범용목적, 네트워크, 스토리지 etc)
    • 5 : 세대
    • 2xlarge : 인스턴스 클래스의 크기
  • General Purpose (범용 목적)
    • 웹서버, 코드 리포지토리 등 다양한 작업에 적합
    • 컴퓨팅, 메모리, 네트워크 균형
    • 인스턴스 클래스 : T, M, A
  • Compute Optimized (컴퓨팅 최적화)
    • 컴퓨팅 특화 작업에 적합
    • 데이터 일괄처리 (배치)
    • 미디어 트랜스코딩
    • 고성능 웹서버
    • 고성능 컴퓨팅 (HPC 작업)
    • 머신러닝 & 전용 게임 서버
    • 인스턴스 클래스 : C
  • Memory Optimized (메모리 최적화)
    • 메모리에서 대규모 데이터셋 처리 작업에 적합
    • 인메모리 DB의 고성능 RDB / NoSQL 작업
    • 분산 웹 스케일 캐시 저장소 (ex. ElastiCache)
    • BI(business Intelligence)에 최적화된 인메모리 DB
      • BI : 데이터 수집, 분석, 가시화
    • 대규모 비정형 데이터의 실시간 처리 실행 애플리케이션
    • 인스턴스 클래스 : R, X, Z
  • Storage Optimized (저장공간 최적화)
    • 로컬 스토리지에서 대규모 데이터셋 처리 작업에 적합
    • 고주파 온라인 트랜잭션 처리 (OLTP, 온라인 트랜잭션 처리) 시스템
      • 온라인 뱅킹, 쇼핑, 주문 입력 또는 텍스트 메시지 전송 등 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 유형
    • RDB, NoSQL DB
    • 인메묄 데이터베이스 캐싱 (ex. Redis)
    • 데이터 웨어하우징 애플리케이션
    • 분산 파일 시스템
    • 인스턴스 클래스 : I, D, H

 

EC2 보안그룹

  • AWS 내 네트워크 보안에 대한 기본적인 기능
    • 포트 액세스, 인증된 IP 범위 (IPv4, IPv6), 인/아웃바운드 트래픽 제어,
  • EC2 인스턴스의 인바운드, 아웃바운드 트래픽 제어
    • 인바운드 : 외부 -> EC2 트래픽
    • 아웃바운드 : EC2 -> 외부 트래픽
  • EC2 인스턴스의 방화벽 역할
  • 인/아웃 바운드 허용 규칙만 사용
  • IP 또는 다른 보안 그룹을 참조해 설정 
  • 보안그룹은 여러 인스턴스에 연결 가능
  • 하나의 인스턴스는 여러 보안그룹을 가질 수 있음
  • Region, 특정 VPC 조합에 고정됨 (새 리전, VPC에 대해서는 새 보안그룹 만들어야됨)
  • 보안그룹은 EC2 외부에 존재
    • 트래픽이 차단되면 EC2에서는 확인 불가능
  • SSH 전용으로 별도 보안그룹을 관리하는 것이 좋음
  • 애플리케이션이 timeout으로 액세스 불가능하다면 보안그룹 이슈일 확률 높음
  • connection refused는 보안그룹을 통과했지만 애플리케이션 오류 or 다른 오류로 인해 연결 실패
  • 기본적으로 모든 인바운드 차단 / 모든 아웃바운드 허용
  • 포트번호
    • 22 : SSH (Secure Shell), 리눅스에서 EC2 인스턴스 로그인
    • 21 : FTP (File Transfer Protocol), 파일 공유를 위한 파일 업로드
    • 22 : SFTP (Secure File Transfer Protocol), SSH 적용 파일 업로드
    • 80 : HTTP, 보안 적용되지 않은 웹사이트
    • 443 : HTTPS, 보안 적용 웹사이트
    • 3389 : RDP (Remote Desktop Protocol), 윈도우 EC2 인스턴스 로그인

Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!