Amazon S3 독립형 스텁 서버
-
01-07-2019 - |
문제
단위 테스트 등을 위해 자신의 서버에서 실행할 수 있는 Amazon S3 호환 테스트 서버에 대해 읽은 적이 있는 것 같습니다.그러나 나는 Google과 AWS 모두에서 이것을 찾는 데 인내심을 다했습니다.그런 것이 존재하나요?없으면 하나 쓸 것 같아요.
메모:Amazon EC2(클라우드 컴퓨팅)가 아닌 Amazon S3(스토리지 시스템)에 대해 묻고 있습니다.
다른 팁
내 생각엔 모토(https://github.com/spulec/moto)은 단위 테스트를 위한 완벽한 도구입니다.Moto는 S3, SQS 등에 대한 모든 액세스를 모의합니다.웹 서버를 사용하여 모든 프로그래밍 언어로 사용할 수 있습니다.
설정이 쉽고 가볍고 빠릅니다.
모토의 README에서:
테스트하려는 다음 코드가 있다고 가정해 보세요.
import boto
from boto.s3.key import Key
class MyModel(object):
def __init__(self, name, value):
self.name = name
self.value = value
def save(self):
conn = boto.connect_s3()
bucket = conn.get_bucket('mybucket')
k = Key(bucket)
k.key = self.name
k.set_contents_from_string(self.value)
과거에 이를 어떻게 테스트했을지 잠시 생각해 보십시오.이제 Moto로 어떻게 테스트할 수 있는지 살펴보세요.
import boto
from moto import mock_s3
from mymodule import MyModel
@mock_s3
def test_my_model_save():
model_instance = MyModel('steve', 'is awesome')
model_instance.save()
conn = boto.connect_s3()
assert conn.get_bucket('mybucket').get_key('steve') == 'is awesome'
Park Place가 github로 이동했습니다:http://github.com/technoweenie/parkplace
유칼립투스 http://eucalyptus.cs.ucsb.edu/
유칼립투스 - 프로그램을 유용한 시스템에 연결하기위한 탄성 유틸리티 컴퓨팅 아키텍처 - 클러스터에서 "클라우드 컴퓨팅"을 구현하기위한 오픈 소스 소프트웨어 인프라입니다.유칼립투스에 대한 현재 인터페이스는 Amazon의 EC2 인터페이스와 호환되지만 인프라는 여러 클라이언트 측 인터페이스를 지원하도록 설계되었습니다.
문서에 따르면 Eucalypus에는 EC2 인터페이스뿐만 아니라 S3 스토리지 시스템의 재구현도 포함되어 있습니다.해당 저장 구성 요소를 Walrus라고 합니다.(http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2)
가짜 S3 테스트용으로 특별히 설계된 S3의 최신 재구현인 것으로 보입니다.
우리는 S3 기반 코드를 로컬에서 테스트하는 문제에 부딪혔고 실제로 S3 객체 API를 에뮬레이트하는 작은 Java 서버를 구현했습니다.다른 사람들에게 유용할 수 있으므로 작은 웹사이트와 함께 github 저장소를 설정했습니다. http://s3ninja.net - MIT 라이선스에 따른 모든 오픈소스.
매우 작고 간단하며 몇 분 안에 설정할 수 있습니다.(되는 천랑성 기반 애플리케이션의 경우 보통 수준의 서버에서 시작하는 데 1초도 채 걸리지 않습니다.
Amazon은 Xen을 사용하므로 자체 Xen 설치에서 AMI를 실행할 수도 있습니다.그래도 인스턴스를 실행하고 그곳에서 테스트를 실행하겠습니다.비용이 많이 들지 않으며 일반적으로 로컬에서 개발하고 시스템에서 자주 테스트하는 것이 좋습니다.