AWS 용어정리 Part01

Elastic Beanstalk

  • 애플리케이션을 실행하는 인프라에 대한 염려 없이 AWS 클라우드 에서 애플리케이션을 신속하게 배포 및 관리할 수 있음
  • 관리의 복잡성 줄어듬
  • 어플리케이션 업로드만 하면 Elastic Beanstak 에서 다음을 자동 처리
    • 용량 프로비저닝
    • 로드 밸런싱
    • 조정
    • 애플리케이션 상태 모니터링
  • Go, Java, .NET, Node.js, PHP, Python, Ruby 에서 개발된 어플리케이션 지원
  • Elastic Beanstalk 가 선택된 지원 가능 플랫폼 버젼을 구축
  • Amazon EC2 인스턴스 등의 AWS 리소스를 하나 이상 프로비저닝해서 애플리케이션 실행
  • 사용 요금 없음 (무료)
  • 사용자가 사양을 정하고 설정을 변경할 수 있는 장점
  • 복잡한 설정 없이, 자동확장, 분산처리 기능 수행 가능
  • Cloud Formation 으로 구성되어 있어 Beanstak 은 Cloud Formation 하위 구성이다.

온프레미스와 AWS 상호 연동하는 방법

AWS Site-to-Site VPN:

  • VPC와 원격 네트워크 사이에 IPSec VPN 연결을 생성할 수 있다.
  • AWS측 Site-to-Site VPN 연결에서 가상 프라이빗 게이트웨이(VPG), 전송 게이트웨이(TG) 를 이용
  • 양측에 VPN 엔드포인트(터널)를 제공
  • Site-toSite VPN 연결의 원격 측에서 고객 게이트웨이 디바이스를 구성한다.

AWS 클라이언트 VPN:

  • AWS 클라이언트 VPN 은 AWS 리소스 또는 온프레미스 네트워크에 안전하게 액세스 할 수 있도록 함
  • 관리형 클라이언트 기반 VPN 서비스
  • 사용자가 연결할 수 있는 엔드 포인트 구성
  • 보안 TLS VPN 세션을 설정 할 수 있음
  • 클라이언트가 OpenVPN 기반 VPN 클라이언트를 사용하여 어느 위치에서든 온프레미스 또는 AWS의 리소스에 엑세스 가능

AWS VPN Cloud HUB:

  • 원격 네트워크가 두 개 이상인 경우 (여러 지사 사무실) 이용
  • 가상 프라이빗 게이트웨이를 통해 AWS Site-to-Site VPN 연결을 여러개 만들고 이들 네트워크 사이의 통신 활성화

타사 소프트웨어 VPN 어플라이언스:

  • 타사 소프트웨어 VPN 어플라이언스를 실행 중인 VPC에서 Amazon EC2 인스턴스를 사용하여 원격 네트워크에 대한 VPN 연결 생성 가능
  • AWS가 타사 소프트웨어 VPN 어플라이언스 관리는 하지 않음
  • 파트너, 오픈소스 커뮤니티에서 다양한 제품 중 선택 가능

AWS Direct Connect:

  • 원격 네트워크에서 VPC까지 전용 프라이빗 연결을 생성
  • AWS Site-to-Site VPN과 결합하여 IPSec 암호화 연결 생성 가능

데이터 보호

  • 전송 및 저장후 데이터를 보호하는 것
  • SSL/TLS (Secure Socket Layer/Transfort Layer Security) 를 사용해서 보호
  • 클라이언트측 암호화 사용하여 보호
    • 클라이언트 측 데이터 암호화 한 후 서버에 업로드, 암호화 프로세스/암호화 키 관련 도구 관리
  • 서버측 암호화 사용하여 보호
    • 데이터 센터의 디스크에 저장하기전 객체를 암호화, 다운로드 할 때 객체를 복호화
  • 암호화 옵션
    • SSE-S3
      • S3 관리형 키를 사용한 서버측 암호화. 각 객체는 고유한 키로 암호화 함
      • 추가 보안 조치로 주기적으로 바뀌는 마스터 키를 사용하여 키 자체를 암호화
      • 가장 강력한 암호화 중 하나인 256비트 고급 암호화 표준 (AES-256) 이용
    • SSE-C
      • 고객 제공 키를 사용한 서버측 암호화
      • 디스크에 쓸때 암호화, 읽을때 복호화 수행
    • CSE (클라이언트측 암호화)
      • S3로 보내기 전에 데이터를 암호화 하는 것
    • 클라이언트 측 암호화를 활성화 하기 위한 옵션
      • AWS Key Management Service(AWS KMS) 에 저장된 Customer Master Key(CMK) 를 사용
        • 객체 업로드시 CMK ID를 사용하여 클라이언트가 먼저 AWS KMS 로 객체 데이터를 암화화 하는데 사용할 수 있는 CMK 를 요청
        • AWS KMS 는 임의로 생성되 키의 2가지 버젼 반환
            1. 클라이언트가 객체 데이터를 암호화 하는데 사용하는 일반 텍스트 버젼의 데이터 키
            1. 클라이언트가 S3에 객체 메타 데이터로 업로드 하는 동안 데이터 키의 암호 BLOB
      • 애플리케이션에 저장된 마스터 키 사용
        • 클라이언트측 마스터 키와 암호화 되지 않은 데이터는 AWS로 전송 안됨
        • 암호화 키를 안전하게 괸라하는 것이 중요
        • 키가 없으면 복호화 불가능

AWS Lambda

  • 서버를 프로비저닝 하거나, 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스
  • 필요시에만 코드 실행
  • 자동확장 (하루 몇개 ~ 초당 수천개)
  • 사용된 시간에 대해서만 요금 지불
  • 고 가용성 컴퓨팅 인프라에서 코드 실행, 서버, 운영체주 유지관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안패치 배포, 코드 모니터링 및 로깅 등 모든 리소스 관리 수행
  • S3버킷, DynamoDB 테이블 등의 데이터 변경과 같은 이벤트에 대한 응답으로 코드 실행가능
  • API G/W 요청시 요청에 대한 응답 코드로 실행 가능,
  • SDK 에 의해서 호출 가능 (아래 도구들 이용 가능)
    • Lambda 콘솔
    • Lambda API
    • AWS SDK
    • AWS CLI
    • AWS Tool kits
  • AWS Lambda 에서 지원되는 언어로 어플리케이션 코드 작성
  • AWS Lambda 자체에서 메모리, CPU, Netowrk 및 기타 리소스의 관리 수행
    • 이로인해 런타임 로그인 및 인스턴스에 대한 컴퓨팅 작업을 사용자가 할 수 없음
  • 함수 호출시 동기/비동기 선택 가능
    • 동기: 이벤트로 함수 호출후 응답이 올때까지 대기
    • 비동기: 이벤트 대기열에 저장, 즉시 응답 반환