728x90
728x90
install_docker.sh 도커 설치 스크립트이다. 공식문서를 참조했다. 스크립트를 실행하기 전에 sudo chmod +x install_docker.sh 를 해준 후에 ./install_docker.sh 를 실행해준다. sudo apt update sudo apt-get install -y \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gp..
모바일 앱: MyTodoList 요구 사항 MyTodoList 라는 모바일 앱을 만든다. HTTPS 엔드 포인트가 있는 REST API 를 사용 서버리스 아키텍쳐 사용자가 직접 S3 에 있는 폴더와 상호작용할 수 있다. 사용자가 서버리스 서비스로 인증을 할 수 있다. 읽기와 쓰기를 모두 할 수 있지만 읽기 작업을 더 많이 할 것 이기 때문에 읽기 관련하여 성능을 높이면 좋다. 데이터베이스는 스케일할 수 있도록 구축해야 하고, 읽기 처리량이 높아야 한다. REST API Layer REST HTTPS 를 사용하기 위해 API Gateway 를 사용한다. 일반적인 서버리스 API 를 사용하는 방식으로 API 게이트웨이가 람다 함수를 호출해서 스케일링이 가능하며 람다 함수는 데이터베이스에 데이터를 저장하거나 ..
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..