docker
-
Airflow on ECS 파이프라인 구축기프로젝트 회고록 2023. 7. 10. 23:38
기존 ec2 기반의 airflow 서비스가 예고 없이 죽어서 멈췄을때, 자동으로 다시 서비스가 시작될 수 있도록 컨테이너 서비스로 이전할 필요가 있다는 결론을 내렸습니다. 또한 기존에는 한 대의 ec2 서버에 airflow의 모든 구성 요소들이 다 돌아가고 있었다면, 각 서비스들을 분리하여 서로의 작업이 각자의 기능에 영향을 끼치지 않도록 ECS상에서 개별 서비스용 컨테이너를 생성하여 airflow를 멀티클러스터화 하려는 목적에 있었습니다. 처음 시작은 EKS를 활용한 파이프라인 구축을 목표로 했지만, 러닝커브를 고려해서 이전에 경험해봤던 ECS를 기반으로 한 파이프라인 구축을 시작했습니다. 이전의 ECS는 추천모델 서빙 용도로만 사용해봤었고, ECS 위에서 airflow를 구축하는건 처음이라 중간 중간..
-
[MySQL] docker 컨테이너 mysql 서버 error(feat. port 추가하기)DataBase/MySQL 2023. 3. 22. 23:05
docker mysql 이미지 빌드 후 컨테이너를 run하면, docker run -it image_id bash mysql 접속 시 아래와 같이 mysql이 실행되지 못하는 에러 발생 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) docker 프로세스를 확인해보면 port가 없는 것 확인 해결방안: 1. port를 추가하여 컨테이너 run 2. docker run {이미지} 실행 후 docker exec로 컨테이너 접속 - 이상 오늘의 삽질일기 끝! 여기저기 삽질도 해보고 날려도 먹으면서 배우는 게 결국 남는거다 - Z.Sabziller '쫄보의삽질' 블로그 탄생스토리가 궁금하다면: Git push..
-
[MySQL] mysql too many connection 에러 해결DataBase/MySQL 2023. 3. 3. 21:30
mysql이 ecs 컨테이너로 띄어있고 여러 서비스들(ex. airflow 클러스터)이 연결되어 있을 때, mysql이 허용가능한 클라이언트 수를 넘어가면 다음과 같은 connection 에러 발 문제상황 1. statsd service 추가 후 airflow webserver가 죽어버림 2. webserver log에 남겨진 에러메세지 sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (1040, 'Too many connections') 해결방법 => mysql task definition에서 docker run command 추가 --max_connections=10000 ref. https://stackoverflow.com/question..
-
[Docker] Dockerfile user 권한 변경 설정Docker 2023. 1. 2. 22:15
Dockerfile에서 base 이미지를 사용하고 필요한 패키치를 설치하려고 할 때, 이미지를 빌드 시 다음과 같은 permission 에러가 발생한다. => ERROR [2/4] RUN apt-get update 0.3s ------ > [2/4] RUN apt-get update: #5 0.263 Reading package lists... #5 0.272 E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied) base image에 따라 user권한이 바뀌어 있을 수 있으므로, FROM 코드 밑에 USER root를 추가하여 root 유저로 권한 변경 후 패키지 설치 코드를 작성하면 된다. FR..
-
[Airflow] 에어플로우 Main, MySQL 서버 IP 주소 변경으로 인한 Airflow woker 실행 문제 해결(Feat. Docker container)Airflow 2021. 9. 7. 23:50
🙊 배경설명 추천 Airflow를 1.10.9버전에서 1.10.14버전으로 upgrade하면서 Airflow main 서버와 Airflow MySQL 서버 IP 주소가 바뀌었고, 그로인해 이전 IP 주소를 보고 있던 worker는 실행되지 못하고 있었다. 🙈 문제점 keyword_train은 keyword_product 라는 ec2 서버 안의 컨테이너에서 worker로 실행되고 있었고, 새로운 서버의 IP 주소를 설정하기 위해서는 airflow를 처음 실행할 때 생성되는 airflow.cfg에 바뀐 주소값들로 변경해야 했다. 그러나, 문제는 처음 이미지로 빌드되어 컨테이너가 실행될 때 Dockerfile의 기본 명령어가 반영된다는 점이다. 즉, 컨테이너 실행의 베이스가 되는 Dockerfile 내부의 C..
-
Cassandra 3.11.3 버전 설치 Dockerfile 작성 및 컨테이너 실행(feat. sudo 명령어 X)DataBase/Cassandra 2021. 8. 2. 22:20
들어가기에 앞서.. Dockerfile 작성 중 중요한 포인트를 하나 발견했다! Dockerfile에는 sudo 명령어를 쓰지 않는다! bash: sudo: command not found 클라우드 환경에서 cassandra 관련 프로그램들을 설치할 때 sudo 명령어를 사용했어서 Dockerfile 작성 시 sudo를 붙였더니 error가 나서 구글링을 통해 Dockerfile에서는 sudo 명령어를 쓰지 않아도 됨을 알 수 있었다. https://stackoverflow.com/questions/39985480/unable-to-use-sudo-commands-within-docker-bash-sudo-command-not-found-is-di Unable to use sudo commands wit..
-
[Docker] Ubuntu 도커 우분투 설치 (feat. docker 이미지 pull하기)Docker 2021. 7. 16. 08:50
시스템 최신 업데이트 $ sudo apt update 사전 설치 진행 $ sudo apt install apt-transport-https ca-certificates curl software-properties-common Docker repository key 추가하기 $ 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 bionic stable" $ sudo apt update Docker 설치 $ sudo apt install docker-ce Docker d..
-
[Docker] RUN vs CMD vs ENTRYPOINT 실행 명령어 차이점 비교Docker 2021. 6. 26. 10:07
RUN Shell command 실행과 같이 이미지 빌드 과정에서 필요한 커맨드 실행하기 위해 사용 보통 이미지 위에 패키지를 설치하고, 새로운 레이어 생성(RUN 명령어 실행할 때 마다)할 때 사용 CMD default 명령어나 파라미터 설정에 사용 docker run 실행 시 별도의 command 주지 않으면, CMD 명령어가 default로 실행됨 docker run 실행 시 command 명령어(ex. echo)가 있다면, CMD 명령어는 무시됨(덮어쓰기) 즉, docker container 실행할 때 사용할 default 명령어를 설정함 여러개의 CMD 중 가장 마지막 CMD 1개만 실행 됨 ENTRYPOINT docker run 실행 시 수행하는 명령어로 container를 실행할 수 있게 설..