ECR에 컨테이너 이미지 올리기, Lambda 실행


  1. 프라이빗 레포지토리 생성 athena-express
  2. Dockerfile 생성
FROM node:16

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000
CMD [ "node", "index.js" ]
  1. .dockerignore 생성
node_modules
package-lock.json
  1. IAM에 AmazonEC2ContainerRegistryFullAccess 권한 부여
  2. Docker 실행중인지 확인
  3. 빌드 후 ECR 업로드
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 523139768306.dkr.ecr.ap-northeast-2.amazonaws.com
docker build -t athena-express . --platform=linux/amd64
docker tag athena-express:latest 523139768306.dkr.ecr.ap-northeast-2.amazonaws.com/athena-express:latest
docker push 523139768306.dkr.ecr.ap-northeast-2.amazonaws.com/athena-express:latest
  1. 함수 생성, 컨테이너 이미지로 배포
  2. API Gateway 트리거를 달아서 함수 실행
  3. 해당 엔드포인트로 접속
  4. 에러 발생
{"message":"Internal Server Error"} 
  1. 실행 로그 확인
{
  "errorMessage": "2022-07-24T04:46:35.238Z 98b1f53f-30ec-4c41-a8fa-31bb4586eba0 Task timed out after 3.08 seconds"
}

작업이 3초 이상 오래걸려서 람다가 꺼진듯.