본문 바로가기

aws24

AWS amplify로 GraphQL 추가하기 AWS amplify로 어플리케이션 배포하기 에서 기본적인 next 셋업을 하고, amplify로 graphQL api를 추가해보자. amplify add api amplify/backend/backend-config.json에 "api"가 추가되고 amplify/backend/api 폴더와 파일들이 자동으로 생성된다. 기본으로 제공되는 스키마는 다음과 같다. type Todo @model { id: ID! name: String! description: String } GraphQL에서 사용할 모델의 스키마로 @model로 정의한 SDL(Schema Definition Language)을 GraqhQL Transform 해준다. 뒷단에서는 DynamoDB와 AppSync가 만들어져 실행된다. 나중에 c.. 2020. 12. 10.
AWS amplify로 어플리케이션 배포하기 npx create-next-app으로 가장 기본적인 next 환경을 갖추고 amplify를 사용해서 배포까지 해보자. Next.js에서 공식적으로 운영하는 github.com/vercel/next.js/tree/canary/examples에서 기본 골격을 받아서 시작할 수도 있다. 여기서는 배포하는 환경까지 만들어 보고 다음에는 auth, api, function 등 backend까지 amplify로 다뤄 볼 예정이다. npm install -g @aws-amplify/cli로 amplify cli를 먼저 설치한다. amplify init amplify init으로 amplify 설정을 초기화한다. 위와 같은 파일들이 생성되며 amplify console에서도 방금 생성한 app을 볼 수 있다. 초기화.. 2020. 11. 29.
SAM으로 API Gateway - Lambda - DynamoDB 구성하기 AWS 서버리스 서비스로 인프라를 구성할 때 자주 사용되는 패턴이 있다. API Gateway - Lambda - DynamoDB로 구성하는 것인데 특히 Lambda와 DynamoDB는 무기한 프리티어를 제공하기 때문에 토이 프로젝트로 사용하기에도 제격이다. API Gateway 주의할 점은 앞단에 API Gateway로 프록시를 하기 때문에 람다의 응답으로 단순히 값만 넘길 게 아니라 API Gateway response에 맞게 적절한 포맷을 맞춰주어야 한다. SAM template에는 람다의 Properties아래 Events 속성을 추가한다. Resources: SimpleDynamoCRUD: Properties: Events: SimpleDynamoCRUDAPI: Type: Api Properti.. 2020. 8. 26.
Serverless Application Model(SAM) 기본 AWS에 작성한 코드를 배포하고 관리하기 위한 많은 도구들이 있다. serverless 도 흔히 사용되지만 Serverless Application Model(SAM)도 손쉽게 사용할 수 있다. 다른 도구들과 마찬가지로 SAM도 application code를 작성하고 관련 인프라 설정을 yaml으로 작성한다. 배포는 package와 deploy 두 단계로 나뉜다. package 명령으로 코드를 s3로 업로드하고 SAM template으로 작성한 yaml은 업로드한 코드의 주소를 포함한 cloudformation으로 변환된다. 그 후에 deploy 명령으로 cloudformation stack을 생성해서 실제 인프라에 적용시킨다. SAM cli 설치 aws repo 추가 $ brew tap aws/tap.. 2020. 8. 25.
AWS CodePipeline으로 CI/CD 구축하기 CodePipeline을 사용하면 repository에 코드를 푸시했을 때 빌드, 테스트, 배포까지 CI/CD를 한 번에 관리할 수 있다. 예제 코드는 AWS fargate 사용법에서 만들었던 fargate 코드를 기반으로 한다. code repository는 CodeCommit, 빌드는 CodeBuild, 배포는 Amazon ECS를 사용한다. IAM IAM -> Security credentials -> HTTPS Git credentials for AWS CodeCommit에서 credential을 생성한다. CodeCommit credential이 있으니 이제 CodeCommit에서 repository를 생성하고 git clone을 받을 수 있다. 위에서 받아온 자격 증명을 유지하기 위해 clon.. 2020. 5. 12.
AWS fargate 사용법 aws fargate는 ec2 인프라를 신경 쓸 필요 없이 container 배포 관리를 해준다. 따라서 기존 ECS와 달리 cluster의 리소스 관리를 안 해도 된다. 이런 serverless 특성으로 ECS와 lambda 중간쯤 위치한 서비스다. 요금도 lambda와 같이 초 단위로 사용한 만큼 과금한다. 기본 hello server const Koa = require('koa'); const app = new Koa(); app.use(ctx => { ctx.body = 'Hello'; }); app.listen(4000, () => { console.log('listening to port 4000'); }); node로 "Hello"만 응답하는 간단한 서버를 만들었다. FROM node:12 .. 2020. 5. 12.