[typescript] 타입스크립트와 클라우드 플랫폼의 컨테이너 오케스트레이션 설정 방법

최근 프로젝트에서 타입스크립트로 개발하고 있는데, 해당 애플리케이션을 클라우드 플랫폼에 올리고자 합니다. 여기서는 컨테이너 오케스트레이션을 설정하는 방법에 대해 살펴보겠습니다.

1. 도커 이미지 빌드

가장 먼저 해야 할 일은 도커 이미지를 빌드하는 것입니다. 타입스크립트 프로젝트를 빌드하고 결과물을 도커 이미지로 만들어야 합니다. 이를 위해 Dockerfile을 작성하고 타입스크립트 프로젝트를 빌드한 후 그 결과물을 도커 이미지에 추가합니다.

FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

2. 컨테이너 오케스트레이션 설정

쿠버네티스

클라우드 플랫폼으로 쿠버네티스를 사용하는 경우, 쿠버네티스 매니페스트 파일을 작성하여 컨테이너를 배포하고 관리할 수 있습니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ts-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: ts-app
  template:
    metadata:
      labels:
        app: ts-app
    spec:
      containers:
        - name: ts-app
          image: <도커 이미지 경로>
          ports:
            - containerPort: 3000

AWS ECS

AWS ECS를 사용하는 경우, 타입스크립트 애플리케이션을 배포하기 위한 Task Definition을 작성해야 합니다.

{
  "family": "ts-app",
  "containerDefinitions": [
    {
      "name": "ts-app",
      "image": "<도커 이미지 경로>",
      "portMappings": [
        {
          "containerPort": 3000,
          "hostPort": 3000
        }
      ]
    }
  ],
  "networkMode": "bridge"
}

클라우드 플랫폼에 따라 설정 방법이 다를 수 있으므로 해당 플랫폼의 공식 문서를 참고하는 것이 좋습니다.

결론

타입스크립트 애플리케이션을 빌드하고 컨테이너 오케스트레이션으로 클라우드 플랫폼에 배포하는 것은 복잡할 수 있지만, 예시를 통해 설정하는 방법을 배울 수 있습니다.

도커 공식 문서쿠버네티스 공식 문서를 참고하여 더 자세한 내용을 확인할 수 있습니다.