Fake S3 для офлайновой разработки и экономии денег

в 16:49, , рубрики: amazon s3, Amazon Web Services, AWS, тестирование, метки: ,

Кёртис Спенсер (Curtis Spencer) с коллегами из компании Spool разработали легковесный сервер Fake S3, который ведёт себя как настоящий Amazon S3 и помогает тестировать проекты, не гоняя данные в настоящее облако и не тратя деньги на трафик. К тому же, для тестирования Fake S3 надёжнее, потому что работает локально. Спенсер говорит, что благодаря Fake S3 они сэкономили около $1000 за последний месяц на одной только оплате трафика.

Установка

gem install fakes3

Для запуска сервера нужно указать хост и порт.

fakes3 -r /mnt/fakes3_root -p 4567


Пример клиентского кода

require 'rubygems'
require 'aws/s3'

include AWS::S3
AWS::S3::Base.establish_connection!(:access_key_id => "123",
                                    :secret_access_key => "abc",
                                    :server => "localhost",
                                    :port => "10001")

Bucket.create('mystuff')

 ('a'..'z').each do |filename|
  S3Object.store(filename, 'Hello World', 'mystuff')
end

bucket = Bucket.find('mystuff')
bucket.objects.each do |s3_obj|
  puts "#{s3_obj.key}:#{s3_obj.value}"
end

Bucket.delete("mystuff",:force => true) # Delete your bucket and all its keys

Есть даже возможность эмулировать сетевые условия, например, максимальную скорость канала.

fakes3 -r ~/fakes3_root -p 10001 --limit=50K

Эта команда органичит пропускную способность для запросов GET полосой 50K/s на каждый запрос.

Разработчики подчёркивают, что их сервер предназначен именно для тестирования проектов, а не для замены S3. Если вы хотите сделать замену S3, то они рекомендуют использовать для этого другие инструменты: Ceph, ParkPlace (поддерживает bitorrent), Boardwalk (интерфейс S3 перед MongoDB) и RiakCS.

Автор: alizar

Поделиться

* - обязательные к заполнению поля