tipos precios precio cuesta cuanto costo caracteristicas aws amazon-s3

amazon-s3 - precios - precio de amazon s3



Duplicación más rápida de cubos s3 (6)

He estado tratando de encontrar una mejor herramienta de línea de comandos para duplicar cubos que s3cmd . s3cmd puede duplicar los depósitos sin tener que descargar y cargar cada archivo. El comando que normalmente ejecuto para duplicar depósitos utilizando s3cmd es:

s3cmd cp -r --acl-public s3://bucket1 s3://bucket2

Esto funciona, pero es muy lento ya que copia cada archivo a través de API de a uno por vez. Si s3cmd pudiera correr en modo paralelo, estaría muy feliz.

¿Hay otras opciones disponibles como herramientas de línea de comandos o código que las personas usan para duplicar depósitos que son más rápidos que s3cmd?

Editar: Parece que s3cmd-modification es exactamente lo que estoy buscando. Lástima que no funciona. ¿Hay más opciones?


AWS CLI parece hacer el trabajo a la perfección, y tiene la ventaja de ser una herramienta oficialmente compatible.

aws s3 sync s3://mybucket s3://backup-mybucket

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

Admite transferencias simultáneas por defecto. Ver http://docs.aws.amazon.com/cli/latest/topic/s3-config.html#max-concurrent-requests

Para transferir rápidamente una gran cantidad de archivos pequeños, ejecutar desde una instancia EC2 para disminuir la latencia y aumentar max_concurrent_requests para reducir el impacto de la latencia. p.ej

aws configure set default.s3.max_concurrent_requests 200



Intenté clonar dos cubos usando la consola web de AWS, el s3cmd y la AWS CLI. Aunque estos métodos funcionan la mayor parte del tiempo, son dolorosamente lentos.

Luego encontré s3s3mirror , una herramienta especializada para sincronizar dos cubos S3. Es multiproceso y mucho más rápido que los otros enfoques que he probado. Rápidamente moví GB de datos de una región de AWS a otra.

Compruébelo en github.com/cobbzilla/s3s3mirror , o descargue un contenedor Docker de https://registry.hub.docker.com/u/pmoust/s3s3mirror/


No conozco ninguna otra herramienta de línea de comandos S3, pero si no aparece nada aquí, podría ser más fácil escribir la tuya.

Elija el idioma y el SDK / kit de herramientas de Amazon que prefiera. Entonces solo necesita listar / recuperar el contenido del cubo fuente y copiar cada archivo (en paralelo, obviamente)

Al ver la fuente de s3cmd-modification (y admito que no sé nada sobre python), parece que no han s3cmd-modification el código de cubo a cubo, pero tal vez podrías usar el código paralelo de carga / descarga estándar como punto de partida para hacer esto.


Para una solución adhoc use aws cli para sincronizar entre cubetas:

aws s3 sync velocidad de aws s3 sync depende de:
- latencia para una llamada API al punto final S3
- cantidad de llamadas API realizadas en concurrentes

Para aumentar la velocidad de sincronización:
- ejecutar aws s3 sync desde una instancia de AWS (c3.large en FreeBSD está bien ;-))
- actualizar ~ / .aws / config con:
- max_concurrent_requests = 128
- max_queue_size = 8096

con las siguientes configuraciones y el tipo de instancia, pude sincronizar el segmento (309 GB, archivos 72K, us-east-1) en 474 segundos.

Para una solución más genérica, considere: replicación entre regiones AWS DataPipeLine o S3.


Si no te importa usar la consola de AWS, puedes:

  1. Seleccione todos los archivos / carpetas en el primer segmento
  2. Haz clic en Acciones> Copiar
  3. Crea un nuevo cubo y selecciónalo
  4. Haz clic en Acciones> Pegar

Todavía es bastante lento, pero puedes dejarlo y dejar que haga lo suyo.