안녕하세요, 인프라 담당 아카카와입니다.
최신 AWS 뉴스레터에서는 StorageGateway가 EC2에서 S3 마운트를 가능하게 할 것이라고 발표되었습니다.
이번 업데이트가 지금까지의 문제를 해결할 수 있는지 벤치마크를 진행했습니다.
준비된 환경
고객들
비교를 위해, 우리는 A부터 C까지의 세 가지 사례를 준비했습니다.
A. S3 버킷이 파일게이트웨이를 통해 마운트된 디렉터리에 DocumentRoot가 있는 인스턴스 B. S3 버킷이 s3fs로 마운트된 디렉터리의 인스턴스, DocumentRoot로 C. 로컬 디스크에 배포된 DocumentRoot가 있는 인스턴스
각 인스턴스에 httpd를 설치하세요. 각 서버의 DocumentRoot를 변경하세요.
스토리지게이트웨이
게이트웨이 요구사항 참조
하지만 읽지 않고 진행하면 아무리 시간이 걸려도 게이트웨이 인스턴스에 연결할 수 없었습니다. SSH로 게이트웨이 인스턴스에 연결했을 때 vCPU가 부족하다는 경고가 떴습니다. 잘 읽고 사양을 확인하세요. (이 이미지는 CPU에 대한 경고지만, 메모리가 부족하면 Critical 상태가 표시되었습니다.) )

참고로, 게이트웨이 인스턴스에 ssh 연결을 위한 기본 사용자는 "sguser"입니다.

시즌 3
미리 장착할 양동이를 만들어 두세요.
FileGateway 구성
먼저, 스토리지 게이트웨이 메뉴에서 파일 게이트웨이를 생성합니다.

게이트웨이 유형으로 EC2를 선택하세요. 빨간색으로 표시된 버튼을 클릭하면 EC2 시작 화면이 열립니다.

게이트웨이에는 AMI가 있다고 하네요. 앞서 언급한 주의사항을 염두에 두고 인스턴스를 생성하세요.

인스턴스를 생성한 후 파일 게이트웨이 화면으로 돌아가세요. 게이트웨이 IP 주소를 요구하니, 이전에 만든 인스턴스의 IP를 지정하세요. 이 IP도 활성화됩니다.

다음으로, 파일 공유 설정을 설정하세요. 생성된 게이트웨이를 선택하고 "파일 공유 생성"을 클릭합니다.

마운트하려는 S3 버킷 이름을 입력하세요. 또한 S3에 연결할 수 있는 IAM 역할도 설정하세요.

완료되면 마운트 명령도 표시됩니다. 친절하시네요.

클라이언트가 게이트웨이 인스턴스에 연결할 수 있도록 보안 그룹을 설정하세요. 그 후 클라이언트 인스턴스를 준비하고 HTTP 설치와 DocumentRoot를 마운트 목적지 경로로 변경하세요.
AB 벤치 돌기
마운트 목적지에 테스트 문서를 배포하고 httpd를 시작하세요. s3fs나 로컬 디스크를 사용해 인스턴스를 시작하고, 각 사람마다 벤치를 확보하세요.
게이트웨이를 통한 S3 마운트 인스턴스 결과

S3 마운트 인스턴스 결과

로컬 디스크 사용 인스턴스 결과

몇 번 벤치프레스를 해봤는데, 로컬 디스크를 사용할 때와 비슷한 결과였습니다. 훌륭합니다.
하지만 게이트웨이 인스턴스가 SPOF가 되고 게이트웨이 인스턴스의 명세가 어느 정도 요구되기 때문에, 시스템이 배포에 적합한지 고려해야 합니다.
그때 봐.