Ian's Archive 🏃🏻

thumbnail
AWS CertifiedDeveloper - Associate 대비 정리 3
Cloud
2023.08.11.

17. AWS Lambda

서버를 프로비저닝하거나 관리할 필요없이 코드를 실행할 수 있는 컴퓨팅 서비스

ex) DynamoDB부터 일정 간격으로 데이터를 취득하여 로그 분석을 실시한 후에 분석 결과를 S3 서버에 저장하는 구조

  • Lamdba는 서버리스 컴퓨팅에 사용할 수 있으나, 여러 개의 AWS 서비스를 이용한 서버리스 워크플로우를 구성 불가능
  • 필요할 때에만 코드를 실행하고 하루에 여러 개의 리퀘스트로부터 1초마다 수천 개의 리퀘스트까지 자동적으로 스케일링
    • stateless한 어플리케이션 처리 비용을 최적화
    • 스케일링이 매우 빨라 예상 임계값 설정 및 cloudwatch 경보 배포가 좋음
  • 리소스 컨트롤 할 필요 없음
  • 자동으로 EC2확장
  • 최대 구동시간 15분
  • Lambda@Edge : CloudFront가 제공하는 콘텐츠를 사용자 지정하여 최종 사용자와 더 가깝게 실행
  • Step Functions함수로 프로세스를 쪼개어 처리 가능
  • Lamabda 엣지를 사용하면 서버 관리를 하지 않아도 웹 어플리케이션을 글로벌로 분산시켜 퍼포먼스를 향상
  • Invocation이란 Lamdba함수의 이름공간에 있는 매트릭스이다. 이벤트 혹은 API를 호출로 인해 호출된 함수의 횟수를 측정
  • 람다의 배포 패키지 크기는 250MB를 초과 할 수 없다.
  • 할당한 메모리에 비례하여 cpu를 할당 -> 성능 향상시킬 시 메모리를 확장해야 함
  • 동시성 조절을 꼭 해야함 -> 제한하지 않으면 너무 많은 람다함수가 실행 되 많은 과금
  • 람다 함수로 API에 대한 액세스를 제어하기 위한 Amazon API Gateway Lambda 권한 부여자(이전의 사용자 지정 권한 부여자) 사용 가능
    • OAuth, SAML같은 전달자 토큰 인증 전략 사용

18. DynamoDB

여러 AZ에 걸친 복제를 통해 완벽히 관리되는 고가용성, NoSQL 데이터 베이스

  • AWS 에서는 DynamoDB가 섹션 데이터나 유저 설정, 메타 데이터등을 저장하기 위한 이상적인 데이터베이스
  • 일 10조건이상의 리퀘스트를 처리할 수 있어, 매초 2000만건이 넘는 리퀘스트 처리가 가능한 NoSQL형의 데이터 베이스
  • 지원되는 data 유형 : 스칼라 유형 (문자열, 숫자, 이진수, boolean), 문서 유형 (목록, 맵), 집합 유형 (문자열 집합, 숫자 집합, 이진 집합)
  • 기본키 - 파티션키(hash), 파티션키 + 정렬 키(hash + range)
  • 프로비저닝 모드(기본값) : 미리 용량 계획 / 주문형 모드 : AutoScailing 사용해 자동 확장 (비쌈)
  • DynamoDB 전용의 인메모리형 캐시 클래스를 추가하여 캐시로부터의 응답을 밀리초 단위로부터 마이크로초 단위까지 고속화 가능
  • PartiQL : SQL 호환 쿼리 언어, 응답 형태 : JSON
  • Session저장하는데 사용하는 것이 일반적
    • ElasticCache : 인메모리
    • EFS : EFS는 EC2인스턴스에 네트워크 드라이브로 연결되어야 함
    • EBS 및 Instance Store : 공유 캐싱이 아닌 로컬 캐싱에만 사용
    • S3 : 대기 시간이 더 길고 작은 객체에는 적합하지 않다.
  • DynamoDB의 글로벌 테이블 설정을 통해 여러 개의 리전 테이블 동기화 가능
  • 개체 max 크기 400k, 문서나 이미지를 저장하는데 적합x
  • s3 object key값을 dynamo에 저장하는게 좋은 패턴
  • 불일치나 데이터 손실 없이 중복 요청 처리 할 경우 -> DynamoDB 테이블의 각 요청에 대한 고유 식별자를 유지, 요청을 처리하기 전에 테이블에서 식별자 확인하도록 Lambda함수 변경
  • TTL설정 해 자동으로 삭제 가능
  • 테이블 생성 시 테이블 이름 외에도 테이블의 기본키 지정해야 한다.

