Amazon EFS 볼륨을 Elastic Beanstalk 환경의 애플리케이션 디렉터리에 마운트하려면 어떻게 해야 합니까?
3분 분량
0
Amazon Elastic File System(Amazon EFS) 볼륨을 AWS Elastic Beanstalk 환경의 애플리케이션 디렉터리에 마운트하려고 합니다.
간략한 설명
다음의 해결 방법은 Amazon Linux 1 기반의 플랫폼에 Amazon EFS 볼륨을 마운트하기 위한 일반적인 지침을 제공합니다. 이 해결 방법은 PHP 솔루션 스택을 사용합니다. 다른 솔루션 스택을 사용하는 경우, 다음의 옵션 중 해당 솔루션 스택에 적합한 애플리케이션 디렉터리와 스테이징 디렉터리를 선택하십시오.
----------------------------------------------------- Solution stack Application directory Staging directory Nodejs /var/app/current /tmp/deployment/application PHP /var/app/current /var/app/ondeck Ruby (Passenger) /var/app/current /var/app/ondeck Ruby (Puma) /var/app/current /var/app/ondeck Java with Tomcat /usr/share/tomcat*/webapps/ROOT /tmp/deployment/application/ROOT Java SE /var/app/current /var/app/staging Python /opt/python/current/app /opt/python/ondeck/app Go /var/app/current /var/app/staging Single Container Docker /var/app/current /var/app/staging Multi-Container Docker /var/app/current /var/app/staging -----------------------------------------------------
**중요:**Elastic Beanstalk 애플리케이션을 배포하면 /var/app/current의 콘텐츠가 /var/app/current.old로 이동합니다. Amazon EFS 볼륨을 애플리케이션 디렉터리에 직접 마운트할 수는 없습니다. 현재 배포된 소스 번들이 애플리케이션 디렉터리로 이동합니다. Amazon EFS 볼륨을 /var/app/current에 마운트하면 배포가 완료된 후 해당 볼륨이 /var/app/current.old로 이동합니다.
eb-activity.log 출력의 예:
=============================== [2020-02-12T02:28:18.237Z] INFO [3159] - [Application deployment Sample Application@1/StartupStage1/AppDeployEnactHook/01_flip.sh] : Starting activity... [2020-02-12T02:28:18.431Z] INFO [3159] - [Application deployment Sample Application@1/StartupStage1/AppDeployEnactHook/01_flip.sh] : Completed activity. Result: ++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir + EB_APP_STAGING_DIR=/var/app/ondeck ++ /opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir + EB_APP_DEPLOY_DIR=/var/app/current + '[' -d /var/app/current ']' + mv /var/app/current /var/app/current.old + mv /var/app/ondeck /var/app/current + nohup rm -rf /var/app/current.old ===============================
해결 방법
Amazon EFS 볼륨을 Elastic Beanstalk 환경의 애플리케이션 디렉터리에 마운트하려면 다음 단계를 완료하십시오.
- 스테이징 디렉터리에서 소스 번들의 압축이 풀렸는지 확인합니다. 자세한 내용은 Elastic Beanstalk 환경에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 로그 보기를 참조하십시오.
eb-activity.log 출력의 예:
참고:****/opt/elasticbeanstalk/hooks/appdeploy/pre/ 및 .ebextensions의 모든 appdeploy pre 후크는 스테이징 디렉터리에서 실행됩니다.=============================== [2020-02-12T02:28:16.336Z] INFO [3159] - [Application deployment Sample Application@1/StartupStage0/AppDeployPreHook/01_unzip.sh] : Starting activity... [2020-02-12T02:28:16.631Z] INFO [3159] - [Application deployment Sample Application@1/StartupStage0/AppDeployPreHook/01_unzip.sh] : Completed activity. Result: ++ /opt/elasticbeanstalk/bin/get-config container -k app_user + EB_APP_USER=webapp ++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir + EB_APP_STAGING_DIR=/var/app/ondeck ++ /opt/elasticbeanstalk/bin/get-config container -k source_bundle + EB_SOURCE_BUNDLE=/opt/elasticbeanstalk/deploy/appsource/source_bundle + rm -rf /var/app/ondeck + /usr/bin/unzip -d /var/app/ondeck /opt/elasticbeanstalk/deploy/appsource/source_bundle Archive: /opt/elasticbeanstalk/deploy/appsource/source_bundle creating: /var/app/ondeck/.ebextensions/ inflating: /var/app/ondeck/.ebextensions/logging.config inflating: /var/app/ondeck/scheduled.php inflating: /var/app/ondeck/index.php inflating: /var/app/ondeck/cron.yaml inflating: /var/app/ondeck/styles.css extracting: /var/app/ondeck/logo_aws_reduced.gif + chown -R webapp:webapp /var/app/ondeck + chmod 775 /var/app/ondeck ===============================
- 소스 번들의 루트 디렉터리에 .ebextensions 폴더를 생성하십시오.
- Amazon EFS 볼륨을 /efs와 같은 특정 디렉터리에 마운트하려면 디렉터리에 형식이 지정된 구성 파일(YAML 또는 JSON)을 추가합니다.
- Amazon EFS 볼륨을 애플리케이션 디렉터리에 마운트하려면 스테이징 디렉터리에 대한 symlink를 생성합니다. /efs에서 스테이징 디렉터리를 가리키는 symlink를 생성하려면 container_commands를 사용하여 .ebextensions 폴더에 .config 파일을 생성합니다.
예:
**참고:**Elastic Beanstalk 환경에서 배포하는 동안 appdeploy enact 후크를 실행하면 스테이징 디렉터리 콘텐츠가 애플리케이션 디렉터리로 이동합니다. 예를 들어, PHP 솔루션에서 flip.sh 스크립트는 스테이징 디렉터리의 내용을 애플리케이션 디렉터리로 이동합니다. flip.sh 스크립트는 **/opt/elasticbeanstalk/hooks/appdeploy/enact/**에 있는 AppDeployEnactHook의 첫 번째 스크립트입니다.container_commands: 01_symlink: command: ln -s /efs /var/app/ondeck/
댓글 없음
관련 콘텐츠
- 질문됨 5달 전lg...
- 질문됨 일 년 전lg...
- 질문됨 2년 전lg...
- 질문됨 한 달 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 2년 전