GitLab - CI파일 작성 및 push, 배포 성공 확인

StrayCat·2026년 3월 15일

AWS 세팅을 마쳤다면, 다시 깃랩으로 돌아와주자


1. AWS ACCESS KEY 변수 등록

Setting > CI/CD 로 들어가자

여기서 Variables탭을 열어보자

여기에 이전 포스팅에서 만든 project-01-user의 액세스 키와 비밀번호를 변수로 입력해주자

추가된 상태


2. GitLab CI 파일 생성

IntelliJ로 돌아와서 깃랩 CI파일을 생성해보자

루트에 .gitlab-ci.yml 생성해주자

파일 내용은 다음과 같이 입력해준다

services:
  - docker:dind # docker:latest와 버전이 함께 업데이트됨
stages:
  - build jar
  - build and push docker image
  - deploy
variables:
  APPLICATION_NAME: "01"
  TAG_NAME: "latest"
  DOCKER_IMAGE: "group-13204911/project-01" # AWS ECS 프라이빗 리포지토리 이름과 동일하게
build:
  image: eclipse-temurin:17-jdk-jammy
  stage: build jar
  script:
    - chmod +x gradlew
    - ./gradlew clean build
  artifacts:
    paths:
      - build/libs/*.jar
docker build:
  image: docker:latest
  stage: build and push docker image
  rules:
    - if: $CI_COMMIT_BRANCH == "master" || $CI_COMMIT_REF_NAME == "master"
      variables:
        TAG_NAME: "latest"
    - if: $CI_COMMIT_BRANCH == "develop" || $CI_COMMIT_REF_NAME == "develop"
      variables:
        TAG_NAME: "develop"

  script:
    - apk add --update --no-cache curl py3-pip py3-virtualenv
    - python3 -m venv /tmp/venv
    - source /tmp/venv/bin/activate
    - pip install awscli
    - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID
    - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY
    - aws configure set region ap-northeast-2
    - docker build -t $DOCKER_IMAGE .
    # ECR 리포지토리 - 푸시 명령에서 확인 가능
    # docker tag $DOCKER_IMAGE:latest 730335597998.dkr.ecr.ap-northeast-2.amazonaws.com/$DOCKER_IMAGE:$TAG_NAME
    - docker tag $DOCKER_IMAGE:latest 336805808295.dkr.ecr.ap-northeast-2.amazonaws.com/$DOCKER_IMAGE:$TAG_NAME
    # aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 730335597998.dkr.ecr.ap-northeast-2.amazonaws.com
    - aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 336805808295.dkr.ecr.ap-northeast-2.amazonaws.com
    # docker push 730335597998.dkr.ecr.ap-northeast-2.amazonaws.com/$DOCKER_IMAGE:$TAG_NAME
    - docker push 336805808295.dkr.ecr.ap-northeast-2.amazonaws.com/$DOCKER_IMAGE:$TAG_NAME
deploy:
  image: python:3.9-slim
  stage: deploy
  script:
    - python3 -m venv /tmp/venv
    - source /tmp/venv/bin/activate
    - pip install awscli
    - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID
    - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY
    - aws configure set region ap-northeast-2
    - aws ecs update-service --cluster project-cluster --service project-01-service --task-definition project-01-task:1 --force-new-deployment

작성이 끝나면 PUSH를 해보자


3. PUSH

변경내용들을 Commit and Push해주자

커밋된 상태

Build - Pipelines 클릭

깃랩 ci파일을 설정해두어서 파이프라인이 돌아가는 모습이다

작업에 성공했다면 배포된 모습을 확인해주자

ecs > 클러스터 > 서비스 조회후 로드밸런서를 조회해보자

우하단 DNS이름이 접속경로다

http://project-01-lb-2036043999.ap-northeast-2.elb.amazonaws.com/sample

컨트롤러에 입력했던 내용이 출력되면 배포 정상 성공

확인했으니 요금부과 안되도록 다음 포스팅에서 다시 내리는 작업 시행할 예정

profile
알면 좋은 것보단 잊어버리기 싫은 것들을 기록합니다.

0개의 댓글