본인 및 협업할 멤버는 이미 AWS 가입이 되어 있고, AWS Management Console Access 권한이 있다고 가정한다.
준비물
- AWS 계정 및 콘솔 액세스 권한
- Docker
- Homebrew
- Sourcetree(선택)
aws-sam-cli
우선 aws-sam-cli 설치가 필요한데, npm package는 deprecated 되었으므로 Homebrew로 설치한다.
$ brew tap aws/tap
$ brew install aws-sam-cli
$ sam —v // 설치 확인
혹시.. 버전 확인을 했을때 최신 버전을 설치했는데도 아래와 같은 알림이 뜬다면
moro-test-lambda-API ateam$ sam --version
A newer version of the AWS SAM CLI is available!
Your version: 0.2.11
Latest version: 0.47.0
See https://github.com/awslabs/aws-sam-local for upgrade instructions
sam version 0.2.11
link가 필요하다. brew link aws-sam-cli로 링크를 만들어주자.
moro-test-lambda-API ateam$ brew link aws-sam-cli
Linking /usr/local/Cellar/aws-sam-cli/0.47.0... 1 symlinks created
그룹 만들고 사용자 추가하기
Git credential & git clone
Git credential을 얻어보자.
CodeStar 프로젝트 생성
프로젝트가 생성중이므로 완료될때까지 조금 기다린다.
위 화면에서 벗어났다면, CodeStar>상단 connect tools를 클릭하면 다시 주소를 확인할 수 있다.
git clone [주소]로 받아도 되지만, 소스트리를 사용해보자.
붙여넣기 하고 나면 username과 password를 입력하라고 하는데, 아까 얻은 Git credential정보를 입력하면 된다.
그러면 clone이 완료된다.
로컬에서 실행하기
이제 받은 코드를 로컬에서 실행시켜보자.
도커가 켜져있어야 한다.
터미널에서 프로젝트 디렉토리로 가서 명령어를 실행한다.
참고로 npm install은 할 필요 없다..
$ sam local start-api -p 4000
실행하는데 조금 걸린다.
이제 http://localhost:4000 으로 접속하면 아래와 같은 페이지를 만날 수 있다.
혹시나.. 아래와 같은 ERROR: None of the Serverless function in your SAM template were able to be mounted 에러가 뜬다면
SAM이 제대로 설치되지 않을 걸 수 있다.
$ sam -v 했을때 최신버전을 설치했는데도 최신버전이 있으니 설치하라고 뜬다면... 내가 겪은 문제와 같은 문제일 듯?
$ brew link aws-sam-cli 해주면 된다.
다시 $ sam local start-api -p 4000 하면 정상 화면을 확인할 수 있다.
배포하기
코드를 약간 수정해보자. 변화를 알 수 있도록 public/index.html의 Congratulations! 옆에 "moro"라는 문자열을 추가했다.
localhost:4000 에서 잘 바뀌었는지 확인해보자.
이제 master 브랜치에 커밋후 푸시한다.
그후 마스터에 푸시하고 Codestar로 가보자.
우측 화면을 보면 어떤 단계가 in progress 파란색으로 변하면서 배포 진행상황을 알수있다.
생각보다 꽤 걸리더라...
Succeeded되면 endpoint로 가서 변경사항이 적용되었는지 확인해보자.
정상이라면 로컬에서와 같이 코드 변경사항이 적용되어 있을 것이다.
'Web development > Infra' 카테고리의 다른 글
Azure Pipeline node.js 람다 배포 템플릿 만들기 (0) | 2020.09.11 |
---|---|
[Azure to AWS] Azure Pipeline으로 AWS Lambda 배포하기 (0) | 2020.06.19 |
[Azure to EKS] Azure App Service -> k8s 이전시 환경변수 변환 스크립트 (0) | 2020.06.19 |
[EKS] 쿠버네티스에 AWS Credential 추가하기 (2) | 2020.06.10 |
[AWS] CodeStar로 브랜치별 production/staging 자동배포 환경 만들기 (0) | 2020.04.13 |
댓글