목록EC2 (6)
오늘도 한 뼘 더

# 배경 현재 회사에서 CI/CD 툴로 Jenkins를 사용 중이다. 최근 Jenkins가 올라가 있는 EC2서버의 스토리지가 차서 Jenkins에서 빌드, 배포가 제대로 동작하지 않는 문제가 발생했다. EC2 스토리지를 임시방편으로 늘리고 스토리지가 계속 늘어나는 원인을 찾다가 docker registry를 사용하는데 여기서 스토리지를 차지한다는 것을 알게 되었다. # 문제 /registy 볼륨에 쌓이는 데이터들이 지워지지 않아서 스토리지가 계속 차고 있었다. # 원인 및 해결 방법 ## 원인 도커 이미지는 여러 개의 태그를 가질 수 있고, 각 이미지는 고유한 다이제스트 값을 갖는다. registry에 같은 이미지로 계속 푸시하게 되면 registry의 이미지넌 여러 개의 다이제스트를 갖게 된다. 태그..

# 배경 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이 떠서 그전에 삭제하는 작업을 먼저 진행해 주었다. 삭제하다가 오..

# 배경 jenkins에서 프로젝트 빌드/배포를 하다가 모든 배포가 에러가 나면서 진행이 되지 않았다. 확인해본 결과 공간이 부족하다는 에러 메시지를 확인 # 문제 내용 jenkins docker를 올려놓은 EC2 인스턴스의 볼륨 크기가 작아서 발생한 문제 jenkins에서 빌드 할 때 모듈을 다운로드하거나 하면 CPU를 많이 차지한다고 한다 # EC2 볼륨 수정 1. 해당 EC2의 볼륨 수정을 진행해서 크기를 수정한다. 2. EC2에 직접 접근하여 이 볼륨을 적용시켜줘야한다. 1) 해당 EC2에 접근 ssh ubuntu@{EC2 IP} 2) 어떤 파티션의 크기를 조정해야 하는지 확인 $ lsblk 3) Linux 파티션 크기 조정 $ sudo growpart /dev/nvme0n1 1 4) 파티션 크기..

인스턴스 생성 AWS에 접속하여 EC2를 검색하여 인스턴스 시작 클릭한다. 1. 서버 유형 선택 어떠한 서버를 생성할지 선택한다. 2. 인스턴스 유형을 선택한다 CPU, 메모리, 스토리지 등의 유형에 따라 나뉘어 있고 t는 유형을 뒤에 숫자는 세대를 나타낸다. 3. 보안 그룹 구성 3, 4, 5 단계의 경우 선택한 인스턴스 유형에 따라 기본값이 설정이 되고 따로 값을 변경하지 않을 경우 패스! 필자의 경우 기본 값으로 설정을 진행하였다. 보안 그룹은 어떠한 ip주소를 접근 가능하게 할 것인지 설정해준다.(방화벽 기능) 처음에는 SSH 유형에 소스를 내 IP로 지정하였다. 4. 인스턴스 키 발급 인스턴스 생성이 완료되면 인스턴스의 키가 발급된다. (다운로드하고 무조건 잘 보관하기!) cmd창에서 다음 명령..