Other Services

CloudFormation

  • 어떤 리소스들(거의 대부분 지원)에 대해 AWS 인프라를 개괄적으로(declarative) 설명하는 선언적인 방법
  • 예를 들어, CloudFormation 템플릿에서는 다음과 같은 것을 정의할 수 있음
    • Security group
    • Two EC2 instances using this security group
    • S3 Bucket
    • Load Balancer in front of these machines
  • 그러면 CloudFormation에서는 이들을 올바른 순서대로, 내가 정의한 설정과 똑같이 리소스들을 생성해줌

Benefits of AWS CloudFormation

  • 코드로 인프라를 작성할 수 있음
    • 어떤 리소스도 수동으로 생성할 필요 없음 -> 관리하기 편함
    • 인프라에 대한 변경사항이 코드를 통해 리뷰될 수 있음
  • 비용
    • 스택에 포함된 각각의 리소스들은 별도의 식별자로 태그되며, 각 스택의 비용이 어떻게 되는지 쉽게 파악할 수 있음
    • CloudFormation 템플릿으로 리소스들의 비용을 추정할 수 있음
    • Savings Strategy:
      • ex. Dev 환경에서, 5PM에 템플릿을 자동 삭제 / 8AM에 재생성
  • 생산성
    • 클라우드에서 즉시 사용 가능한 인프라를 생성 / 삭제 가능
    • 템플릿에 대한 다이어그램 자동 생성
    • 선언적 프로그래밍 (순서 / 오케스트레이션을 파악할 필요 없음)
  • Don't re-invent the wheel
    • 웹에 존재하는 템플릿을 활용
    • document를 활용
  • (거의) 모든 AWS 리소스들을 지원:
    • (적어도 여기에 정리했던) 모든 리소스들을 지원함
    • 지원되지 않는 리소스들을 위해서 "커스텀 리소스"를 사용할 수 있음

CloudFormation Stack Designer

  • 예시: WordPress CloudFormation Stack
  • 모든 리소스들을 볼 수 있음
  • 각 컴포넌트 간 관계를 파악할 수 있음

Amazon SES (Simple Email Service)

  • 규모에 따라 이메일을 안전하게, 글로벌로 보낼 수 있는 완전 관리형 서비스
  • 인바운드/아웃바운드 이메일 허용
  • 평판 대시보드, 성능 인사이트, 안티-스팸 피드백
  • 이메일 전송, 이메일 바운스, 피드백 루프 결과, 이메일 확인 여부 등의 통계 제공
  • DKIM(DomainKeys Identified Mail)과 SPF(Sender Policy Framework) 지원
  • Flexible IP 배포: shared / dedicated / customer-owned IP
  • AWS 콘솔/API 또는 SMTP를 이용해 애플리케이션에서 메일을 전송할 수 있음
  • 사례: 트랜잭션, 마케팅 및 대량 이메일 커뮤니케이션

Amazon Pinpoint

  • 확장 가능한(scalable) 2-way (아웃바운드/인바운드) 마케팅 커뮤니케이션 서비스
  • 이메일, SMS, 푸시, 보이스, 인앱 마케팅 지원
  • 고객들에게 올바른 컨텐츠를 제공하기 위해 메시지를 세분화 및 개인화할 수 있음
  • 응답 받기 가능
  • 매일 최대 10억(billion)개의 메시지까지 스케일링 가능
  • 사례: 마케팅/대량/거래 SMS 메시지 전송을 통한 캠페인 진행
  • Amazon SNS나 Amazon SES와의 차이점
    • SNS & SES에서는 각 메시지의 수신자, 컨텐츠, 전달 스케줄을 관리
    • Amazon Pinpoint에서는 메시지 템플릿, 전달 스케줄, 고도로 타겟팅된(highly-targeted) 세그먼트 및 전체 캠페인을 생성할 수 있음

System Manager - SSM Session Manager

  • 내 EC2와 온-프레미스 서버에 대한 Secure Shell 연결을 할 수 있도록 해줌

  • SSH 액세스나 Bastion Host, SSH Key 필요 없음

  • 22번 포트 필요 없음 (높은 보안)

  • Linux, macOS, Windows 지원

  • S3나 CloudWatch Logs에 세션 로그 데이터를 전송할 수 있음

System Manager - Run Command

  • document(= script)를 실행하거나 그냥 커맨드를 실행할 수 있음
  • 여러 인스턴스 간에 커맨드를 실행 (리소스 그룹 사용 시)
  • SSH 필요 없음
  • AWS 콘솔을 통해 커맨드 결과를 볼 수 있고, S3 버킷 또는 CloudWatch Log로 전송
  • 커맨드의 상태(실행 중, 완료, 실패)에 대해 SNS에 알림으로 보낼 수 있음
  • IAM & CloudTrail과 호환됨
  • EventBridge를 통해서도 실행될 수 있음

