728x90
728x90
Cognito 개요 Cognito 는 사용자에게 자격 증명을 부여해 서버나 앱과 상호작용 할 수 있게 한다. Cognito User Pool 의 기능 앱 로그인 기능 API 게이트웨이와 통합 기능 Cognito Identity Pools(Federated Identity) AWS 자격 증명을 직접 앱 사용자에게 제공하여 AWS 리소스에 액세스하도록 한다. Cognito 사용자 풀과 통합된다. Cognito Sync 요즘은 잘 사용하지 않고 AppSync 를 사용한다. 디바이스에서 Cognito 로 데이터를 동기화한다. AWS Cognito User Pools (CUP) 모바일 앱용 서버리스 인증 데이터베이스라고 할 수 있다. 사용자 이름이나 이메일 비밀번호를 조합해 로그인 할 수 있게 한다. 이메일이나 ..
API Gateway AWS 에서 제공하는 서버리스 서비스이고 클라이언트가 접근 가능한 public REST API 를 생성할 수 있게 해준다. 클라이언트는 API 게이트웨이와 통신을 하게 된다. 람다 함수에서 오는 요청을 프록시해준다. API 게이트웨이를 사용하는 이유는 HTTP 엔드포인트보다 많은 기능을 제공하기 때문이다. 인증, 사용량 설정, 개발 단계를 비롯한 여러 기능이 있기 때문이다. Lambda 와 통합이 가능하고 서버리스 서비스이기 때문에 인프라를 관리할 필요가 없으며 WebSocket 프로토콜도 지원하기 때문에 API 게이트웨이를 통해 실시간으로 스트리밍이 가능하다. API 게이트웨이가 API 버전 관리를 해주기 때문에 여러 환경을 다루는데 아주 유용하다. 개발 및 테스트, 운영 환경으로..
DynamoDB DynamoDB 는 서버리스 데이터베이스로 가용성이 아주 높아서 데이터가 자동으로 여러 가용 영역에 복제된다. NoSQL 데이터베이스이며 분산형 데이터베이스라서 수평 확장을 한다. 하나의 테이블 내에서 초당 수백만 건을 처리할 수 있고 행이 거의 무제한이며 수백 TB 에 다르는 스토리지가 있다. 성능이 빠르고 일관적이어서 프로비저닝을 많이 할 필요가 없다. 데이터 회수 속도도 매우 빠르다. DynamoDB API 는 IAM 과 완전 통합되어 보안, 권한, 관리가 매우 편하다. DynamoDB 스트림으로 이벤트 기반 프로그래밍을 활성화할 수 있다. DynamoDB - Basics 기본적으로 테이블로 구성되어 있으며 완전 관리형 서비스이기 때문에 테이블만 생성해서 사용하면 된다. 각 테이블에..
Serverless 개요 서버리스라는 말은 서버가 없다는 것이 아니라 서버를 관리할 필요가 없다는 뜻이다. 즉, 서버를 프로비저닝 하지 않는 것 이다. 서버를 관리하지 않고 필요한 것들을 배치해서 가져다가 쓰기만 하면 된다는 뜻으로 코드를 배치하기만 하면 된다. 원래 서버리스는 FaaS, Function as a Service 를 뜻했지만 지금의 서버리스는 더 많은 것을 뜻한다. AWS 의 Lambda, DynamoDB, API Gateway, Cognito, S3, SQS, SNS, Kinesis Data Firehose, Aurora 서버리스, Fargate 등이 서버리스 서비스이다. Lambda 개요 클라우드에서 가상으로 실행되는 서버로 관리할 서버 없이 코드를 프로비저닝하면 함수가 실행된다. 15..
docker 도커는 앱을 배포하는 소프트웨어 개발 플랫폼으로 컨테이너 기술을 사용한다. 앱을 컨테이너에 포장하여 어떤 운영체제든 상관없이 실행된다. 즉, 앱이 한 번 컨테이너에 들어가면 어디든 상관없이 호환성 문제없이 프로그램이 실행된다는 것이다. 동작이 예측 가능하기 때문에 처리할 일이 줄어들고 배포와 유지가 수월하여 모든 언어로 사용이 가능하다. 도커 컨테이너는 도커 이미지로부터 생성된다. 도커 이미지들은 도커 리포지토리에 저장되고 도커 허브라고 불리는 레포지토리가 존재한다. AWS 에서 제공하는 사설 도커 레포지토리인 Amazon ECR 도 존재한다. 도커도 일종의 가상화 기술이지만 엄밀히 따지자면 아니라고 할 수 있다. 리소스들은 호스트와 공유되기 때문에 한 서버에서 여러 컨테이너를 띄울 수 있다..
ECS 스케일링 오토 스케일링 그룹에서 처럼 임계값을 설정하고 해당 임계값을 넘어가는 순간 오토 스케일링이 되도록 설정할 수 있다. CloudWatch metric 을 사용하여 사용 중인 ECS 서비스 전체 CPU 의 평균 사용량을 체크하여 오토 스케일링 할 수도 있다. Fargate 와 EC2 인스턴스 모두 동일하게 작동한다. EC2 인스턴스의 ECS 클러스터를 스케일링하려면 ECS Capacity Provider 를 사용하여 스케일링을 진행한다. EC2 인스턴스 실행 유형에서만 선택할 수 있는 옵션이다. 위 과정을 다시 설명하자면, ECS 스케일링은 태스크를 실행할 충분한 용량이 없을 경우 오토 스케일링 그룹을 실행하고 ECS 클러스터에 EC2 인스턴스를 추가한다. 즉, 일반적인 ECS 스케일링과 E..