본문 바로가기
IT/Serverless

서버리스 api gateway 도메인 적용

by DOSGamer 2019. 8. 14.
반응형

목표시스템

AWS api gateway 에 도메인을 적용해서 사용하자

사용기술

도메인적용방법

Step 1. 도메인 관리 플러그인 설치 (serverless-domain-manager)
Step 2. 서버리스 프레임워크의 환경설정에 도메인 설정 추가
Step 3. 커스텀 도메인 생성
Step 4. 서버리스 배포

Step 5. 커스텀 도메인 삭제

Step 1. 도메인 관리 플러그인 설치 (serverless-domain-manager)

serverless framework 는 글로벌 환경으로 설치하고
serverless-domain-manager 는 개발환경으로 설치합니다

npm install -g serverless
npm install serverless-domain-manager --save-dev

Step 2. 서버리스 프레임워크의 환경설정에 도메인 설정 추가

serverless.yml 파일에서 custom > customDomain 으로 도메인을 설정합니다

plugins:
  - serverless-domain-manager

custom:
  defaultRegion: ap-northeast-2
  environment: ${file(env.yml):${self:provider.stage}, file(env.yml):dev}
  customDomain: ${file(env.domain.yml):${self:provider.stage}, file(env.yml):dev}

env.domain.yml 파일내용 (stage : dev, test, prod 에 따라서 다른 도메인을 적용할 수 있다)

dev:
  domainName: api.${self:provider.stage}-sample.com
  stage: ${self:provider.stage}
  basePath: v1
  certificateName: '*.${self:provider.stage}-sample.com'
  createRoute53Record: true
  endpointType: 'regional'

test:
  domainName: api.${self:provider.stage}-sample.com
  stage: ${self:provider.stage}
  basePath: v1
  certificateName: '*.${self:provider.stage}-sample.com'
  createRoute53Record: true
  endpointType: 'regional'

prod:
  domainName: api.${self:provider.stage}-sample.com
  stage: ${self:provider.stage}
  basePath: v1
  certificateName: '*.${self:provider.stage}-sample.com'
  createRoute53Record: true
  endpointType: 'regional'

NOTE : certificateName 에 미리 생성된 TLS 인증서가 있어야 한다

Step 3. 커스텀 도메인 생성

api gateway 용 커스텀 도메인을 생성해준다 

serverless create_domain

api gateway 메뉴의 사용자 지정 도메인 이름이 생성된다 (손으로 안만들고 serverless framework 로 만든다)

AWS 사용자 지정 도메인 설정

Step 4. 서버리스 배포

serverless deploy

만들어 놓은 소스를 배포한다

serverless.yml 에서 api gateway 를 설정한 예제

functions:
  add:
    handler: src/handlers/create.handler
    memorySize: 256
    timeout: 3
    events:
      - http:
          path: push
          method: post
          cors: true

NOTE : 배포를 해줘야지 커스텀도메인에 api gateway 기본경로 매핑이 적용된다

Step 5. 커스텀 도메인 삭제

serverless delete_domain

step 3 에서 만든 사용자 지정 도메인을 삭제한다

 

api gateway

반응형