Programming
[AWS, Certified Developer Associate] X-Ray, CloudTrail
X-Ray여러 애플리케이션 간 시각적 분석 제공애플리케이션 성능 트러블슈팅 / 병목현상 식별 / MSA에서 MS간 의존관계 파악서비스 문제를 짚어줌요청 - 응답 한눈에 파악 가능오류와 예외 응답 확인 가능지연시간 등을 통해 SLA를 준수하는지 확인 가능어떤 서비스로 인해 지연이 발생하고 스로틀링이 발생하는지 발견 가능어떤 사용자들이 오류에 영향을 받는지 식별 가능호환성 좋음 : 람다, Beanstalk, ECS, ELB, API Gateway, EC2, 어떤 애플리케이션 서버든 (온프레미스 포함) X-Ray - Leverages Tracing엔드투엔드 방식으로 요청을 추적요청 시 이를 처리하는 각 컴포넌트가 각자 트레이스를 추가트레이스는 세그먼트로 구성 (세그먼트는 하위 세그먼트로 구성)트레이스에 어노..
[AWS, Certified Developer Associate] CloudWatch, EventBridge
CloudWatch - Metrics모든 AWS 서비스에 대한 지표 제공CPU 사용량, NetworkIn 등 기본 지표 제공배열 형태의 속성을 가짐 (인스턴스 id, 환경, etc)지표 당 최대 10개 배열 선택 가능타임스탬프를 가지며 지표 대시보드 생성 가능EC2 인스턴스는 기본적으로 5분마다 지표를 가짐추가적인 비용이 드는 세부 모니터링 활성화 시 1분마다 지표 가짐ASG 스케일 아웃 / 인의 작업속도 증대 (모니터링 빈도 늘어남)EC2 메모리 사용량은 RAM에서 푸시하지 않음 (커스텀 지표를 통해 가능) CloudWatch - Custom Metrics메모리 사용량, 디스크공간, 로그인 사용자 수 등 사용자 지정 지표를 생성 가능PutMetricData API 호출StorageResolution A..
[AWS, Certified Developer Associate] Kinesis Data Firehose, Kinesis Data Analytics
Kinesis Data Firehose생산자로부터 데이터를 읽어와 특정 데이터에 대해 Lambda를 통해 데이터 변환 후 도착지에 배치성 쓰기 실행도착지 1 - AWS 도착지S3 / RedShift / ElasticSearch도착지 2 - 써드파티 도착지Datadog / Splunk / NewRelic / MongoDB 등도착지 3 - 커스텀 도착지HTTP EndPoint데이터를 모든 도착지에 보내면 2개 옵션 존재모든 데이터를 S3 버킷에 보내 백업도착지에서 쓰기 실패한 데이터를 실패 버킷에 보관완전 관리형 서비스 (관리기능 X, 오토스케일링, 서버리스)Firehose를 통하는 데이터에 대해서만 비용 지불실시간에 가까운 서비스다양한 데이터 형식, 변환, 압축 지원람다를 통해 자체 데이터 변환 생성 가능..
[AWS, Certified Developer Associate] Kinesis Data Streams, Kinesis Client Library (KCL)
Kinesis스트리밍 데이터를 실시간으로 수집, 처리, 분석하도록 도와줌애플리케이션 로그, 지표, 웹사이트 클릭스트림, IoT 원격 데이터 Kinesis Data Streams빅데이터 스트리밍번호가 매겨진 여러 샤드로 구성 (샤드는 미리 프로비저닝 되어야함)데이터가 샤드에 분할샤드가 수집 / 소비율에 맞춰 스트림 용량 정의여러 형태의 생산자가 KDS에 데이터를 보냄데이터는 레코드 형태로 생성Partition Key + 최대 1MB 데이터 볼륨파티션 키 : 레코드가 어느 샤드로 이동할지 결정여러 형태의 소비자가 레코드 수신파티션 키 + 샤드의 위치인 시퀀스 번호 + 데이터 볼륨1 ~ 365일 사이 보유기간 설정 가능데이터 재처리 가능삽입된 데이터는 삭제가 불가 (불변성, immutability)동일한 파티..
[AWS, Certified Developer Associate] SQS, SNS
Amazon SQS (Simple Queue Service)완전 관리형 대기열(Queue) 서비스애플리케이션 분리에 사용 (Decouple Applications)무제한 처리량 / 무제한 메세지 queueing메시지는 기본 4일, 최대 14일까지 존재 가능낮은 지연 (발행 및 소비에 대해 메시지의 크기는 작아야함 (256KB 미만) SQS - 메시지 발행생산자는 SDK (SendMessage API)를 통해 256KB 미만의 메시지 전송메시지는 소비자가 메시지를 읽고 삭제할 때까지 SQS 대기열에 유지 SQS - 메시지 소비소비자는 SQS 메시지를 폴링폴링한 메시지에 대해 소비자는 작업(처리) (ex) RDS DB에 데이터 저장)처리가 완료된 후 소비자는 SDK (DeleteMessage API)를 통해..
[AWS, Certified Developer Associate] CloudFormation
IaC (Infrastructure as Code, 코드형 인프라)인프라를 코드 형식으로 정의, 관리하는 방식수동으로 인프라를 생성/관리하는 방식에서 벗어나 자동화/코드화를 통해 인프라를 생성 및 관리자동화된 프로비저닝 / 유연성 / 확장성 / 버전 관리ex) 앤서블(Ansible) / 테라폼(Terraform) / AWS CloudFormation AWS CloudFormationAWS의 대표적인 IaC 서비스AWS 인프라를 선언하는 방식으로 작성리소스 생성, 보안그룹 연결 등을 순서대로 생성하도록 선언자동화 / 버전관리 / 코드검토를 통한 검증 / 스택 비용 추적 가능 / 생산성 / 관심 분리 (VPC stack, Network stack, App stack 분리 가능) CloudFormation..
[AWS, Certified Developer Associate] Elastic Beanstalk
Elastic Beanstalk하나의 인터페이스에서 EC2, ASG, ELB, RDS 등을 재사용해 자동으로 배포해주는 관리형 서비스용량 프로비저닝, 로드밸런서 구성, 스케일링, 애플리케이션 상태 모니터링, 인스턴스 구성 자동화개발자는 코드에만 신경무료환경, 버전, 구성 등의 집합으로 이루어짐하나의 환경 안에서 애플리케이션 버전을 1 -> 2로 업데이트 가능다양한 언어 지원 (고급 설정으로 사용자 지정 플랫폼 생성도 가능) Beanstalk - 애플리케이션 업데이트를 위한 배포 옵션All at once한번에 모든 인스턴스 배포속도가 가장 빠름 but 모든 서비스가 중지되므로 다운타임 발생UC ) 빠른 배포 & 개발환경 & 다운타임 중요 X & 추가요금 XRolling버킷이라는 인스턴스 묶음을 동시 업데..
[AWS, Certified Developer Associate] ECS
ECS (Elastic Container Service)Docker 관리를 위한 Amazon 전용 플랫폼AWS에서 도커 컨테이너 실행 = ECS 클러스터에서 ECS 태스크 실행EC2 Launch 타입EC2 인스턴스에 대한 인프라를 직접 프로비저닝 및 관리해야함ECS 클러스터에 여러 EC2 인스턴스 (= ECS 태스크)각 인스턴스는 ECS Agent를 실행해야함 (에이전트가 지정한 ECS 클러스터에 인스턴스 등록)ECS 클러스터에 새로운 도커 컨테이너 등록 시 각 EC2 인스턴스에 배포됨Fargate Launch 타입서버리스 (프로비저닝, 관리 X)ECS 태스크를 정의 -> AWS에서 CPU와 RAM 요구사항을 토대로 ECS 태스크 실행확장 시 태스크 수만 늘리면 됨 ECS - EC2 Instance Pr..
[AWS, Certified Developer Associate] CloudFront
CloudFrontCDN (Content Delivery Network, 콘텐츠 전송 네트워크)여러 엣지 로케이션에서 웹사이트의 콘텐츠를 캐싱해 read 성능 높임지연시간 감소 / 사용자 경험 향상전세계 216개의 접속지점(POP) = edge location전세계에 콘텐츠 분산 / Shield와 Web Application Firewall을 통해 ddos 방어 CloudFront - OriginS3 Bucket엣지에서 파일을 전세계로 분산하고 캐싱처리CloudFront만 S3 버킷에 접근 가능하도록 Origin Access Control (OAC) 설정 가능Origin Access Identity (OAI) 대체CloudFront에서 S3에 파일 업로드 가능 (= ingress)Custom Origin..
[AWS, Certified Developer Associate] S3 - 암호화, 액세스 포인트
S3 - 암호화 (Object Encryption)Server-Side Encryption (SSE)SSE-S3 (S3 Managed Keys로 암호화)버킷, 객체에 기본 활성화AWS에서 키 관리 및 소유 / 키에 접근 불가AWS 서버측에서 객체 암호화 (AES-256)x-amz-server-side-encryption: AES256SSE-KMSAWS KMS로 암호화KMS를 통해 키를 직접 관리CloudTrail을 통해 키 사용 로깅 가능x-amz-server-side-encryption: aws:kmsKMS API를 호출해 키 생성 / 복호화 수행해야함처리량이 아주 많은 S3 버킷에 대해서는 권장 XSSE-C키는 AWS 외부에서 관리AWS에 키 전송 (HTTPS 필수)AWS는 키를 통해 암호화 후 키 ..