Programming
[AWS, Certified Developer Associate] AWS KMS, SSM Parameter Store
AWS KMS (Key Management Service)AWS 서비스에서 '암호화'라고 하면 대부분 KMS 암호화를 의미할 가능성이 높음암호화 키 관리CloudTail을 통해 키를 사용하기 위한 API 호출 추적 가능API call을 통해 KMS 키 암호화 사용 가능 (SDK, CLI 등)KMS 키Symmetric (AES-256)암호화/복호화에 하나의 키가 사용대부분의 AWS Service는 대칭키 사용키 자체에 액세스 불가능 (API call을 통해서만)Asymmetric (RSA & ECC)암호화에 사용되는 공개키 & 복호화에 사용되는 개인키암/복호화 및 서명/검증 작업에 사용공개키는 KMS에서 다운로드 가능 / 개인키 액세스 불가능 (API call을 통해서만)사용사례 : KMS 키에 액세스할 ..
[AWS, Certified Developer Associate] Step Functions
AWS Step FunctionsAWS 서비스 오케스트레이션 / 비즈니스 프로세스 자동화 / 서버리스 애플리케이션 구축에 사용되는 시각적 워크플로 서비스실패, 재시도, 병렬화, 서비스 통합 등을 관리json 형태로 워크플로 정의상태 Choice : 브랜치 (or 기본 브랜치)로 보낼 조건 테스트Fail / Succeed : 워크플로의 실패 / 성공 여부로 실행을 중지Pass : 입력값을 출력값에 전달 or 작업을 수행하지 않고 고정된 데이터 주입Wait : 특정 날짜/시간동안 지연Map : 단계를 동적으로 반복Parallel : 브랜치 수행을 병렬적으로 수행 Step Functions - 오류 핸들링Step Function 자체에서 오류 처리 메커니즘 정의 가능이를 통해 코드에서의 에러 처리 제외 > ..
[AWS, Certified Developer Associate] Cognito - User Pools, Identity Pools
Amazon Cognito사용자에게 자격 증명을 부여해 웹, 모바일 애플리케이션과 상호작용 할 수 있도록 하는 것두가지 하위 서비스 존재Cognito User Pools앱 사용자를 위한 로그인 기능 제공API Gateway & ALB와 통합Cognito Identity Pools (Federated Identity)앱에 등록된 사용자가 AWS 리소스에 바로 액세스 가능하도록 임시 AWS 자격 증명 부여사용자 풀과 통합vs IAM : Cognito는 AWS 외부의 웹/모바일 애플리케이션 사용자를 위한 것 (수백만 사용자, 모바일 사용자, SAML 인증) Cognito - User Pools웹 / 모바일 애플리케이션 사용자에 대한 서버리스 데이터베이스를 생성할 수 있는 방법단순 로그인 : 유저이름(or 이..
[AWS, Certified Developer Associate] CodeStar, CodeArtifact, CodeGuru
AWS CodeStarGitHub, CodeCommit, CodeBuild, CodeDeploy, CloudFormation, CodePipeline, CloudWatch 등의 서비스를 그룹화하는 통합 솔루션코드 저장 및 버전관리 / 코드 설계 및 테스트 / 코드 배포 / 인프라 프로비저닝 / 파이프라인 조정 / 모니터링 배포이슈 트래킹 도구 존재 + Jira / Github 이슈와 통합 가능Cloud9 도구를 통해 코딩을 통합 가능 (Web IDE로 클라우드에서 바로 코딩 가능)모든 구성요소를 볼 수 있는 대시보드 존재무료, 다른 서비스에 대한 비용만 지불 AWS CodeArtifact소프트웨어 개발을 위한 보안, 확장성, 비용 효율적인 아티팩트 관리 시스템아티팩트 관리 : 각각의 소프트웨어 종속성을..
[AWS, Certified Developer Associate] CodeCommit, CodePipeline, CodeBuild, CodeDeploy
AWS CodeCommitGitHub, GitLab, Bitbucket 등의 버전관리 툴과 달리 코드가 AWS 클라우드의 개인 VPC 내에 있음비공개 Git Repo사이즈 제한 없음 (코드를 GB 크기까지 확장가능)완전관리형, 고가용성코드는 AWS 클라우드 내에만 저장 -> 일관된 형식 / 높은 보안보안 강화 (암호화, IAM을 통한 액세스 제어)젠킨스, CodeBuild 등의 CI 툴과 통합 가능보안인증 (Authentication) : SSH Key / HTTPS인가 (Authorization) : IAM 정책암호화AWS KMS를 통해 암호화코드 커밋 시 HTTPS or SSH를 통해서 암호화된 상태로만 전송됨교차 계정 접근 : IAM 역할 생성 & AWS STS (AssumeRole API) 통해 ..
[AWS, Certified Developer Associate] API Gateway - 개요, 엔드포인트 유형, 통합 방식
AWS API Gateway클라이언트가 액세스 가능하도록 공개적인 REST API를 만들 수 있는 서버리스 서비스람다 + 게이트웨이 = 완전관리형 서버리스실시간 스트리밍 - 웹소켓 프로토콜 지원으로 실시간 스트리밍 가능버저닝 - API 버저닝 가능 (v1, v2.. )다양한 환경 지원 (dev, test, prod..)인증, 권한 부여 목적으로 보안 처리 가능API 키를 통해 게이트웨이의 요청 수에 따라 쓰로틀링 가능Swagger, Open API 3.0등 표준을 통해 API 정의 가능API 게이트웨이 수준에서 요청/응답을 변환 및 무효화 통한 유효성 검사 가능SDK, API 규격 생성 가능API 응답 캐싱 가능람다와 통합람다 함수 실행람다를 REST API로 쉽게 내보낼 수 있음HTTP와 통합HTTP ..
[AWS, Certified Developer Associate] DynamoDB - LSI, GSI, DAX, S3와 연동 사례
AWS DynamoDB - LSI (Local Secondary Index)테이블에 대체 정렬 키 제공 (Alternative Sort Key)하나의 스칼라 속성으로 존재 (String, Number, Binary)테이블 당 최대 5개 LSI 가능테이블 생성 전 정의테이블로부터 일부 또는 전체 속성 얻을 수 있음 (LSI 생성 시 결정)메인테이블의 WCU, RCU 사용특별히 쓰로틀 고려할 것 없음 AWS DynamoDB - GSI (Global Secondary Index)테이블에 대체 기본 키 제공 (Alternative Primary Key)non-key 속성의 쿼리 속도 높이는데 유용하나의 스칼라 속성으로 존재 (String, Number, Binary)해당 인덱스에 대해서는 반드시 RCU, W..
[AWS, Certified Developer Associate] DynamoDB - 기초, 용량 모드, 기본 API
AWS DynamoDB - 소개고가용성의 NoSQL 서버리스 데이터베이스여러 AZ에 걸쳐 즉시 복제 가능검색 속도가 빠르고 지연시간 낮음보안, 권한부여, 관리를 위한 IAM과 통합DynamoDB Streams를 통해 이벤트 기반 프로그래밍 활성화 가능낮은 비용, 오토스케일링 지원 AWS DynamoDB - 기초각 테이블은 Primary Key(기본 키)를 가짐테이블을 만들기 전에 기본키를 정의해야 함각 테이블은 items(=rows)을 무한으로 가질 수 있음각 item은 속성(attribute)을 가짐 (nullable) (시간이 지나도 추가 가능)각 item의 최대 크기는 400KB데이터 타입 지원스칼라 타입 - 문자열, 숫자, 이진수, boolean, null문서 타입 - List, Map집합 타입..
[AWS, Certified Developer Associate] Lambda - 함수 구성, 성능개선, 동시성, 제한
Lambda - 함수 구성 (Function Configuration)RAM128MB ~ 10GB까지 설정 가능 (1MB 단위 증가)램을 증가하면 vCPU도 자동으로 증가 (직접 설정 불가)RAM이 1792MB일 때 함수는 1개의 완전한 vCPU를 가짐1792MB 이상이면 CPU가 1개 이상이 되므로 코드의 효율성을 위해 멀티스레딩을 적용해야함CPU intensive 앱이면 (복잡한 계산) -> RAM을 늘려 CPU 성능을 높여야함Timeout : 기본값 3초, 최대 900초까지 가능 (15분)수행시간이 15분이 넘어간다면 람다는 좋은 활용사례가 아님 (Fargate, ECS, EC2 사용 권장) Lambda - 함수 성능 개선람다에는 Execution Context가 존재 > 초기화 오래걸리는 작업..
[AWS, Certified Developer Associate] Lambda - 이벤트 처리방법, Event / Context 객체, Edge Functions, VPC
Serverless개발자가 서버를 관리 / 프로비저닝 할 필요가 없는 새로운 패러다임단지 코드(함수)를 배포서버가 없다는 뜻이 아님!서버를 관리 / 프로비저닝 할 필요가 없고, 보이지 않음AWS 서버리스Lambda, DynamoDB, Cognito, API Gateway, S3, SNS & SQS, KDF, Aurora Serverless, Step Functions, Fargate AWS Lambda가상의 함수 (Virtual Function) - 관리할 서버 없이, 단지 코드를 프로비저닝하고 함수를 실행시간 제한 - 짧은 실행시간 (최대 15분)온디맨드로 실행 (함수가 실행될 때만 비용 발생)스케일링 자동화장점가격 책정 쉬워짐 - 수신 요청 수에 따라 청구 / 프리티어에서도 컴퓨팅 시간 40만 GB,..