Elastic Beanstalk Amazon Linux 2 마이그레이션 방법 (Migrating your Elastic Beanstalk Linux application)

남양주개발자

·

2021. 7. 20. 15:22

728x90
반응형

기존에 사용중인 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 플랫폼으로 환경 생성한 후 배포를 진행합니다.

AL2 플랫폼으로 환경 생성
정상적으로 마이그레이션 완료된 모습

 

728x90
반응형
그리드형

이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

💖 저자에게 암호화폐로 후원하기 💖

아이콘을 클릭하면 지갑 주소가자동으로 복사됩니다