웹 앱에 NFS를 사용하는 경우

웹 앱에 NFS를 사용하는 경우

저는 현재 AWS에서 Elastic Load Balancer - 다중 프런트 엔드 - RDS 데이터베이스와 같은 간단한 웹앱 아키텍처를 구축하고 있습니다.

또한 주로 프로필 사진과 같이 사용자가 웹 앱을 통해 업로드한 모든 이미지를 저장하기 위해 NFS 서버를 설정했습니다(이 작업에는 S3를 사용할 수 없으며, 제공되는 사양만 따릅니다...).

프런트 엔드 VM은 자동 확장 그룹에 의해 생성됩니다. VM이 생성되면 S3 버킷에서 웹 앱 소스를 다운로드합니다. 문제는 해당 소스(주로 mp4 또는 이미지와 같은 정적 파일) 내에 대용량 파일이 있다는 것입니다. S3에서 다운로드하는 데 너무 많은 시간이 걸리기 때문에 이러한 대용량 정적 파일을 NFS 서버에도 저장할 생각입니다.

그래서 내 질문은 다음과 같습니다. NFS에 파일을 저장하는 것이 언제 관련되며 각 프런트 엔드에 파일을 저장하는 것이 언제 더 좋은가요? 예를 들어 NFS에 mp4를 저장한다면 전체 웹 애플리케이션을 이 NFS에 저장하면 어떨까요?

참고: 해당 파일을 포함하는 AMI는 수정할 때 유연성이 부족하기 때문에 빌드하고 싶지 않습니다.

답변1

이 모든 것은 성능에 달려 있습니다. NFS 저장소가 충분히 빠르면 모든 웹 앱 및 웹 콘텐츠 파일을 여기에 저장하여 모든 프런트 엔드 VM에서 액세스할 수 있도록 하는 것을 막을 수 없습니다.

즉, 사람들이 이 작업을 수행하지 않는 가장 일반적인 이유는 네트워크 저장소에서 파일을 검색하는 데 관련된 추가 네트워크 대기 시간이 클라이언트가 브라우저에서 웹 앱/사이트를 로드할 때 추가 지연으로 변환되기 때문입니다.

분명히 이는 VM의 기본 스토리지에 따라 다르지만 일반적으로 로컬 스토리지는 거의 항상 대기 시간이 낮으므로 정적 콘텐츠를 저장하는 데 선호됩니다. 모든 웹 서버에서 사용할 수 있는 정적 콘텐츠를 동기화된 상태로 유지하기 위해 DRDB를 사용하는 많은 로드 밸런싱 배포에 참여했습니다.

관련 정보