Code States/TIL

[0427] Section 2. 프로젝트 - AWS 배포 Day 1 - 마일스톤 1(Hello World 서버 컨테이너화)

ki1111m2 2023. 4. 27. 11:27

Achievement Goals

Day 1

  • WAS를 Docker Image로 빌드하여 컨테이너화 해야 합니다.
  • 컨테이너화한 WAS를 Registry에 Push해야 합니다.
  • 기존에 배포된 Docker Image를 활용/실행해야 합니다.
  • mongoDB 기준
  • Docker Compose를 이용해, WAS와 DB를 한 번에 실행해야 합니다.
  • WAS 이미지 빌드 및 push 자동화를 구현해야 합니다.
  • ECR 서비스를 이용하는 방법을 배웁니다

연습과제: Hello World 서버 작성

 

Goal

  • Fastify를 이용하여, 간단한 웹 서버를 만들고, HTTP 요청에 따른 응답을 확인합니다.

 

Fastify cli 설치

Fastify 프로젝트 생성



실행 확인

정상 작동 확인

배포시 로컬호스트는 노출되지 않으므로 Fastify address 0.0.0.0 설정

로컬호스트 주소에서 0.0.0.0으로 변경된 것 확인


실전과제: 서버 컨테이너화와 레지스트리로 push

 

Prerequisite

  • node.js(fastify)로 작성된 웹 서버를 실행하고, HTTP 요청을 통해 작동함을 확인할 수 있어야 합니다.
  • 도커 이미지/컨테이너/레지스트리의 개념을 이해하고 있어야 합니다.
  • Dockerfile을 통한 이미지 빌드를 할 수 있어야 합니다.

Bare minimum requirement

  • Fastify로 만든 Hello World 서버를 컨테이너 화하세요.
  • Dockerfile을 작성해야 합니다.
  • 빌드 후, 로컬에서 실행한 후, 서버가 잘 작동되는지 확인합니다.
  • tag는 1.0으로 작성합니다
  • AWS의 액세스 키와 시크릿을 이용해 CLI로 로그인하고, ECR에 이미지를 push 합니다.

 

도커 파일 작성

생성한 프로젝트를 이미지로 빌드

작동 확인

AWS ECR 생성

레포지토리 생성 확인

로그인 후 이미지 태그 지정 & 이미지 푸쉬

이미지 푸쉬 완료 확인


참고자료

도커 파일 작성

https://wooono.tistory.com/123

 

도커 ECR 레포지토리 생성 및 이미지 푸쉬

https://docs.aws.amazon.com/ko_kr/AmazonECR/latest/userguide/getting-started-cli.html#cli-create-repository