일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- s3
- ec2
- 개발자
- orm
- MSA
- Docker
- Redis
- backenddeveloper
- sqs
- kakao
- aws
- 백엔드
- jpa
- QueryDSL
- codebuild
- 자격증
- DynamoDB
- rds
- goorm
- mapping
- spring
- CodeCommit
- 오블완
- 스터디
- serverless
- Spring Boot
- 티스토리챌린지
- codedeploy
- backend
- CICD
- Today
- Total
목록AWS (29)
gony-dev 님의 블로그
STS(Security Token Service) BasicSTS는 최대 1시간까지 임시 보안 자격 증명을 얻어 AWS 리소스에 바로 액세스할 수 있는 서비스이다.STS 요소들을 알아보자.(까만 부분이 시험 출제 높음)AssumeRole | 가장 핵심적인 계정이나 교차 내 역할을 추정하도록 한다.AssumeRoleWithSAML | 사용자가 SAML로 로그인한 경우, 사용자에게 임시 보안 인증을 부여한다.AssumeRoleWithWebIdentity | 사용자가 신분 제공자로 로그인하면 역할을 반환한다.- 요즘에는 Cognito 자격증명 풀을 사용한다.GetSessionToken | 사용자나 AWS 루트 계정에 MFA가 있는 경우를 말한다.GetFederationToken | 연합된 사용자의 임시 자격 ..
AWS Step FunctionsStep Function은 워크플로우를 상태 머신으로 모델링 하게 해준다.워크플로우 당 하나의 상태 머신을 가질 수 있다!JSON 형식으로 쓰이며, 워크플로우를 시각화하고 수행할 수 있다.워크플로우를 시작하기 위해 SDK API 호출을 사용할 수도 있고, API Gateway나 CloudWatch Event를 이용할 수 있다. 옆에 보이는 여러 박스들을 태스크라고 부르는데, 이 태스크 안에서 일어나는 상태들을 알아보자!태스트 상태는 상태머신에 어떠한 작업을 실행할 때 사용한다.람다 함수 호출AWS Batch 작업 호출ECS 태스크를 실행하고 완료되기까지 대기DynamoDB에 항목을 직접 삽입 등등태스크는 실행 중인 하나의 활동일 수도 있다.이 활동에는 Amazon ECS ..
Amazon CognitoCognito는 사용자에게 자격 증명을 부여해서 웹, 모바일 어플리케이션과 상호작용하게 한다.Cognito의 두 가지 하위 서비스:앱 사용자를 위한 로그인 기능API Gateway와 ALB를 통합Cognito Identity Pools (Federated Identity):AWS의 리소스에 바로 액세스할 수 있도록 임시 AWS 자격증명을 제공한다.Cognito 사용자 풀과도 통합 된다.Cognito와 IAM를 비교하면 IAM에 이미 사용자가 있더라도, Cognito는 AWS 외부에 자리한 웹/모바일 어플리케이션 사용자를 위한 것이다.Cognito User Pools(CUP)1. User Features웹/모바일 어플리케이션을 사용하는 유저들을 위한 서버리스 데이터베이스를 생성한다..
CDK BasicCDK는 프로그래밍 언어를 사용하여 클라우드 인프라를 정의한다.얼핏 CloudFormation과 비슷할 수 있지만 언어를 사용하여 정의한다는 것에 큰 차이를 둔다. 즉 상향이라는 것이다.코드는 cloudFormation 템플릿에 컴파일되며, 이를 통해 유연성이 높아지고 프로그래밍 언어를 사용할 수 있다.이렇게 하면 인프라와 어플리케이션 런타임 코드를 함께 배포할 수가 있게 된다.람다 함수ECS/EKS의 도커 컨테이너에 사용하면 좋다.CDK in a DiagramCDK CLI로 합성하여 CloudFormation으로 만들 수 있다. CDK vs. SAMSAM서버리스에 중점을 두고 있다.템플릿을 JSON이나 YAML 형식에 작성한다.람다를 사용해서 빠르게 시작할 수 있다.CloudFormat..
AWS SAMSAM은 Serverless Application Model의 약자로서버리스 어플리케이션을 개발하고 배포하기 위한 프레임워크이다.코드를 작성하고 SAM 프레임워크와 호환되는 YAML 형식의 구성 파일을 사용하게 된다.YAML 파일은 CloudFormation의 모든 항목을 지원하기에 SAM YAML 코드에서 출력, 매핑, 파라미터 리소스 등을 계속 사용할 수가 있다.SAM은 내부적으로 CodeDeploy를 사용하여 람다 함수를 배포할 수 있으며, API 게이트웨이, DynamoDB를 로컬에서 실행하는 데 도움을 준다. RecipeSAM은 레시피로 구성되며, 이는 템플릿 맨 위에 SAM 템플릿임을 나타내는 변환 헤더를 추가한다.그런 다음 코드를 작성하는데 CloudFormation을 사용하는 ..
AWS CodeDeployCodeDeploy는 어플리케이션 배포를 자동화해주는 배포 서비스이다.온-프레미스 서버, 람다 함수, ECS 서비스, EC2 인스턴스에 새로운 어플리케이션 버전을 배포한다.배포가 실패하거나, 알람이 트리거되면 자동으로 롤백을 시작할 수가 있다!appspec.yml인 파일을 사용하여 배포 방식을 정의할 수가 있다.CodeDeploy - EC2/On-preises Platform우리는 CodeDeploy를 사용하여 두 종류의 배포를 할 수 있다.하나는 in-place 배포, 다른 하나는 블루/그린 배포이다.CodeDeploy를 할 때는 CodeDeploy 에이전트를 타깃 인스턴스에 배포해야만 한다. 그 에이전트가 인스턴스 업데이트를 수행하기 때문이다.우리는 배포 속도도 정의할 수 있..
지금까지 섹션 24까지 진행하면서 우리는 AWS 리소스를 생성하고, AWS 프로그래밍 방식을 배우고, Beanstalk로 AWS에 코드를 배포하기도 하였다.하지만 이 모든 작업을 수동으로 하였는데, 이런 경우에 실수가 발생할 수 있다.우리는 이제 자동으로 AWS에 배포되는 방법을 배우고자 한다.CICDCICD에서 우리는 다음 사항들을 배울 것이다.AWS CodeCommit | 코드를 저장AWS CodePipeline | 코드에서 Elastic Beanstalk까지 파이프라인을 자동화AWS CodeBuild | 코드를 빌드하고 테스트AWS CodeDeploy | EC2 인스턴스에 코드를 배포AWS CodeStar | 하나의 장소에서 소프트웨어 개발 활동들을 관리AWS CodeArtifact | 소프트웨어 ..
API Gateway클라이언트가 람다 함수를 직접 호출하기 위해서는 IAM 권한이 있어야 한다.ALB를 사용하여 클라이언트와 람다 함수 사이에 권한을 둘 수가 있는데, 그러면 람다 함수가 HTTP 엔드포인트로 노출된다.API Gateway는 AWS에서 제공하는 서버리스 서비스로 클라이언트가 액세스 할 수 있게 공개적인 REST API를 만들 수 있다!클라이언트가 API 게이트웨이에 통신하면 람다 함수로 요청을 프록시한다.람다와 API 게이트웨이의 조합은 관리할 인프라가 없는 완전한 서버리스 어플리케이션이 된다.웹소켓 프로토콜이 지원이 되어 API 게이트웨이를 통해 실시간 스트리밍이 가능하다.API 게이트웨이는 버저닝을 처리하므로 버전1에서 버전2, 3으로 변경도 할 수 있다.다양한 환경을 처리할 수도 있..
DynamoDB - Optimistic Locking낙관적 잠금 기능은 조건부 쓰기를 수행한다.이는 업데이트나 삭제 전에 항목이 변경되지 않게 하는 것이다.각 항목들은 버전 번호로써 역할을 수행하는 속성을 갖게 된다. DynamoDB Accelerator(DAX)DAX는 DynamoDB에서 완전 관리형, 고가용성, 무결절성 인 메모리 캐시이다.캐시된 읽기와 쿼리에 마이크로초의 지연이 발생한다.이는 어플리케이션 로직에 어떤 변경을 요청하지 않고 존재하는 DynamoDB API에 호환된다.우리는 DAX를 통해 "Hot Key" 문제를 해결할 수 있다.Hot Key | 특정 키나 항목을 너무 많이 읽으면 RCU에 스로틀이 생기는 문제TTL은 캐시에서 기본 5분이다.클러스터에는 최대 10개의 노드를 가질 수 있..
DynamoDB란?1. NoSQL databasesNot Only SQL 또는 Non SQL 데이터베이스를 의미한다.수평성 확장성을 가지며 MongoDB나 DynamoDB를 포함한다.조인 쿼리를 지원하지 않으며 필요한 모든 데이터는 한 줄로 표시되어야 한다.수평 확장성을 가지기에 더 많은 인스턴스를 추가해서 스케일링할 수 있다.DynamoDB완전 관리되고 고가용성의 NoSQL 데이터베이스이며, RDS와는 다르다.대규모 워크로드로 확장되고 완벽히 분산된다.초당 수백만 개의 요청과 수조 개의 행, 수백 테라바이의 스토리지로 확장할 수 있다.검색 시 지연 시간이 낮고 IAM과 통합되어 있다.1. BasicDynamoDB는 테이블들로 이루어져 있으며, 각각의 테이블은 기본 키를 갖는다.각 테이블은 행을 무한대로..