18.1 DynamoDB Stream

  • DynamoDB 테이블에 저장된 항목의 변경을 캡쳐 가능
  • ex) 유저가 데이터를 DynamoDB테이블에 추가했을 때 이 이벤트를 기점으로 데이터 관리자에 메일 송신해 변경 알림
    (Lambda 함수를 이용하는데 로직을 실행되게 할 수 있다)

18.2 AppSync

  • real time 데이터 집계 처리에 활용 가능 (내구성, 확장성 및 가용성이 높기 때문에)
  • AppSync를 같이 활용해 실시간 처리기능 구현 가능 (ex - Ranking 시스템)

18.3 DAX

특정 데이터 영역에서 처리가 집중 될 때, DXA를 유효화 해 인메모리 DB를 이용한 고속 처리 실현 가능

  • 1초당 리퀘스트 수가 수백만건이 되는 처리에 대해서도 밀리 세컨드 -> 마이크로 세컨드로 최대 10배 향상

18.4 Tip!!

  • EMR을 합쳐서 DynamoDB에 축적된 빅데이터를 EMR로 분석 처리 가능
  • EMR이란, 빅데이터 분석 처리의 Apache Hadoop등 실행할 수 있는 서비스
  • CloudWatch를 사용하여 DynamoDB를 모니터링 해 raw 데이터를 수집하고 거의 리얼 타임으로 메트릭트를 가공하는 것이 가능
    • CloudWatch는 DynamoDB 테이블의 데이터가 변경된 경우 메타 데이터 저장 불가

19. API Gateway

API Gateway는 완전 관리형 서비스로 API의 작성, 배부, 보존, 감시, 보호가 가능한 서비스

  • HTML에 직접 작성해 코드 호출 가능
  • Lambda와 연계하여 서버리스 아키텍처를 구축할 때에 빈번히 이용
  • 트래픽 관리, 인가와 액세스 컨트롤, 모니터링, API 버전 관리 등, 최대 수백만 규모의 동기 API 콜 처리가 가능
  • 최저 요금이나 초기 비용은 딱히 필요하지 않으며, 송신한 API 콜와 전송 데이터량에 대해 과금이 발생

활용

  • 가장 기본적인 기능은 API Gateway에 대한 인증과 인가, CORS 꼭 활성화 해야 함
  • AWS Lambda로 실행되는 코드부터 데이터, 비즈니스 로직에 액세스하기 위한 문 기능하는 REST API 및 WebSocket API 생성 가능
  • API를 통해 HTTP에서 백엔드 서비스로의 접근을 제공
  • API Gateway를 이용하는 것으로 AWS Lambda함수를 HTTPS 경우로 호출하는 것이 가능
    • Amazon API Gateway를 사용하여 커스텀 REST API와 엔드 포인트를 정의하여 특정 Lamdba함수 매핑
  • 너무 갑작스러운 트래픽 급증 시 요청을 조절할려고 할 때 -> API gateway, sqs, kinesis
  • API Gateway 권한 부여할 땐 Amazon API Gateway Lambda 권한 부여자 사용

Tip!!

API Gateway 성능 개선

  • API Gateway에서 API캐싱 활성화

20. SAM(Serverless Application Model)

서버리스 어플리케이션 구축용의 Deploy 서비스

  • YAML을 사용하여 서버리스 어플리케이션의 Lambda함수, API, 데이터베이스, 이벤트 소스맵핑 모델링
  • AWS SAM은 CloudFormation기반으로 서버리스 어플리케이션을 전개
    -> SAM이 SAM 구문을 AWS CloudFormation 구문으로 변환 및 확장, 서버 리스 어플리케이션의 구축을 고속화
  • 변환 및 리소스 섹션 필요
  • 알아야 할 명령
    • SAM Build : 종속성 가져오기 및 로컬 배포 아티팩트 생성
    • SAM Package : 패키징 및 Amazon S3에 업로드, CF 템플릿 생성
    • SAM Deploy : CloudFormation에 배포

21. CDK(Cloud Deveopment Kit)

