article thumbnail image
Published 2023. 6. 19. 20:59

대규모 인프라 배포 및 관리

CloudFormation

  • 리소스에 대해 인프라의 윤곽을 구분짓는 선언적 방법(이렇게 선언하면 만들어진다)
    • 보안그룹이 필요
    • 보안그룹을 사용할 ec2 인스턴스가 2개 필요
    • s3 버킷
    • 모든 머신에 로드밸런서가 필요
  • 이러한 것들을 자동으로 생성하며 사용자가 정한 순서와 구성 그대로 따른다

 

CloudFormation의 장점

Infrastructure as code

  • 인프라가 코드라는 점, 수동으로 리소스를 만들 필요가 없다
  • 클라우드의 작동방식을 변경할 때마다 코드 리뷰를 통해 검토한다

 

Cost

  • 스택내의 각 리소스는 만들어진 다른 리소스들과 비슷하게 태그된다
  • 리소스 비용을 쉽게 예측 가능
  • 절약 전략을 세울 수도 있다

 

Productivity

  • 그때그때 파괴하고 다시 만들 수 있다
  • 템플릿을 위한 다이어그램도 만들 수 있다
  • 선언적 프로그래밍도 가능 (순서를 고민할 필요가 없으며, 어떻게 순서대로 동작시켜야하는지 알고있다)
  • 하나하나 다 만들지 않고도 웹 상의 존재하는 기존 템플릿을 통해 만들 수도 있다
  • 지원되지 않는 리소스에 대해서는 커스텀 리소스로 사용할 수 있다

 

CloudFormation Stack Designer

  • WordPress CloudFormation Stack
    • 다이어그램도 만들어주고 구성 요소들 사이의 관계를 만들어준다
  • 모든 리소스의 관계를 볼 수 있다
  • 코드형 인프라가 있을 때 사용
    • 아키텍쳐를 다른 환경, 다른 리전, 다른 AWS 계정에서 반복해야할 때 사용

 

CloudFormation 실습

  • 스택(AWS 리소스를 모은 틀)을 만든다음 스택 템플릿을 제공해야한다
---
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: us-east-1a
      ImageId: ami-a4c7edb2
      InstanceType: t2.micro

 

Amazon SES(Simple Email Service)

  • 완전 관리형 서비스로 이메일을 전 세계 대규모로 안전하게 보내는 방법
  • SES APIs 혹은 SMTP 방식으로 전송해야한다
  • 아웃바운드/인바운드 이메일도 허용하기 때문에 답장을 주고받을 수 있다
  • 이메일을 열었는지, 스팸 방지 피드백을 제공하기도 한다
  • 이메일 통계도 제공하며 최신 보안 기준인 DKIM과 SPF도 제공한다.
  • 유연한 배포도 가능하며 특정 IP주소에 이메일을 보낼 수 있다

 

Amazon Pinpoint

  • 확장 가능한 양방향 마케팅 커뮤니케이션 서비스
  • Pinpoint를 통해 이메일, SMS, 푸시 알림, 음성, 인앱 메시지를 보낼 수 있다
  • 메시지 세분화, 개인화가 가능하며 그룹이나 세그먼트를 만들 수 있다.
  • 응답하거나 전송이 성공하면 스트림 이벤트로 구분도 가능하다
  • SES와 SNS, Pinpoint의 차이
    • SNS or SES는 각 메시지의 대상, 내용, 전달 일정을 관리해야한다
    • Pinpoint는 메시지 템플릿, 전달 일정을 만들지 않고도 설정이 가능하다
  • SAS 및 SES의 차세대 제품이라고 생각하면 된다

 

System Manager - SSM Session Manager

  • ec2 인스턴스와 온프레미스 서버에서 보안 셸을 시작할 수 있다
  • ssh 엑세스나 bastion hosts, ssh 키가 필요 없다
    • 포트 22는 닫힌다 → 보안이 더 낫다
  • 세션 관리자를 통해 ec2 인스턴스에 엑세스가 가능하다
  • 리눅스, Mac, Windows 지원
  • 세션 로그 데이터를 s3 혹은 CloudWatch Logs로 보낼 수 있다

 

System Manager에 있는 다른 서비스들

Run Command

  • 명령을 실행시키는 것 → 문서를 실행하는데 사용된다(스크립트 또는 명령 한개)
    • 이런 명령들은 리소스 그룹(시스템 관리자 서비스에 등록된 ec2 인스턴스나 온프레미스 서버)을 사용하는 여러 인스턴스에서 실행
    • 명령을 실행할 때 SSH가 필요 없으며, 단순히 에이전트를 통해 실행된다
    • 명령의 결과는 모두 S3 또는 CloudWatch 로그로 보내진다
    • 실패, 성공, 진행 중같은 모든 업데이트 사항을 SNS로 전송 가능
    • IAM과 CloudTrail과 통합
    • EventBridge로 실행 명령을 직접 동작 가능

 

 

