2014-02-11 7 views
0

저는 이런 식으로 진행되는 설정 작업을하고 있습니다. Server1과 Server2는 각각 EBS 볼륨이 연결된 EC2 인스턴스입니다. 이 서버는 응용 프로그램 (Python, 플라스크 기반)을 실행하기로되어 있으며 configs는 해당 EBS 볼륨에있는 server1과 server2에서 서로 다릅니다. 하지만 config와 별개로 코드베이스가 일반적이므로 server1과 server2에 액세스 할 수있는 공통 위치에 코드베이스를 배치해야합니다. S3 버킷을 사용할 수 있습니까?AWS EC2 : 웹 서비스 설정을위한 EBS 및 S3

이것은 매우 어리석은 질문 일 수 있지만 확실한 답을 찾을 수 없기 때문에 어쨌든 묻습니다. S3 버켓은 서버 1과 서버 2에서 실행되는 애플리케이션에 의해 선택 될 수있는 코드베이스가 호스팅 될 수있는 드라이브로 볼 수 있습니까? tntdrive과 같은 유틸리티를 발견했지만 더 좋은/우아한 방법이 있는지 알고 싶습니까? 간단히 말해,이 S3 버킷을 서버 1과 2의 공유 드라이브로 사용할 수있게 할 수 있습니까?

 

    +-----------+    +-----------+ 
    | Server 1 |    | Server 2 | 
    +---------+-+    +--+--------+ 
     +----+ |     | +----+ 
     |EBS1| |     | |EBS2| 
     +----+ |     | +----+ 
       | +------------+ | 
       | |   | | 
       +->| S3 bucket |<-+ 
       |   | 
       |   | 
       +------------+

고마워요!

답변

1

NFS 또는 SAN 볼륨으로 S3을 사용하면 예상대로 작동하지 않습니다. 블록 장치가 아니기 때문에 블록 작업은 실제로 "볼륨"에서 작동하지 않습니다. s3fs와 같은 S3 레이어는 파일을 작업하기 전에 임시 디렉토리에 파일을 복사하여 작동합니다.

여기에 가장 적합한 방법은 코드를 인스턴스에 자동으로 배포하는 것입니다. 나는 s3에서 zip 파일을 다운로드하고 추출하는 프로세스를 사용한다. 새 코드에 대해 5 분마다 s3을 확인합니다.

배포를 처리 할 수있는 다른 옵션이 있습니다. 귀하의 경우에 가장 적합한 것을 선택하십시오. S3에서 코드를 직접 실행하지 마십시오.

+0

>> S3에서 코드를 직접 실행하지 마십시오. << 예, 그렇다고해도 그렇게할만한 생각이 들지 않았습니다. 입력에 감사드립니다. – megazoe