Amazon EFS
EFS는 여러 서버와 컨테이너가 동시에 같은 경로를 마운트해 쓰는 공유 파일시스템입니다. 각 실행 환경이 로컬 디스크 대신 같은 파일 집합을 보도록 만들어 줍니다.
▶아키텍처 다이어그램
🔗 관계 다이어그램점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
여러 컨테이너와 인스턴스가 같은 파일을 봐야 하는데 각 서버 디스크를 따로 쓰면 업로드 경로와 데이터 동기화가 계속 꼬입니다. 한곳에서 수정한 파일이 다른 실행 환경에 바로 보이지 않으면 공유 저장소가 없는 대가를 매번 치르게 됩니다.
클라우드에서 서버 수가 늘자 파일 공유를 위해 rsync나 앱 레벨 복제를 쓰는 방식이 한계에 부딪혔습니다. 그래서 네트워크로 공유되는 관리형 파일시스템 계층인 EFS가 필요해졌습니다.
EFS는 NFS(여러 서버가 네트워크로 같은 파일 경로를 마운트할 수 있게 하는 파일시스템 방식) 기반의 관리형 파일시스템을 제공하고, 가용 영역별 마운트 타깃을 통해 여러 EC2나 ECS 태스크가 같은 데이터를 공유하게 합니다. Regional 서비스로 여러 AZ에 걸쳐 저장되고, 필요하면 Direct Connect나 VPN을 통해 온프레미스 서버에서도 같은 파일시스템을 볼 수 있습니다.
EFS와 EBS는 둘 다 저장소지만 접근 방식이 다릅니다. EFS는 여러 컴퓨팅 리소스가 동시에 마운트하는 공유 파일시스템이고, EBS는 보통 한 인스턴스에 붙는 블록 디스크입니다. 여러 서버나 컨테이너가 같은 경로를 함께 봐야 하면 EFS를 보고, 단일 서버에 붙는 고정 디스크가 필요하면 EBS를 보면 됩니다.
공유 업로드 디렉터리, CMS 자산, 여러 컨테이너가 함께 보는 파일, 리프트앤시프트 앱의 공유 파일 영역, 서버 간 공동 작업 디렉터리에 적합합니다. 한 서버에만 붙는 로컬 디스크가 필요한 경우에는 과합니다.