서버가 재시작 되는 케이스는 다양하다. 이때 실행하고 있던 애플리케이션이 있다면 다시 실행해주는 작업은 번거롭다. AWS에서 제공하는 cloud-init을 통해 서버 재부팅 시 애플리케이션을 자동 실행하는 방법에 대해 정리한다.
AWS EC2 Cloud-init을 통한 서버 재부팅 시 애플리케이션 자동 실행 방법
Cloud-init 설치 확인 또는 설치
먼저 Cloud-init을 설치가 되어 있는지 아래 명령어를 통해 확인한다.
apt-cache search cloud-init (ubuntu)
yum list installed cloud-init (CentOS)
설치가 안되어 있다면 아래 명령어를 통해 설치해주자.
apt-get install -y cloud-init
EC2 인스턴스 설정
이후 AWS에 접속하여 설정하고자 하는 EC2 인스턴스를 중지 시켜준다. (시간이 다소 걸릴 수 있다.)
이후 해당 인스턴스의 우클릭을 하여 인스턴스 설정 -> 사용자 데이터 편집에 들어가준다.
그럼 다음과 같이 아직 중지가 안됐다면 아래와 같은 화면이 나올 것 이다.
수정이 가능하면 다음과 같이 데이터를 입력할 수 있는 창이 나오게 된다.
사용자 데이터를 텍스트로 수정 항목에 다음과 같이 입력해주고 저장을 누른다.
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
/bin/echo "Hello World" >> /tmp/test.txt
—//
이후 중지한 인스턴스를 시작해준다.
동작 확인
재시작 후 /tmp 경로에 test.txt 파일이 생기고 파일에 들어가보면 Hello World가 찍혀 있는 것을 확인할 수 있다.
정상 동작을 하는지 확인하기 위해 SSH 로 ec2에 접속하여 /var/log 경로로 이동해준다.
해당 경로에서 cloud-init-output.log 파일을 확인해보면 재시작 시 어떤 동작이 일어났는지 확인이 가능하다.
sh 파일 실행하기
먼저 실행할 sh 파일을 만들어 둔다. 예를 들어 /home/ubuntu 경로에 start.sh을 만들어두었다하자.
그럼 다시 AWS에 접속하여 사용자 데이터를 수정해주면 된다.
기존
#!/bin/bash
/bin/echo "Hello World" >> /tmp/test.txt
—//
쉘파일 실행으로 변경 (경로는 상황에 맞게 수정)
#!/bin/bash
$(/home/ubuntu/startup.sh)
--//
변경 이후 재시작을 하고 정상적으로 sh파일이 실행되었는지 확인한다.
만약 정상적으로 실행이 되지 않았다면 cloud-init-output.log 파일을 들어가서 확인을 할수 있다.
참고 문서
https://repost.aws/ko/knowledge-center/execute-user-data-ec2
'AWS' 카테고리의 다른 글
AWS - Lambda 성능 개선 및 개념 정리 (동작원리/ColdStart..) (0) | 2023.05.08 |
---|---|
AWS Lambda / ALB / Route53 / CloudWatch 서비스 구성 방법(2) (0) | 2023.04.20 |
AWS Lambda / ALB / Route53 / CloudWatch 서비스 구성 방법 (1) (0) | 2023.04.12 |
Github Actions & Docker & AWS ECR 을 활용한 CI/CD 구축 (1) - EC2 생성 & ECR 생성 & IAM 사용자 생성 (0) | 2023.03.01 |
AWS - EC2 생성 및 접속 방법 (0) | 2023.02.27 |
댓글