2012-06-05 2 views
4

PHP3-CLI에서이 스크립트를 사용하여 Amazon S3에서 EC2 인스턴스로 파일을 다운로드하고 있지만 다소 느립니다 (160MB의 경우 1 분, 약 2MB/s). 아마도 적어도 10 MB/s가 가능해야합니다. 코드에서 뭔가 잘못하고 있니?느린 S3 -> EC2 전송. 잘못된 코드?

require 'aws-sdk/sdk.class.php'; 

$s3 = new AmazonS3(array(
     'key' => '********', 
     'secret' => '******************' 
)); 
$s3->get_object('mahbucket', 'filename.tar.gz', array('fileDownload' => 'downloaded.tar.gz')); 

버킷은 eu-west-1에 있으며 eu-west-1a

(Cross posted to AWS forums)의 예를

답변

2

스크립트가 잘 보이는,하지만 난에 저소득자되지 않은, 얼마 전에 비슷한 문제로 실행 수정 ...

내 새로운 접근 방식은 S3 버킷과 EC2 인스턴스 간의 파일 전송에 s3cmd을 사용하고 있습니다. 한번 구성하면 PHP를 통해 트리거 할 수 있습니다. 스크립트 내에서 AWS 자격 증명을 저장할 필요가 없으므로 더욱 안전합니다. 제 생각에는

속도가 괜찮 :

[email protected]:~/s3# s3cmd put test.bin s3://data.example.com/test.bin 

test.bin -> s3://data.example.com/test.bin [part 1 of 13, 15MB] 
15728640 of 15728640 100% in 0s 16.39 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 2 of 13, 15MB] 
15728640 of 15728640 100% in 0s 15.55 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 3 of 13, 15MB] 
15728640 of 15728640 100% in 0s 16.18 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 4 of 13, 15MB] 
15728640 of 15728640 100% in 0s 17.32 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 5 of 13, 15MB] 
15728640 of 15728640 100% in 0s 18.87 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 6 of 13, 15MB] 
15728640 of 15728640 100% in 0s 16.58 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 7 of 13, 15MB] 
15728640 of 15728640 100% in 0s 16.29 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 8 of 13, 15MB] 
15728640 of 15728640 100% in 0s 16.95 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 9 of 13, 15MB] 
15728640 of 15728640 100% in 0s 15.33 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 10 of 13, 15MB] 
15728640 of 15728640 100% in 0s 17.01 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 11 of 13, 15MB] 
15728640 of 15728640 100% in 0s 15.36 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 12 of 13, 15MB] 
15728640 of 15728640 100% in 0s 16.56 MB/s done 
test.bin -> s3://data.example.com/test.bin [part 13 of 13, 10MB] 
11256320 of 11256320 100% in 0s 14.15 MB/s done 

[email protected]:~/s3# s3cmd get s3://data.example.com/test.bin test.bin.new 
s3://data.example.com/test.bin -> test.bin.new [1 of 1] 
200000000 of 200000000 100% in 11s 16.20 MB/s done 

어쩌면이 문서뿐만 아니라 흥미 롭다 : Network performance within Amazon EC2 and to Amazon S3

+0

사실 난 그냥 s3cmd이 보일 것입니다, 그래서이 스크립트는 떠들썩한 파티에서 사용할 수 있도록 만든 나를 위해 완벽하게, 전혀 PHP가 필요하지 않습니다. 나는 그것을 조사 할 것이다. –

+0

지금 s3cmd를 사용하고 있으며 약 10MB/s의 속도가 훨씬 빨라졌습니다. 오늘은 더 빠르거나 PHP SDK가 더 느립니다 (인스턴스가 작기 때문에 CPU 바인딩이 가능할 수도 있음), 이유가 무엇이든간에이 문제는 해결 된 것처럼 보입니다. –

+0

다행 :-) – dom

관련 문제