System Manager - Patch Manager

  • 관리 중인 인스턴스에 대한 패치(patch) 과정을 자동화
    • OS 업데이트, 애플리케이션 업데이트, 보안 업데이트 등
  • EC2 인스턴스 및 온-프레미스 서버 지원
  • Linux, macOS, Windows 지원
  • 온-디맨드로 패치하거나, Maintenance Windows를 통해 패치를 스케줄링
  • 인스턴스 스캔하여 패치 compliance 리포트를 생성 (missing patches)

System Manager - Maintenance Windows

  • 내 인스턴스에 액션을 처리할 시점에 대한 스케줄을 정의
    • ex. OS 패칭, 드라이버 업데이트, 소프트웨어 설치 등..
  • Maintenance Window는 다음을 포함
    • Schedule
    • Duration
    • Set of registered instances
    • Set of registered tasks

System Manager - Automation

  • EC2 인스턴스와 다른 AWS 리소스들의 일반적인 유지보수와 배포 작업을 단순화시켜줌
    • ex. 인스턴스 재시작, AMI 생성, EBS 스냅샷
  • Automation Runbook - 내 EC2 인스턴스나 AWS 리소스에 수행될 액션을 정의하는 SSM Document (pre-defined 또는 custom)
  • 다음과 같은 것들을 통해 트리거될 수 있음
    • AWS 콘솔/CLI/SDK로 수동 트리거
    • Amazon EventBridge
    • Maintenance Window로 스케줄링
    • AWS Config (Rule을 수정하고자 할 때)

Cost Explorer

  • AWS 비용과 사용 시간에 대한 시각화 / 이해 / 관리
  • 비용 및 사용 데이터에 대해 분석하는 커스텀 리포트를 생성할 수 있음
  • 고수준(high-level)에서 데이터를 분석: 전체 계정에서의 전체 비용 및 사용
  • 월/시간/리소스 단위로 세분화
  • 최적의 Savings Plan 선택 (요금 청구 가격을 더 낮추고자 할 때)
  • 이전 사용량을 기준으로 최대 12개월까지의 사용량 예측

Amazon Elastic Transcoder

  • Elastic Transcoder는 S3에 저장된 미디어 파일들을 소비자들의 재생 디바이스(ex. 휴대폰)에서 요구하는 포맷으로 변환해줌
  • 이점:
    • 사용하기 쉬움
    • Highly scalable - 많은 양의 미디어 파일 & 큰 사이즈의 파일을 다룰 수 있음
    • 비용 효율적 - duration 기반의 비용 모델
    • 완전 관리형 & 안전함, 쓴만큼 비용 지불 (온-디맨드)

AWS Batch

  • 규모에 관계 없는 완전 관리형 배치 프로세싱
  • AWS에서 100,000개까지의 batch job들을 효율적으로 실행
  • batch job이란?
    • 시작과 끝이 있는 작업 (continous와 반대됨)
  • Batch는 EC2 인스턴스 또는 Spot Instances를 동적으로 실행함
  • AWS Batch는 적절한 양의 컴퓨팅과 메모리를 프로비저닝함
  • batch job을 제출 또는 스케줄링하기만 하면, 나머지는 AWS Batch가 알아서 처리함
  • Batch job은 Docker images로 정의되고, ECS에서 실행
  • 비용 최적화 & 인프라에 신경을 덜 써도 되도록 도와줌

Batch vs Lambda

  • Lambda:
    • 시간 제한 있음
    • 제한된 런타임
    • 제한된 임시 디스크 공간
    • 서버리스
  • Batch:
    • 시간 제한 없음
    • Docker image로 패키징되기만 하면 어떤 런타임이든 가능
    • 디스크 공간의 경우 EBS / instance store에 의존
    • EC2에 의존 (AWS에 의해 관리될 수 있음)

Amazon AppFlow

  • Software-as-a-Service (SaaS) 애플리케이션과 AWS 사이의 안전한 데이터 전송을 할 수 있게 해주는 완전 관리형 통합 서비스
  • Sources: Salesforce, SAP, Zendesk, Slack, ServiceNow
  • Destinations: Amazon S3, Amazon Redshift와 같은 AWS 서비스 또는 SnowFlak, Salesforce 같은 non-AWS 서비스
  • Frequency:
    • 스케줄을 만들거나
    • 이벤트에 대한 응답으로 처리되거나
    • 온-디맨드로 직접 수행
  • Data transformation: 필터링 또는 validation과 같은 기능
  • public 인터넷 상으로 암호화 또는 AWS PrivateLink를 통해 private하게 암호화
  • integration 작성에 시간을 소요하지 않고, 바로 API를 활용