Javascript / Typescript, Python, Java 같은 친숙한 프로그래밍 언어를 이용해 클라우드 인프라를 정의하도록 해주는 키트

  • CLoudFormation을 대체하는 기능
  • 코드를 사용해서 구성을 하는데 제대로 작동하지 않으면 컴파일 오류가 생길 것이고, 템플릿 생성 불가능
  • 백엔드에서 CloudFormation 템플릿을 정의할 수 있는 기술
  • 가장 큰 장점은 인프라와 APP Runtime Code 함께 배포 가능

22. Cognito

사용자에게 웹 또는 모바일 Application과 상호 작용 할 수 있는 ID 제공

  • AWS에서 관리
  • 웹 및 모바일 앱용 서버리스 사용자 DB 생성
  • 비밀번호 초기화
  • 이메일 및 전화번호 확인
  • 다단계 인증(MFA), 소셜 로그인 Facebook, Google, SAML 등
  • 로그인 성공 시 JWT 전송

23. AppSync

GraphQL을 사용하는 관리형 서비스

  • APP이 필요한 데이터를 정확하게 얻기 가능
  • NoSQL, RDB, DynamoDB, Aurora, OpenSearch 등 통합
  • WebSocket 또는 MQTT를 사용해 실시간으로 데이터 검색

24. AWS Amplify

모바일 및 웹 App 제작을 시작하기 위한 도구 세트

25. aws 보안 및 암호화 kms, 암호화 SDK, SSM

IAM설정에 따른 EC2, S3 버킷 정책 정리 -> S3 버킷 권한이 명시적으로 거부가 되어있지 않으면 S3 권한 부여 있던 말던 EC2 인스턴스는 S3 읽기 가능

25.1 KMS

키 관리 서비스

  • AWS 서비스에 대한 암호화 말 있으면 KMS일 가능성이 높다.
  • 인증을 위해 IAM과 통합
  • CloudTail을 사용해 KMS 키 사용 감사 가능
  • AWS서비스에 보안이 필요한 일반 텍스트, 특히 코드에 절대 저장 X
    -> KMS에 저장하고 API호출 해 사용
  • 대칭키 - AES256 / 비대칭키 - RSA or ECC
  • AWS 소유키, 관리키 무료 / KMS 생성 월 1,고객관리키월1, 고객관리 키 월 1, API 10000호출 당 0.03$
  • resion간 스냅샷 복사
  • KMS 암호화 API 호출은 4KB 제한
  • KMS는 CMK(고객 마스터 키)를 저장하고 클라이언트로부터 데이터를 수신하여 암호화하여 내보낸다.

25.2 Secret Manager

  • 비밀 저장을 위한 최신 서비스
  • X일마다 비밀 강제로 교체 기능, 순환 시 비밀 생성 자동화 (Lambda 사용)
  • Amazon RDS(MySQL, PostgreSQL, Aurora)와 통합
  • 비밀은 KMS를 사용해 암호화
  • 주로 RDS 통합 용

26. etc service

  • RedShift

    • 데이터 웨어하우스
    • 비즈니스 리포트 작성
    • 정형데이터에 알맞음
  • Amazon SES : 이메일을 안전하고 전 세계적으로 대규모로 전송하는 완전 관리형 서비스

    • ex) 트랜잭션, 마케팅 및 대량 이메일 커뮤니케이션
  • Amazon OpenSearch : Amazon ElasticSearch의 후속 제품

  • Amazon Athena : S3에 저장된 데이터를 분석하는 서버 리스 쿼리 서비스, 스캔 데이터 1TB당 5$

  • Amazon MSK : AWS에서 완벽히 관리되는 Apache Kafka (Amozon kinesis 대안)

    • kinesis 1mb 제한 / 아마존 MSK : 기본 1mb, 10mb 최대
  • ACM : HTTPS 인증서 관리

    • 공용 및 사설 TLS 인증서 모두 지원
    • 공개 TLS 인증서 무료
    • 자동 TLS 인증서 갱신
  • Amazon Macie : 기계 학습 및 패턴일치를 사용해 AWS에서 중요한 데이터를 검색하고 보호하는 완전 관리형 데이터 보안 및 데이터개인정보 보호 서비스

    • 개인 식별 정보 같은 중요 데이터를 식별하고 경고하도록 도와준다.
  • IAM Access Analyzer

    • 외부 엔티티와 공유되는 S3버킷 또는 IAM역할과 같은 조직 및 계정의 리소스 식별에 도움

Reference

Thank You for Visiting My Blog, I hope you have an amazing day 😆
© 2023 Ian, Powered By Gatsby.