본문 바로가기

개발일지/TIL

[230801] [파이널] 기획 및 S.A 작성 (5)

CI/CD 스펙 선정

✔ Git Action

💬 코드가 저장된 곳에서 CI/CD를 한 번에 처리할 수 있다. 제한된 자원을 가지고 있는 우리에겐 비용이 들지 않는다는 것도 큰 장점으로 다가왔다. 프로젝트 개발과 성능을 개선하는 데에 집중을 하는 것이 목표였기에 빠른 구축도 중요하게 작용했다.

 

✔ Docker

💬 Docker는 다양한 환경에서 동일한 동작을 보장하는 것이 큰 장점이라고 생각한다. AWS Freetier부터 사용을 해서 상황에 따라 Scale-up을 통한 성능 향상을 생각하고 있었다. 그러다 보니 매번 환경설정을 다시 해주는 것보다 Docker 이미지를 사용해 컨테이너에서 동일하게 동작할 수 있도록 하려고 한다.

 

✔ ECR

💬 Git Action과 EC2 사이에서 Docker 이미지의 공유 저장소가 필요하게 되었다. 우리 프로젝트는 우선 AWS 환경을 많이 사용하기 때문에 CloudWatch를 통해 한 곳에서 로그와 이벤트를 모니터링할 수 있다는 장점이 있다. 실행 파일이 외부에 공개되면 안 되기 때문에 AWS 정책을 통해 개인 레포지토리를 설정도 큰 장점이다.

CI/CD 구성에 있어서 이슈

✔ Git Action

💢 ECR에 Docker 이미지를 넣을 때 권한 문제

✅ Git Action에서 ECR 로그인이 필요하다는 것을 알았다. 로그인을 해주니 해결이 되었다.
      ➡ name: Login to Amazon ECR
          id: login-ecr
          uses: aws-actions/amazon-ecr-login@v1

 

✔ EC2에서 Docker

💢 ECR에서 Docker pull을 받을 때 권한 이슈가 발생을 했다. 

✅ AWS 로그인 정보 입력과 Docker 로그인을 해서 해결을 했다.
      ➡ aws configure
      ➡ aws ecr get-login-password --region ap-northeast-2
      ➡ docker login -u AWS -p {Password} {ECR_URL}

💢 ubuntu 유저에게 Docker 명령어 권한 부여가 안 되는 문제
      ➡ sudo usermod -aG docker ubuntu 명령어 사용해도 적용이 안됨

✅ docker.sock 파일의 권한을 다른 유저에게도 권한을 부여해서 해결
      ➡ sudo chmod 666 /var/run/docker.sock