Skip to content

~/nube/aws-s3 $ cat 07-transferencia-acelerada.md

  • Introducción a la nube pública
  • AWS-S3

Ampliación: transferencia acelerada

Habilita Transfer Acceleration y compara cargas pequeñas sin hacer público el bucket.

Limitación confirmada en nuestro Learner Lab (04/11/2026): no tenemos permiso para habilitar la aceleración. La operación s3:PutAccelerateConfiguration está denegada explícitamente por una SCP, una política de control de servicios de la organización que administra el laboratorio. El bloqueo afecta tanto a CLI como a la consola; no lo resuelves modificando IAM ni las opciones BPA.

Conservamos esta práctica como referencia del procedimiento. En este laboratorio no ejecutes la activación ni las transferencias comparativas siguientes. Que la consola muestre un endpoint acelerado no demuestra que esté habilitado. Registra «práctica bloqueada por permisos del laboratorio», sin inventar tiempos ni resultados. Si ya creaste un bucket vacío para probarlo, elimínalo al terminar. Solo se retomará la ejecución si cambia esta restricción y se comprueba de nuevo.

Una organización recibe archivos desde equipos alejados de la Región de su bucket. Vas a comprobar cómo se activa S3 Transfer Acceleration y comparar dos rutas de carga. Es una ampliación opcional para SMR y DAM, posterior a CLI; trabaja individualmente con tus recursos y un archivo ficticio.

La ruta acelerada utiliza ubicaciones de borde de CloudFront y una ruta de red optimizada hacia S3. No tienes que crear una distribución CloudFront. Habilitarla no publica el bucket ni concede permiso para subir archivos a cualquier persona. Para utilizarla, el cliente debe enviar la petición al endpoint acelerado; una carga normal no cambia de ruta solo por habilitar la opción.

Reutiliza el entorno Debian, AWS CLI v2 y el perfil default preparado en Sincronización. Si han caducado, renueva las tres credenciales temporales en ambos bloques, [default] y [learnerlab], como explica05. Activa Learner Lab y comprueba saldo y tiempo. La aceleración puede añadir cargos de transferencia: usarás solo cuatro cargas de 1 MiB, sin pruebas masivas ni repetición automática. El coste también incluye las solicitudes y el almacenamiento; consulta los precios de S3.

  1. Crea desde la consola un bucket nuevo aws-s3-acel- con ocho letras o números aleatorios propios, en us-east-1, de propósito general y espacio global compartido si aparece. Su nombre no debe contener puntos.
  2. Mantén ACL deshabilitadas, las cuatro BPA activas, SSE-S3, versionado y Object Lock deshabilitados. No añadas políticas públicas.
  3. En Properties / Propiedades → Transfer acceleration / Aceleración de transferencia → Edit, habilita la opción y guarda. Anota el estado y el endpoint mostrado: nombre-del-bucket.s3-accelerate.amazonaws.com.
  4. La activación puede tardar varios minutos en estar operativa. Si la sesión no permite esperar, registra la configuración y deja la comparación pendiente.

El endpoint normal sigue disponible. Ambos acceden al mismo bucket y requieren autorización. Si aparece AccessDenied, registra operación y mensaje; no cambies IAM ni BPA para forzarlo.

Dentro del contenedor, como alumno, prepara una carpeta independiente. Este comando crea un archivo local nuevo de 1 MiB de ceros, sin datos personales:

Terminal window
mkdir -p /optativa-nube/aws-s3/aceleracion
cd /optativa-nube/aws-s3/aceleracion
dd if=/dev/zero of=prueba.bin bs=1024 count=1024
read -r -p 'Nombre exacto de tu bucket aws-s3-acel-: ' BUCKET_ACEL

Introduce únicamente el nombre de tu bucket, sin s3://. Comprueba que coincide con la consola antes de continuar. No necesitas modificar permanentemente la configuración de CLI. Usarás --endpoint-url para seleccionar explícitamente cada ruta. Con time, Bash muestra real: el tiempo total del comando, incluido el arranque de CLI.

Ejecuta una vez cada línea, por orden. Las cuatro cargas guardan el mismo archivo bajo cuatro claves diferentes:

Terminal window
time aws s3 cp prueba.bin "s3://$BUCKET_ACEL/normal-1.bin" --endpoint-url https://s3.us-east-1.amazonaws.com
time aws s3 cp prueba.bin "s3://$BUCKET_ACEL/acelerada-1.bin" --endpoint-url https://s3-accelerate.amazonaws.com
time aws s3 cp prueba.bin "s3://$BUCKET_ACEL/acelerada-2.bin" --endpoint-url https://s3-accelerate.amazonaws.com
time aws s3 cp prueba.bin "s3://$BUCKET_ACEL/normal-2.bin" --endpoint-url https://s3.us-east-1.amazonaws.com

Anota real y éxito o error de cada carga en una tabla propia con columnas clave, ruta, tiempo y resultado. Si una carga falla, no uses su tiempo como medida de transferencia. Comprueba en la consola las cuatro claves y sus tamaños. Descarga normal-1.bin y acelerada-1.bin desde la consola y guarda ambas en optativa-nube/aws-s3/aceleracion/, la carpeta compartida del anfitrión que ves como /optativa-nube/aws-s3/aceleracion/ dentro del contenedor.

Desde esa carpeta en la terminal Debian, compara los bytes con el original:

Terminal window
cmp prueba.bin normal-1.bin && printf 'Copia normal idéntica\n'
cmp prueba.bin acelerada-1.bin && printf 'Copia acelerada idéntica\n'

cmp no muestra diferencias y termina con código cero si los archivos son idénticos; entonces aparece el mensaje de confirmación. Si informa diferencias o un archivo ausente, revisa la descarga y su ubicación antes de dar la comprobación por válida.

No cambies opciones para conseguir que «gane» la aceleración. Con un archivo tan pequeño, el arranque, la conexión y las variaciones de red pueden dominar el tiempo. Dos intentos por ruta sirven para observar el mecanismo, pero no demuestran cuál será más rápida en producción. La distancia, tamaño y conexión influyen en el resultado.

Entrega un registro breve con los cuatro resultados, la comprobación del contenido descargado y una explicación: ¿basta con habilitar la opción para que cualquier carga use la ruta acelerada? Añade si tu comparación permite recomendarla para transferencias grandes y por qué. No incluyas credenciales, identificadores de cuenta ni el historial completo de terminal.

  1. En las propiedades de tu bucket, edita Transfer acceleration y suspéndela/deshabilítala; comprueba el estado. Suspender no borra los objetos y el endpoint normal sigue disponible.
  2. Elimina los cuatro objetos creados y cualquier objeto de prueba adicional tuyo; verifica que el bucket queda vacío. Elimina después ese bucket y confirma su ausencia.
  3. Registra saldo o actualización pendiente. Si has terminado, aplica el cierre del bloque CLI: retira las credenciales temporales de [default] y [learnerlab] cuando ya no las necesites, sal del contenedor y detenlo desde el anfitrión; pulsa End Lab. Si queda algo pendiente, anota el recurso y su estado real.

Fuentes: funcionamiento y requisitos, activación y uso con CLI por comando.