목록ElasticBeanstalk (9)
오늘도 한 뼘 더

# 배경 모든 환경에서 Dockerfile을 사용하여 코드를 배포하기 위해서 Elastic Beanstalk(이하 EB)에 Dockerfile을 사용하여 Docker Application으로 올려보기로 하였다. # Docker Application 환경 구성 Elastic Beanstalk의 구성은 이전에 진행한 방법과 다를 것이 없었다. Application을 생성할 때 플랫폼을 Docker로 선택해야 한다는 것 외에는 다 같은 방식으로 진행하였다. 2021.11.11 - [DevOps & Infra/AWS] - [AWS] ElasticBeanstalk 생성하기 [AWS] ElasticBeanstalk 생성하기 AWS ElasticBeanstalk 이란? https://docs.aws.amazon.co..

# 배경 Elastic Beanstalk(이하 EB)에 구성된 AutoScaling을 통해 EC2가 추가되거나 줄어들 때 원하는 패키지가 설치되어 있게 하기 위해 AMI를 생성하여 지정 해당 AMI를 지정하는 방식을 구현했다. 테스트로 진행한 방법이 실제 적용을 하려고 하는 중에 적용이 되지 않고 배포가 제대로 되지 않는 문제가 발생하였다. # 문제 이전에 테스트를 진행한 방식 그대로 적용했지만, 제대로 동작하지 않았다. EB의 구성에는 AMI가 변경된 것으로 나왔는데 인스턴스에 접근하여 확인하니 코드가 제대로 배포되지 않았고 500번 에러가 발생하는 것을 볼 수 있었다. 원인은 AMI를 잘못 생성해서 그런 것이었다. 사용하고자 하는 EC2의 인스턴스 유형과 AMI를 생성할 때 사용한 EC2의 인스턴스 ..

# 배경 ElasticBeanstalk(이하 EB)을 통해서 만들어진 EC2에서 설치한 패키지를 인스턴스를 생성할 때 그대로 사용하고 싶었다. EB의 Autoscaling 설정으로 인해서 간혹 EC2가 종료되었다가 새로 올라가는 경우가 생기는데 이럴 때 설치했던 패키지를 사용하지 못하기 때문에 패키지가 설치되어서 올라갈 수 있는 방법이 필요했다. 그러다가 인스턴스를 통해서 AMI를 생성하는 방법을 알게 되었다. # AMI 생성하기 EC2 인스턴스를 선택 후 작업에서 이미지 및 템플릿에 이미지 생성을 누르면 AMI를 생성할 수 있다. 이미지 이름과 설명, 스토리지 크기를 설정할 수 있다. 이미지 생성을 클릭하고 EC2 > 이미지 > AMI를 보면 다음과 같이 생성이 되고 있는 것을 볼 수 있다. 대기 중에..

# 배경 wkhtmltopdf 패키지를 ElasticBeanstalk으로 배포되는 서비스에서 사용을 해야 해서 해당 서비스에 패키지가 설치되어야 하는 업무가 주어졌다. ## Buildfile Buildfile에서는 build.sh에 작성된 쉘스크립트를 실행시킨다. build.sh를 코드 상에서 만들어서 git을 통해 올리면 build.sh가 실행 상태가 되지 않아 chmod 명령어로 실행 가능한 파일로 만들어주는 게 필요하다. make: chmod u+r+x ./build.sh make: ./build.sh ## build.sh ElastiBeanstalk을 배포할 때 이미 wkhtmltopdf가 설치되어 있을 경우 설치가 안되고 Fail이 떠서 그전에 삭제하는 작업을 먼저 진행해 주었다. 삭제하다가 오..

# 배경 ElasticBeanstalk을 사용하여 배포를 진행할 때 서버에 명령어를 선행시키고 싶다. # Buildfile 단기간 실행되고 작업 완료 후 종료되는 명령에는 Buildfile 사용 # Procfile 프로세스가 계속 실행되어야 하는 명령어는 Procfile을 사용 ## 현재 상황 보통 ElasticBeanstalk으로 배포를 진행하면 Buildfile과 Procfile이 올라갔다는 내용이 이벤트에 떠서 볼 수 있었다. 코드에 Buildfile과 Procfile을 작성하지 않아도 자동으로 실행이 되어 EC2서버로 접속하여 `/var/app/current`에 접근하면 Buildfile과 Procfile의 내용을 확인할 수 있다. 기본 Buildfile build: go build -o bin/..

Jenkins 아이템 만들기 - 아이템 이름 입력 후 freestyle 프로젝트를 선택 소스코드 관리 사용할 Git 소스 코드에 대한 SSH 링크를 복사하여 붙여 넣는다. 이때 에러 메시지가 다음과 같이 뜨면 Credentials를 눌러 이전에 설정해두었던 credential을 입력하거나 Add를 눌러 권한을 부여한다. 2021.12.20 - [DevOps & Infra/Jenkins] - [Jenkins] Git Lab 레파지토리 연결하기 참고! Credential설정이 옳바르게 되었다면 다음과 같이 에러 메시지가 없어지게 된다. 빌드 설정 - AWS Elastic Beanstalk : 설정을 위해서는 jenkins plugin에서 AWS Elastic Beanstalk 설치를 진행한다. AWS cre..

배경 회사 동료와 같이 일을 하다가 동료가 ElasticBeanstalk 생성이 제대로 되지 않는 문제가 발생했음을 이야기 했다. 에러메세지에 따르면 AutoScaling Group이 없어 스택을 생성할 수 없다는 게 원인이었다. 해결방법 1. 일단 원인인 CloudFormation에 스택이 제대로 생성되지 않는 문제에 대해 찾아보았다. 이 부분은 아래 URL의 AWS 문서를 참고 하였다. https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-resource-did-not-stabilize AWS CloudFormation 문제 해결 - AWS CloudFormation..

배경 회사에서 사용 중이던 ElasticBeanstalk(EB)가 더 이상 필요하지 않아 종료해야 했다. 환경 종료를 진행했는데 상태가 "Suspend"로 계속되고 다음과 같은 에러 메시지가 나왔다. 에러 메세지를 바탕으로 검색을 한 결과 CloudFormation 스택이 지워지지 않아서 보안 그룹을 지울 수 없어 환경이 종료되지 않는 문제였다. 이를 해결하는 방법을 AWS에서 자세히 설명해주고 있어 따라서 진행을 해보았다. https://aws.amazon.com/ko/premiumsupport/knowledge-center/elastic-beanstalk-deletion-failure/ AWSEBSecurityGroup을 삭제하는 데 실패할 경우 AWS Elastic Beanstalk 환경 종료 또는..

AWS ElasticBeanstalk 이란? https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/Welcome.html AWS Elastic Beanstalk란 무엇입니까? - AWS Elastic Beanstalk AWS Elastic Beanstalk란 무엇입니까? Amazon Web Services(AWS)는 100개 이상의 서비스로 구성되어 있으며 각 서비스는 기능 영역을 나타냅니다. 다양한 서비스는 AWS 인프라 관리 방법의 유연성을 제공하는 docs.aws.amazon.com AWS ElasticBeanstalk(이하 EB)는 자동으로 환경EC2/인스턴스)을 실행하고 코드 실행에 필요한 AWS 리소스를 생성 및 구성한다. EB를 사용하기..