기존에는 인스턴스 내의 폴더에서 소스 코드를 함께 관리하고 있었다.
운영 사이트 중 최대 인스턴스 수는 2개였고, 가끔 관리가 귀찮았지만 어느 정도 감수할 수 있었다.
그러던 중 티켓팅 서버 부하 이슈로 Auto Scaling 도입을 조사 중이었고, 현재처럼 인스턴스마다 소스 코드가 관리되고 있으면 수정 전
인스턴스로 생성한 템플릿으로 Auto Scaling이 운영 사이트에 적용하기 힘들다고 판단
CI/CD 자동화나 스케일링 시작 시 user data로 Git이나 S3에서 소스를 받아오는 방법이 있지만,
EFS로 소스 코드를 분리하는 것이 가장 간단하고 현재 상황에서는 가장 접근하기 쉬운 방법이라고 생각한다.
EFS (Elastic File System)
- 네트워크 파일 스토리지로 여러 EC2 인스턴스가 동시에 액세스 할 수 있다.
- 온프레미스 시스템과 클라우드 시스템을 동시에 연결할 수 있어, 공유 파일 시스템 처럼 작동한다
1. 사용할 EFS 이름 입력, 기본 vpc 선택 후 EFS 생성
2. EFS 전용 보안그룹 생성
EFS 포트 2049 선택 후 웹서버용 보안그룹(기존 생성한 보안그룹)을 선택해준다.
3. 생성된 EFS의 네트워크 > 관리 클릭후 방금 생성한 EFS 보안그룹으로 변경
4. 연결 클릭후 DNS를 통한 탑재 선택.
연결할 인스턴스에 efs 폴더 생성 후 NFS 탑재 헬퍼 사용 명령어를 실행한다. (EFS탑재 헬퍼 사용은 따로 패키지 amazon-efs-utils 다운로드가 필요함..)
5. df -h 로 마운트 확인
추가
인스턴스 재부팅 시 자동 마운트
sudo vi /etc/fstab 추가
⇒ dns 주소 /마운트폴더 nfs defaults,_netdev 0 0
마운트 해제
umount dns 주소 혹은 umount 마운트된 폴더명
참고
https://my-studyroom.tistory.com/entry/AWS-실습-EFSElastic-File-System-사용해보기
https://blog.kyobodts.co.kr/2024/03/08/amazon-efs-소개-및-활용-방법/ https://blog.naver.com/reesestudylog/223616694973