환경: (Amazon Linux 2023, Apache) public EC2 + EFS 구성
AMI 생성
EC2 내부 접속 후 아래 명령어를 통해 Apache 서버로 구성한다.
yum install httpd # Apache 웹 서버 설치
systemctl start httpd # Apache 서버 시작
systemctl status httpd # 상태 확인
systemctl enable httpd # 부팅 시 자동 시작 설정
http://public-ip/ 로 접속하면 기본 Apache Server 화면이 보이면 된다.
dnf install -y httpd amazon-efs-utils inotify-tools # 필요한 패키지 설치
sudo mkdir -p /data # EFS를 마운트할 디렉토리 생성
sudo mount -t efs -o tls fs-XXXX:/ /data # EFS 마운트
df -hT | grep efs # EFS 마운트 확인
EFS와 EC2 연결을 위해 명령어를 입력한다.
/data 경로를 생성하고 해당 폴더와 EFS를 연결했다.
fs-xxxx:/ /data efs _netdev,tls 0 0 # /etc/fstab에 추가
/etc/fstab 파일에 아래 명령어를 입력해 서버가 재부팅되어도 EFS가 자동으로 마운트 될 수 있게 추가한다.
sudo vi /etc/httpd/conf/httpd.conf
Apache 웹 서버는 기본적으로 /var/www/html을 DocumentRoot로 사용하지만, 이를 /data로 변경한다.
DocumentRoot "/data"
<Directory "/data">
AllowOverride None
Require all granted
</Directory>
파일에서 DocumentRoot를 /data로 변경하고, 아래와 같이 설정을 수정한다.
이후 /data/index.html 파일에 원하는 HTML 파일을 넣어 테스트하면 된다.
위의 설정을 완료한 후, EC2 인스턴스를 AMI로 생성한다. 생성된 AMI는 이후 Auto Scaling Group(ASG)에서 사용할 템플릿으로 활용될 예정!
ASG(AutoScaling Group) 생성
위에서 생성한 ami를 기반으로 시작템플릿을 구성한다.
#!/bin/bash
# EFS 마운트
mkdir -p /data
mount -t efs -o tls fs-xxxx:/ /data
# Apache 시작
systemctl start httpd
systemctl enable httpd
시작템플릿 구성할 때 UserData에 위의 코드를 삽입한다.
생성한 시작템플릿을 바탕으로 ASG 를 생성한다.
ASG의 인스턴스 중 하나에서 /data/index.html 파일을 수정하면, 다른 인스턴스들에도 해당 변경 사항이 반영되는 것을 확인할 수 있다. 이는 EFS에 파일을 저장하고 있기 때문에 모든 인스턴스에서 동일한 파일을 공유하고 있다는 걸 알 수 있다!
이 방식은 Apache 웹 서버를 EFS와 연동하여 파일을 자동으로 반영하는 방법을 보여준다.
CI/CD 환경을 구축하기 어려울 때, 이 방법을 활용하면 유용할 것이다.
하지만 실제 서비스 환경에서는 CI/CD 파이프라인을 구축하여 소스 코드 변경 사항을 자동으로 배포하는 시스템을 구현하는 게 제일 베스트일 것 같다!
'Cloud > AWS' 카테고리의 다른 글
[AWS] ALB와 Target Group 가중치를 활용한 Hot/Standby 구현 테스트 (0) | 2025.02.25 |
---|---|
AWS 환경 위에서 NAS 환경 구성하는 방법 (0) | 2024.04.24 |
[EKS] eksctl로 EKS 클러스터 생성하기 (0) | 2024.04.04 |
[AWS] private EC2에 접속하는 방법 -2 (0) | 2024.03.06 |
[AWS] private EC2에 접속하는 방법 -1 (0) | 2024.03.05 |