기존에 사용중인 Amazon Linux AMI 플랫폼이 Deprecated됨에 따라서 Amazon Linux 2로 마이그레이션을 진행하게 되었습니다.
개발환경
- Node@12.21.0
- Nuxt@2.11.0
as-is
Node.js running on 64bit Amazon Linux/4.17.7
to-be
Node.js 12 running on 64bit Amazon Linux 2/5.4.2
기존 구성 파일
files:
# Found at https://stackoverflow.com/a/42096244/9074640
# Runs right before `npm install` in '.../50npm.sh'
"/opt/elasticbeanstalk/hooks/appdeploy/pre/49_yarn.sh" :
mode: "000775"
owner: root
group: root
content: |
#!/bin/bash
# install node
curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -;
# install yarn
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo;
yum -y install yarn;
# install node_modules with yarn
app="$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir)";
cd "${app}";
echo "Inside ${app}, about to run yarn."
yarn --production;
변경된 구성 파일
Elastic Beanstalk Amazon Linux 2에서는 기존 Amazon Linux AMI에서 사용하는 방식과는 조금 다르게 platform hooks를 활용해서 상황에 맞는 로직을 작성할 수 있습니다. 이전에 EB에서 npm을 사용하지 않고 yarn을 사용하기 위해 .ebextensions에서 yarn.config를 작성해서 처리했다면 AL2에서는 prebuild hook에서 처리하는 방식으로 변경해야 합니다.
EB 라이프사이클은 아래와 같습니다.
# .platform/hooks/prebuild/yarn.sh 생성
#!/bin/bash
# install node
curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -;
# install yarn
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo;
yum -y install yarn;
# install node_modules with yarn
app="$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir)";
cd "${app}";
echo "Inside ${app}, about to run yarn."
yarn --production;
.platform/hooks/prebuild/yarn.sh 파일에 권한을 부여합니다.
chmod +x .platform/hooks/prebuild/yarn.sh
구성 파일을 변경한 후 EB AL2 플랫폼으로 환경 생성한 후 배포를 진행합니다.
'개발 > AWS' 카테고리의 다른 글
AWS HTTPS 인증서 발급받는 방법 (AWS Certificate Manager(ACM) SSL) (0) | 2021.02.13 |
---|---|
AWS S3 정적 웹사이트 호스팅하는 방법 (Hosting a static website on Amazon S3) (1) | 2020.11.08 |
AWS CloudFront에서 사용자 기반 정보 사용하는 방법 (feat. CloudFront-Viewer) (2) | 2020.10.05 |
Elastic Beanstalk(EB)에 HTTPS 적용하는 방법 (0) | 2020.09.17 |
코그니토 커스텀 속성 삭제하는 방법 (AWS Cognito delete-custom-attributes) (2) | 2020.09.11 |
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.