Fargate란?
AWS Fargate는 기본 인프라를 관리할 필요 없이 컨테이너를 배포하고 관리할 수 있는 컴퓨팅 엔진이다.
=> 컨테이너만 올리면 분산처리하여 서버가 꺼지지 않게 배포를 도와준다.
하러 가기 이전에 파게이트는 ecs의 기본적인 개념을 알 필요가 있다.
클러스터에서 컨테이너를 쉽게 실행, 중지 및 관리할 수 있게 해주는 확장성과 속도가 뛰어난 컨테이너 관리 서비스
클러스터란 말 그대로 군집이다. 그말인 즉슨 ecs에서 서비스, 작업정의가 작업을 하는 논리적 공간, 그룹이다.
작업정의는 ecs에서 최소 실행 단위이며, 태스크를 실행을 위한 설정과, 컨테이너에 대한 정보를 포함하고 있다. 그리고 클러스터에 종속되어 있지 않다. 작업정의를 선언하면 다른 클러스터에서 똑같이 생성을 할 수 있다.
컨테이너를 실행하는 최소의 단위이며 서비스에 의하여 실행이 됩니다. 그리고 클러스터 안에 여러 작업을 가진다.
해당 그림처럼 작업정의는 따로 선언을 하고, 필요한 클러스터 안에서 선언된 작업정의를 가져와 작업을 실행 합니다.
서비스는 작업정의를 이용해, 타스크의 작업개수, 배포방식 등등 여러 작업에 대한 설정들을 가져와 관리를 한다.
Docker deamon과 ECS agent가 실행 중인 EC2 인스턴스이다.
외부포트는 로드밸런서의 리스너에서 허용을 했지만 로드밸런서에서 요청을 하는 포트를 컨테이너에서 킨 서버와 통신을 하기 위해 인바운드를 열어줘야 한다.
1. "ec2"로 이동하여 왼쪽 탭 "로드밸런서"로 가서 내가 생성한 로드밸런서 선택
2. 하단의 "설명"에서 "보안" 메뉴 안에 연결된 "보안그룹"에 들어가서 컨테이너에서 열은 포트를 "인바운드 규칙"을 추가한다.
next js 기준
standard_init_linux.go:219: exec user process caused: exec format error
(일반 도커 파일 방식으로 하면 셀 명령을 못잡는 경우가 있어 초기 이미지를ecs에서 제공하는 방식을 사용하였다.)
FROM public.ecr.aws/bitnami/node:14.15.1-debian-10-r8
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn
COPY . .
RUN yarn build
EXPOSE 3030
CMD ["yarn", "start"]
계속 글을 수정하도록 하겠습니다.
지금까지 봐주셔서 감사합니다.