Elastic Beanstalk를 사용하여 WSGI 앱을 AWS에 잘못 배포


8

AWS 포럼에 대한 교차 링크

WSGI를 사용하여 간단한 Python 웹 서비스를 개발했으며 Elastic Beanstalk를 사용하여 AWS 클라우드에 배포하고 싶습니다. 내 문제는 Elastic Beanstalk 구성에서 지정한 모든 옵션을 클라우드에서 올바르게 구성 할 수 없다는 것입니다.

배포에는 Elastic Beanstalk CLI 유틸리티를 사용합니다. eb init명령 을 실행 하고 필요한 매개 변수를 설정했습니다. 그런 다음 이름 .elasticbeanstalk이 지정된 디렉토리 가 소스 트리에 작성되었습니다. 배포에 사용되는 두 개의 구성 파일 즉 config, 및 optionsettings. 다른 옵션 중 후자에는 /etc/httpd/conf.d/wsgi.conf인스턴스에서 업데이트해야하는 WSGI 구성이 포함 됩니다. 일부 조정 후 파일의 설정은 다음과 같습니다.

[aws : elasticbeanstalk : 응용 프로그램 : 환경]
DJANGO_SETTINGS_MODULE = 
PARAM1 = 
PARAM2 = 
PARAM4 = 
PARAM3 = 
PARAM5 = 

[aws : elasticbeanstalk : 컨테이너 : python]
WSGIPath = handler.py
NumProcesses = 2
정적 파일 = / static =
NumThreads = 10

[aws : elasticbeanstalk : 컨테이너 : python : 정적 파일]
/ 정적 = 정적 /

[aws : elasticbeanstalk : 호스트 관리자]
LogPublicationControl = 거짓

[aws : 자동 스케일링 : 시작 구성]
인스턴스 유형 = t1.micro
EC2KeyName = zmicier-aws

[aws : elasticbeanstalk : 응용 프로그램]
응용 프로그램 상태 확인 URL = 

[aws : 자동 확장 : asg]
최대 크기 = 10
최소 크기 = 1
사용자 정의 가용 영역 = 

[aws : elasticbeanstalk : 모니터링]
비정상 인스턴스 자동 종료 = true

[aws : elasticbeanstalk : sns : 주제]
알림 엔드 포인트 = 
알림 프로토콜 = 이메일

환경을 시작하거나 업데이트 할 때 이러한 옵션 중 일부가 고려되지는 않습니다. 따라서, 내가 업데이트 할 때 NumThreadsNumProcesses, 각각의 매개 변수 변경 얻을 wsgi.conf것으로 예상한다. 하지만이 쓸 어떤 WSGIPathStaticFiles매개 변수, 나는 자동으로의 각각의 값을 변경할 수 아니에요 wsgi.conf그들이 남아

Alias /static /opt/python/current/app/
WSGIScriptAlias / /opt/python/current/app/application.py

그것은 나를 미치게합니다. 또한 git aws.push다음과 같은 .ebextensions/python.config파일 내용을 사용 하고 응용 프로그램을 배포 할 때 응용 프로그램 에서 지정한 옵션 중 어느 것도 배포에 영향을 미치지 않습니다.

option_settings :
     -네임 스페이스 : aws : elasticbeanstalk : container : python
       option_name : WSGIPath
       값 : mysite / wsgi.py
     -네임 스페이스 : aws : elasticbeanstalk : container : python
       option_name : NumProcesses
       값 : 5
     -네임 스페이스 : aws : elasticbeanstalk : container : python
       option_name : NumThreads
       값 : 25
     -네임 스페이스 : aws : elasticbeanstalk : container : python : staticfiles
       option_name : / static /
       값 : app / static / 

구성에서 지정한 모든 매개 변수, 즉 WSGI 경로와 정적 데이터 경로를 AWS가 사용하도록하려면 어떻게해야하는지 궁금합니다.


이 문제가 있습니다. WSGIPath를 지금 업데이트 할 수 없으며 새 환경을 만드는 데 의존했습니다. 이것은 심각한 "WTF"영역입니다 ...
15:37에

답변:


1

Docker 컨테이너를 구축하고 Elastic Beanstalk에 배포하는 것을 고려할 수 있습니다. AWS는 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/docker-singlecontainer-deploy.html#docker-singlecontainer-pythonsamplehttps://docs.aws.amazon.com/에 Python 샘플이 있으며 전체 github 저장소는 https : //에 있습니다. github.com/aws-samples/eb-py-flask-signup/tree/docker

로컬에서 테스트하기가 훨씬 쉬우 며 유연성이 훨씬 뛰어납니다. 경험에 비추어 볼 때, 프레임 워크와 싸우는 데 시간을 투자하면 인생을 편하게 할 수 있고 접근 방식을 바꿀 시간입니다. 그 시점에 도달했다고 말하고 싶습니다.

또한 Fargate와 같은 앱으로 앱을 쉽게 마이그레이션 할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.