AWS 인스턴스를 사용하는 방법은 정말 다양해서 무엇이 옳다, 그르다 할 수 없지만,
개인적인 생각으로는 EC2나 Lightsail 위에 작업중인 코드를 직접 올리지 않는 dockerize 방식이 마음에 들어 쭉 사용해오고 있다.
회사의 여러 이슈로, 지난 반년간 EC2 셋업을 여러번 하면서 세팅 명령어를 계속 구글링하는 나 자신을 발견하면서, 이를 내 블로그 글로 하나 정리해두는게 좋겠다는 생각을 했다.
나는 크게 2가지를 세팅하고, 세팅 이후에는 ssh 접속을 최소화 시키는 편이다.
1. docker 설치
2. gitlab-runner 설치
이렇게 2가지를 세팅해두면, gitlab CI 파이프라인 -> docker compose 로 이어지는 파이프라인을 통해서 ssh 접속을 최소화 시킬 수 있다. 옵션으로 docker 내에서 발생하는 에러로그 등을 보고 싶을때는 portainer 도 설정할 순 있지만, 이번 글에선 언급하지 않으려 한다.
1. docker 설치
출처: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04
아래 명령어를 쭉 따라치면, docker 가 active 되었다는 status를 볼 수 있다 (아래 그림 참조)
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo systemctl status docker
그리고 docker 를 처음 설치하면 sudo 권한이 필요한데, 이를 없애기 위해서 다음 명령어를 따라해보자.
sudo usermod -aG docker ${USER}
id -nG
그리고 터미널 접속을 한 번 빠져나왔다가 다시 접속해준다.
docker
docker ps
docker images
sudo 권한 없이 docker 명령어 실행이 가능해졌다.
2. gitlab-runner 설치
공식 문서: https://docs.gitlab.com/runner/install/
도커로 설치하는 방법도 있지만, 패키지로 설치하는 걸 추천한다.
도커로 시도해봤는데, 기존에 사용하던 방법과 달라서 그런지 개인적으로는 별로였다.
먼저 아래 명령어를 통해 architecture 정보를 알아보자
dpkg --print-architecture
아마 amd64 라고 나올 것이다.
그럼 이제 설치파일을 다운받고 설치해주자.
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb"
sudo dpkg -i gitlab-runner_amd64.deb
만약 architecture 가 amd64 가 아닌 arm64 로 나왔다면, 위의 명령어에서 amd64 -> arm64 로 변경해주면 된다.
설치가 완료되었다면, 아래 명령어를 쳐서 제대로 설치되었는지 확인하자.
sudo gitlab-runner list
command not found 같은 에러가 아닌 위와 같은 메시지가 떴다면 제대로 설치 된 것이다.
추가: gitlab runner 의 docker permission denied 문제
gitlab runner 를 처음 등록하고 파이프라인을 실행해보니, gitlab runner 의 권한 설정이 안되어서 docker 명령을 sudo 권한 없이 실행하지 못하는 이슈가 있었다.
(Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=lili-lgc-recommender%3Av1.0.0&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied)
ubuntu 에 대해서 권한 추가를 해주었듯 gitlab-runner 에 대해서도 해주면 된다.
sudo usermod -aG docker gitlab-runner
sudo service docker restart
'Developer > Data Science' 카테고리의 다른 글
[데이터 사이언티스트의 길] 비전공자도 데이터 직무로 취업할 수 있을까요? (0) | 2021.10.04 |
---|---|
Fast API 로 3시간만에 추천 서버 만들기 (implicit, docker, gitlabCI) (2) | 2021.06.08 |
[데이터 사이언티스트의 길] 컴퓨터를 전공하는 학생입니다. (0) | 2021.05.19 |
한달 10만원으로 추천시스템 구축하기 [AWS Personalize 도입 후기 / python SDK] (9) | 2021.04.15 |
AWS EC2/Lightsail 에 Gitlab-runner 세팅하기 (0) | 2021.02.09 |