Patch Manager

  • 인스턴스 관리 과정 패칭을 자동화.
  • 운영체제, 애플리케이션, 보안 업데이트 등을 적용하는데 사용.
  • ec2 인스턴스와 온프레미스 환경과 리눅스 맥 윈도우os를 모두 지원.
  • 유지 관리 기간을 적용해 패치 일정을 잡을 수도 있다.
  • 인스턴스를 스캔하여 패치 규정 준수를 확인할 수도 있다

패치 관리자 호출 → 인스턴스 패치 → 패치 보고서 조회 가능

 

Maintenance Windows

  • 인스턴스에서 작업을 수행할 일정을 정의하는데 사용
  • OS 패치, 드라이버 업데이트, 소프트웨어 설치 등등..
  • 스케줄, 기한, 유지 관리 기간, 유지 관리 기간동안 실행될 작업

 

Automation

  • 명령 유지 관리 및 배포 작업을 단순화하는데 사용
    • 인스턴스를 한번에 다시 시작
    • AMI를 생성하거나 EBS 스냅샷을 생성하는 작업
  • Automation Runbook도 있으며 ec2 인스턴스 또는 AWS 리소스에 동일한 문서로 표시된 미리 정의된 작업이다
  • 콘솔, SDK, AWS CLI or SDK, EventBridge, AWS Config 등을 통해 트리거 가능

 

AWS Cost Explorer(비용 탐색기)

  • 비용 및 시간에 따른 사용량을 시각화하고 이해하며 관리하는데 사용된다
  • 사용자 정의 보고서를 생성해 비용과 사용량 데이터를 분석 가능
    • 대시보드와 도면도 얻을 수 있다
  • 데이터 분석도 가능(총비용 및 사용량)
  • 월별, 시간별 리소스 세부 단위로 볼 수도 있다
  • 최적의 절감형 플랜을 찾을 수 있고 사용량 기반 비용 계획에 큰 도움이 된다
  • 과거 데이터를 통한 청구서 비용에 대한 예측도 가능

 

Amazon Elastic Transcoder

  • s3에 저장된 미디어 파일을 소비자 재생 장치에서 필요한 형식의 미디어 파일로 변환하는데 사용
  • 확장성이 높고 더 많은 파일이 있을 수록 더 많은 처리능력을 갖게 된다
  • 트랜스코딩한 시간만큼만 지불.
  • 파일을 변환하기 위해 ec2 인스턴스에 돈을 쓸 필요가 없다
  • 입력 버킷 → transcoding pipeline → 출력 버킷 → 스마트폰, 테블릿 등등..

 

AWS Batch

  • 완전 관리형 서비스로, 어떤 규모의 배치라도 처리할 수 있다
  • aws에서 수십만 개의 컴퓨팅 배치 작업을 매우 쉽고 효율적으로 실행할 수 있다
  • Batch 작업에는 시작과 끝이 있다 → 따라서 Batch는 동적으로 ec2 인스턴스 또는 스팟 인스턴스를 실행시켜 시작하고 종료된다
  • 배치 대기열을 처리할 수 있도록 적절한 양의 컴퓨팅 및 메모리를 프로비저닝한다
  • 배치 대기열에 올리거나 예약만 하면 Batch 서비스가 알아서 시작한다
  • 배치작업은 도커 이미지와 ECS 서비스에서 실행되는 작업 정의로 ECS에서 실행되면 배치에서도 실행될 수있다
  • 배치작업을 Batch 서비스로 시작하면 스팟인스턴스나 ec2 인스턴스의 적절한 수를 자동으로 조절해주며 비용 최적화와 배치작업에만 집중할 수 있다

 

Batch vs Lambda

  • ec2인스턴스에 의존하므로 시간제한 X ↔ 람다는 15분의 시간제한이 있다
  • 도커이미지로 패키징하는한 런타임, 언어 제약이 없다 ↔ 런타임 제약이 있다
  • ec2인스턴스와 함께 제공되는 스토리지(EBS 등)을 사용 ↔ 디스크 공간이 제한되어있다
  • 관리형 서비스지만 ec2인스턴스는 신경 쓸 필요는 없음 ↔ 서버리스

 

Amazon AppFlow

  • SaaS 애플리케이션 및 AWS 사이에 데이터를 전송할 수 있는 완전 관리형 통합 서비스
    • Source : Salesforce, SAP, Zendesk, Slack, ServiceNow
    • Destination : Amazon S3, Amazon Redshift 혹은 Non AWS 서비스(SnowFlake, Salesforce)
  • 일정에 따라 특정 이벤트에 대한 응답 또는 주문형으로 통합되도록 정의
  • 필터링 유효성 검사와 같은 데이터 변환 가능
  • 공용 인터넷을 통해 암호화 하거나 PrivateLink를 사용하여 비공개 전송도 가능
  • 만들지 않고도 AP를 활요하여 게정 내에서 바로 데이터를 사용할 수 있다

'TIL > AWS' 카테고리의 다른 글

AWS SAA-C03 문제풀이  (0) 2023.07.11
AWS 백서  (0) 2023.06.20
AWS 더 많은 솔루션 아키텍쳐  (0) 2023.06.19
AWS 재해복구와 마이그레이션  (1) 2023.06.17
AWS 네트워킹 - VPC  (0) 2023.06.17
복사했습니다!