Notice
Recent Posts
Recent Comments
Link
반응형
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

고양이발일기

AWS ElasticBeanstalk mysqlclient 에러 해결 본문

개발 일기

AWS ElasticBeanstalk mysqlclient 에러 해결

sowish 2022. 1. 30. 02:52
반응형

사건 개요

Django 배포를 위해 Elastic Beanstalk 사용 도중 requirements.txt에서 요구하는 mysqlclient 2.1.0 버전이 말썽을 일으킴 ㅠㅠ

 

로그에 계속 dependency install 문제라고 뜸

 

Instance deployment failed to install application dependencies. The deployment failed.
Instance deployment failed. For details, see 'eb-engine.log'.

 

계속 이러한 에러가 떠서 결국 eb-engine.log 파일을 다운 받아서 열어보기로 했다.

참고로 eb-engine.log 같은 로그 파일은 환경 - 로그 에서 다운받을 수 있다.

 

 

eb-engine.log 파일을 까보니 

Collecting mysqlclient==2.1.0 Downloading mysqlclient-2.1.0.tar.gz (87 kB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'error'
.
.
[ERROR] An error occurred during execution of command [app-deploy] - [InstallDependency]. Stop running the command. Error: fail to install dependencies with requirements.txt file with error Command /bin/sh -c /var/app/venv/staging-LQM1lest/bin/pip install -r requirements.txt failed with error exit status 1. Stderr: ERROR: Command errored out with exit status 1:
.
.
/bin/sh: mysql_config: command not found
/bin/sh: mariadb_config: command not found
/bin/sh: mysql_config: command not found Traceback (most recent call last):

 

mysqlclient가 깔리지 않는 문제였다...

한 4시간 가량 삽질을 한 결과 Amazon Linux 2 AMI에는 mysql이 포함되어있지 않아서 mariadb-devel로 설치를 해줘야한다는 것이었다.

 

그래서 mysqlclient를 깔기 전 설치를 해줘야하는 패키지를 설정을 해두었다.

 

packages:
  yum:
    python3-devel: []
    mariadb-devel: []

 

해당 코드는 .ebextensions 폴더에 넣어두면 알아서 설치를 완료한다.

이 과정에서 ... extensions의 스펠링을 하나 틀려.... 한시간 가량을 버렸다 ... ^-^.... 

 

위의 스크린샷과 같이 필요한 config들을 넣어주고 다시 배포하면 이 문제는 해결이다!

비록 다른 문제가 다시 생겨버렸지만 .....

참고로 00, 01과 같이 해준 이유는 ebextensions는 파일의 순서대로 실행시키기에 스펠링별로 정렬되는 것을 막기 위함이다.

 

🥲🥲🥲

그렇게 mysqlclient 빌드는 해-결 했다!

하지만 .... 더 큰 산이 남아있었음을 ... 

반응형
Comments