구름

EFS - Auto Scaling - CloudWatch 연동 [Auto Scaling 자동 동기화-5] 본문

Cloud/Auto Scaling Instance 자동 동기화

EFS - Auto Scaling - CloudWatch 연동 [Auto Scaling 자동 동기화-5]

Cloudest 2021. 1. 5. 10:56
 

Cloudest - 블로그 이사했습니다

노션으로 블로그를 옮겼습니다.

흥미로운 포스팅이 올라옵니다!

cloudest.oopy.io

🛠
준비물 : 이전 포스팅의 결과로 생성된 결과물, SSH 접속 프로그램

시작 전

  • 목적 : 페이지에 변경점이 있을 때 EFS에 변경파일을 올리면 모든 AS인스턴스에서 참조 하고, 새로운 인스턴스가 해당 파일을 가지게 하기 위함
  • 이 포스팅은 Auto Scaling - CloudWatch - EFS 연동 확인을 위한 최소한의 환경만 구성하였다.

EFS

  • EFS 생성
    1. EFS 생성
    1. 자동으로 연결된 탑재 대상의 IP를 체크 
  • EFS - EC2 인스턴스 마운트
    1. /etc/hosts 경로에 AZ-a,c에 대한 사설 IP 입력
    1. 마운트할 디렉토리 생성 ( ex : mkdir /efs )
    1. /etc/fstab 경로에 다음 코드 추가 (재부팅시 자동 마운트)
      efs1:/ /efs nfs rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 0 0
    1. mount -a 명령으로 마운트
    1. df -hT 명령으로 마운트 확인
      최하단 efs1:/ nfs4 8.0E 확인 가능
  • Auto Scaling Group 재생성 (사진이 많으니 하는법 알면 Skip)
    1. EFS 마운팅을 완료한 인스턴스의 이미지를 생성
    1. 생성한 AMI 기반으로 AS 시작구성 생성
    1. Auto Scaling Group 생성
      기존 ALB 연결을 해제하고 연결하거나 새로운 ALB생성
  • AS로 생성된 인스턴스의 EFS 마운팅 확인
    1. 새로 생성된 인스턴스에서 df -hT 명령을 통해 마운트 확인
    1. 모든 AS 인스턴스가 /efs 디렉토리에 EFS와 마운트 되어있다.

CloudWatch

  • 규칙 생성
    1. 이벤트 소스 설정 ( AS를 특정해주어야 여러개의 AS를 운영할 때 오류가 없다.)
    1. 규칙 대상 설정
    1. 규칙 이름 지정 및 생성

테스트

  • 테스트1 - Commander에서 EFS 내부에 파일 생성
    1. Commander Instance가 서버 담당자만 접근 가능한 서버라고 가정한다.
    1. EFS에 마운트 한다.
    1. index.html 파일을 EFS에 업로드
    1. 업로드된 index.html를 수동으로 변경할 수 있고, 인스턴스 Scale-Out시에 자동으로 모든 인스턴스에게 적용된다.
    1. 변경 전 ALB로 접속한 EC2-EFS 인스턴스들의 웹페이지
    1. 최소용량 증가를 통해 Scale-Out 진행 후 EC2-EFS 인스턴스들의 웹페이지
      • 기존 인스턴스는 변경됐는데 새로생긴 인스턴스에 변경이 적용되지 않음
  • 테스트2 - Run-Command 명령에서 Mount를 진행한 후 명령 실행
    1. 다시 테스트하기 위해 Commander에서 index.html 파일 내용 변경
    1. CloudWatch 규칙에서 직접 마운트를 진행하고 명령실행하도록 변경
      • EFS에 직접 마운트하는 방식으로 EFS → 파일 시스템 → 연결 → NFS 클라이언트 사용 방식을 사용했다.
        명령 맨 마지막 efs부분을 Auto Scaling 인스턴스들이 마운팅할 디렉토리 절대경로로 변경함
    1. 인스턴스 Scale-Out 하고 결과 확인
      정상적으로 새로운 인스턴스를 포함해 모든 인스턴스들의 index.html파일이 변경되었다.
    1. Auto Scaling 자동 동기화 완료

     

결론

  • 서버 관리자는 EFS에 변경파일을 업로드하고 CloudWatch를 간단하게 수정하는 것으로 Auto Scaling 모든 인스턴스들에게 자동으로 명령을 적용시킬 수 있다.
  • EC2의 userdata와 비슷한 개념일 수 있지만 userdata는 적용할 명령이 변경될 때 Auto Scaling Group에 적용하기 쉽지 않다. (새로운 시작구성을 만들어 다시 배포해야하는 걸로 알고있다.)
  • 테스트 2번을 통해서 /etc/fstab에 등록한 마운트 정보보다 AWS에서 입력하는 userdata, run-command가 선행되어 작동하는 것을 확인했다. 이것은 Amazon Linux 2 기준이며 대부분의 리눅스 시스템은 비슷할 것이라 생각하지만 예외가 있을 수 있다.

 

Comments