<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cloud IO Strategy</title>
	<atom:link href="https://cloudiostrategy.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://cloudiostrategy.com</link>
	<description></description>
	<lastBuildDate>Mon, 16 Feb 2026 17:57:12 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://cloudiostrategy.com/wp-content/uploads/2023/06/cropped-favicon-32x32.png</url>
	<title>Cloud IO Strategy</title>
	<link>https://cloudiostrategy.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AI Periodic Table: el mapa minimalista para diseñar soluciones de IA sin perderte</title>
		<link>https://cloudiostrategy.com/ai-periodic-table-mapa-ia/</link>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Tue, 10 Feb 2026 16:12:40 +0000</pubDate>
				<category><![CDATA[Arquitectura]]></category>
		<category><![CDATA[Artículos]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[Agentes]]></category>
		<category><![CDATA[AI Periodic Table]]></category>
		<category><![CDATA[Banca]]></category>
		<category><![CDATA[Fintech]]></category>
		<category><![CDATA[RAG]]></category>
		<guid isPermaLink="false">https://example.com/?p=1</guid>

					<description><![CDATA[AI Periodic Table: una forma simple de ordenar la IA en banca y fintech Los pilotos fallan en producción cuando no existe un mapa claro entre conocimiento, orquestación, validación y […]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span style="color: #000000;">AI Periodic Table: una forma simple de ordenar la IA en banca y fintech</span></h2>



<p><span style="color: #000000;">Los pilotos fallan en producción cuando no existe un mapa claro entre <strong>conocimiento</strong>, <strong>orquestación</strong>, <strong>validación</strong> y <strong>modelos</strong>.</span></p>



<p><strong>DISCLAIMER</strong>: Todo proyecto, y más uno de IA, debe tener objetivos claros y un proceso ágil de incepción correcto.  Más aún, en temas de IA, el no tener claridad del ¿qué?, el ¿cómo? y las métricas de éxito van a derivav en frustación y proyectos fallidos.</p>



<p><span style="color: #000000;">La <strong>AI Periodic Table</strong>, creado por IBM, es un enfoque evergreen y minimalista para arquitectos, jefes y líderes técnicos: separa la solución en elementos composables (como una tabla periódica) y te ayuda a decidir <em>qué necesitas</em> para cada caso de uso (chatbot, RAG, agente) con control, trazabilidad y confianza.</span></p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="384" src="https://cloudiostrategy.com/wp-content/uploads/2026/02/Screenshot-2026-02-10-at-2.31.53-PM-1024x384.png" alt="" class="wp-image-3511" srcset="https://cloudiostrategy.com/wp-content/uploads/2026/02/Screenshot-2026-02-10-at-2.31.53-PM-1024x384.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2026/02/Screenshot-2026-02-10-at-2.31.53-PM-300x113.png 300w, https://cloudiostrategy.com/wp-content/uploads/2026/02/Screenshot-2026-02-10-at-2.31.53-PM-768x288.png 768w, https://cloudiostrategy.com/wp-content/uploads/2026/02/Screenshot-2026-02-10-at-2.31.53-PM-1536x576.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2026/02/Screenshot-2026-02-10-at-2.31.53-PM.png 1610w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><span style="color: #000000;">Row 1 — Primitives (lo mínimo que debe existir)</span></h3>



<h4 class="wp-block-heading"><span style="color: #000000;">Pr — Prompts (con foco en <em>system prompt</em>)</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> el diseño de instrucciones que gobiernan el comportamiento del modelo. En particular, el <strong>system prompt</strong> define rol, políticas, restricciones, formato, prioridades y criterio de “verdad”. Es la capa que <em>siempre</em> aplica, incluso si el usuario intenta desviarla.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo (banca/fintech):</strong> system prompt para un asistente interno de pagos:</span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;">“Responde solo usando evidencia del contexto recuperado. Si no hay evidencia, di: <em>No encontrado en fuentes</em>.”</span></li>



<li><span style="color: #000000;">“No reveles PII, secretos, llaves, credenciales ni datos de clientes.”</span></li>



<li><span style="color: #000000;">“No ejecutes acciones; sugiere pasos y valida supuestos.”</span></li>



<li><span style="color: #000000;">“Devuelve: Resumen (1–2 líneas) + Evidencia (citas) + Recomendación (pasos).”</span></li>
</ul>



<h4 class="wp-block-heading"><span style="color: #000000;">Em — Embeddings</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> representaciones numéricas del significado del texto (y a veces de otros formatos) para comparar similitud semántica y recuperar conocimiento relevante.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> embebes runbooks de conciliación y reglas ISO 20022. Luego consultas “cómo mapear <code>endToEndId</code>” y recuperas el fragmento correcto aunque el usuario use otras palabras.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Lg — LLM (modelo predictivo)</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> un modelo de lenguaje es, en esencia, un <strong>modelo predictivo de tokens</strong>: estima el siguiente token más probable dada la entrada (system prompt + contexto recuperado + conversación). Con el contexto correcto, habilita síntesis, explicación, clasificación y razonamiento.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo (open source):</strong> usas un LLM open source como <strong>Llama 3</strong> (en una VPC o en entorno local) para resumir incidentes, generar borradores operativos y responder preguntas internas <em>basadas en evidencia</em> (vía RAG) y bajo políticas (guardrails).</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Row 2 — Compositions (cuando pasa de demo a producto)</span></h3>



<h4 class="wp-block-heading"><span style="color: #000000;">Fc — Function call</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> un mecanismo para invocar herramientas (APIs, DB, motores de reglas) con parámetros estructurados. Reduce “inventos” porque los datos vienen del sistema fuente.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> “¿Cuál fue el estado del lote 7781?” → llamada a <code>get_settlement_batch_status(batch_id=7781)</code> y respuesta con estado real, timestamps y códigos.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Vx — Vector (vector store / vector search)</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> la infraestructura para almacenar embeddings y hacer búsqueda semántica (kNN). Es el índice de conocimiento para recuperar contexto.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> OpenSearch Vector indexa manuales antifraude, catálogos de códigos y procedimientos. Para cada pregunta, recuperas “top 5 chunks” con score y los pasas a RAG.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Rg — RAG</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> patrón de <strong>recuperar + generar</strong>: primero recuperas evidencia desde tu base documental (vector o híbrido) y luego el LLM genera respuesta basándose en esa evidencia.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> “¿Qué campos ISO 20022 son obligatorios para <code>pacs.008</code> en nuestro flujo?” → recuperas el apartado exacto de tu estándar interno y respondes con lista + citas.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Gr — Guardrails</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> controles de seguridad y calidad: políticas (PII/secretos), límites de herramientas, formatos obligatorios, detección de inyección, y rechazo seguro.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> si el usuario solicita datos de cliente, se bloquea. Si la respuesta no tiene evidencia, se fuerza: “No encontrado en fuentes”.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Mm — Multimodal</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> capacidad para trabajar con más de texto (por ejemplo, imagen + texto). Útil para diagramas, capturas, formularios y pantallazos.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> un analista sube una captura de un diagrama de pagos y el sistema devuelve componentes, flujo, puntos de control y sugerencias de observabilidad.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Row 3 — Deployment (operación real: costo, riesgo y mejora continua)</span></h3>



<h4 class="wp-block-heading"><span style="color: #000000;">Ag — Agent (componente, no un LLM)</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> un <strong>componente de control</strong> que coordina pasos para lograr un objetivo. El agente <em>usa</em> uno o varios LLMs, herramientas y memoria, pero no es el modelo. Decide cuándo recuperar contexto, cuándo llamar herramientas, cómo validar y cuándo detenerse.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> “resolver un incidente de conciliación” → el agente identifica el fallo, recupera runbooks (RAG), ejecuta chequeos (function calls), valida hallazgos y produce un plan de mitigación trazable.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Ft — Finetune (entrenamiento adicional)</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> <strong>entrenar</strong> (fine-tuning) un modelo con datos propios para aprender patrones de salida, taxonomías, formatos o decisiones recurrentes. Es especialmente útil cuando prompt + RAG no logran consistencia suficiente.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> entrenas para que el asistente clasifique tickets en categorías internas (riesgo, fraude, cumplimiento), y redacte respuestas en un formato de auditoría consistente.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Fw — Framework</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> librerías para construir flujos con control (estados, routing, tools, memoria, evaluación, observabilidad). Reduce código “pegamento” y mejora mantenibilidad.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> defines un flujo: <code>intención → retrieve → responder → (si pide acción) tool_call → validar → respuesta final</code> con reintentos y límites por política.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Rt — Red-teaming</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> pruebas adversarias para romper el sistema antes de producción: jailbreak, prompt injection, exfiltración, abuso de herramientas y sesgos.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> inyectas instrucciones maliciosas en documentos (“ignora políticas”) y verificas que el sistema no obedezca; también pruebas pedidos de acciones riesgosas y confirmas que no se ejecutan sin autorización y controles.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Sm — Small (distilled)</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> modelos pequeños para tareas específicas con menor costo/latencia; permiten enrutar y filtrar, reservando el modelo grande para lo complejo.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> un modelo small clasifica intención (FAQ/operación/incidente/riesgo) y solo las complejas pasan a LLM grande + RAG.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Row 4 — Emerging (calidad, confianza y ventaja competitiva)</span></h3>



<h4 class="wp-block-heading"><span style="color: #000000;">Ma — Multi-agent</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> varios agentes especializados que colaboran y revisan. Aumentan calidad y reducen errores frente a una sola “mente”.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> agente de pagos redacta, agente de seguridad valida PII, agente de compliance revisa lenguaje regulatorio, agente QA verifica evidencia y consistencia.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Sy — Synthetic data</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> datos sintéticos para entrenamiento y evaluación: casos borde, Q&amp;A, conversaciones, escenarios raros. Permite escalar pruebas sin exponer data sensible.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> generas 2,000 preguntas sintéticas sobre AML y conciliación para medir recuperación correcta, tasa de alucinación y cumplimiento de guardrails.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">In — Interpretability (confianza y trazabilidad)</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> mecanismos que elevan <strong>confianza</strong> y auditabilidad: qué fuentes se usaron, por qué se eligieron, qué reglas se aplicaron y qué herramientas se llamaron. Es clave para operación en entornos regulados.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> cada respuesta incluye “fuentes (con score)”, “reglas aplicadas” y “acciones ejecutadas (si aplica)”, habilitando revisión y mejora continua.</span></p>



<h4 class="wp-block-heading"><span style="color: #000000;">Th — Thinking (reasoning)</span></h4>



<p><span style="color: #000000;"><strong>Qué es:</strong> capacidades/modelos orientados a razonamiento profundo para problemas multi-paso y trade-offs.</span></p>



<p><span style="color: #000000;"><strong>Ejemplo:</strong> compara 3 diseños (multi-cuenta vs multi-región), evalúa seguridad, resiliencia y costos, y entrega recomendación con supuestos y justificación.</span></p>



<h2 class="wp-block-heading"><span style="color: #000000;">Analogía final: “predecir reacciones” con la AI Periodic Table</span></h2>



<p><span style="color: #000000;">Esta tabla te ayuda a anticipar qué solución obtendrás al combinar elementos.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Reacción 1: Chatbot confiable (con evidencia y control)</span></h3>



<p><span style="color: #000000;"><strong>help to predict reactions</strong></span></p>



<p><span style="color: #000000;"><strong>chatbot: Em, Vx, Rg, Pr, Gr y Lg</strong></span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;"><strong>Em + Vx</strong>: recuperación semántica</span></li>



<li><span style="color: #000000;"><strong>Rg</strong>: evidencia al contexto del modelo</span></li>



<li><span style="color: #000000;"><strong>Pr</strong>: reglas globales (system prompt)</span></li>



<li><span style="color: #000000;"><strong>Gr</strong>: seguridad/calidad</span></li>



<li><span style="color: #000000;"><strong>Lg</strong>: generación predictiva guiada por evidencia</span></li>
</ul>



<h3 class="wp-block-heading"><span style="color: #000000;">Reacción 2: Agentic loop orientado a objetivo (con acciones)</span></h3>



<p><span style="color: #000000;"><strong>agentic loop (goal): Ag &lt;-&gt; Fc, Fw [Pr, Mm, Ft, Lg]</strong></span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;"><strong>Ag</strong> coordina pasos</span></li>



<li><span style="color: #000000;"><strong>Fc</strong> conecta con sistemas reales</span></li>



<li><span style="color: #000000;"><strong>Fw</strong> gobierna el flujo</span></li>



<li><span style="color: #000000;"><strong>Pr/Mm/Ft/Lg</strong> ajustan comportamiento, entrada multimodal, entrenamiento y potencia del modelo</span></li>
</ul>



<h3 class="wp-block-heading"><span style="color: #000000;">Regla de oro</span></h3>



<p><span style="color: #000000;"><strong>always try to mapping you problem with it</strong></span></p>



<p><span style="color: #000000;">Antes de elegir proveedor o modelo, mapea tu problema con la tabla: te dirá qué necesitas para evidencia, control, operación y confianza, sin perderte.</span></p>



<p><span style="color: #000000;"><strong>IBM es el creador de esta propuesta mira acá:</strong> </span></p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/ESBMgZHzfG0?si=4_7uImCw_kvSvddT" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Pruebas en APIs de microservicios: 5 esenciales para arquitectos de software</title>
		<link>https://cloudiostrategy.com/pruebas-en-apis-de-microservicios/</link>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Mon, 02 Feb 2026 15:00:00 +0000</pubDate>
				<category><![CDATA[Arquitectura]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[calidad de software]]></category>
		<category><![CDATA[integración de sistemas]]></category>
		<category><![CDATA[microservicios]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[testing]]></category>
		<guid isPermaLink="false">https://example.com/?p=1001</guid>

					<description><![CDATA[
En arquitecturas basadas en APIs de microservicios, estas son las pruebas no negociables para asegurar confiabilidad, corrección y seguridad: smoke, funcional, integración, regresión y seguridad, con ejemplos de negocio.
      ]]></description>
										<content:encoded><![CDATA[
<p><span style="color: #000000;"><strong>Las pruebas en APIs de microservicios</strong> son un pilar fundamental en arquitecturas modernas basadas en integración distribuida. Para arquitectos de software y líderes técnicos, la calidad ya no se limita a que “funcione”, sino en garantizar <strong>confiabilidad, seguridad y estabilidad operativa</strong> en sistemas distribuidos que evolucionan constantemente.</span></p>



<p><span style="color: #000000;">Una API no es solo un endpoint: es un <strong>contrato vivo</strong> entre equipos, servicios y, muchas veces, organizaciones completas. Cuando ese contrato se rompe —por un despliegue defectuoso, un cambio no controlado o una brecha de seguridad— el impacto es inmediato en el negocio.</span></p>



<p><span style="color: #000000;">Por eso existen <strong>pruebas que no son negociables</strong>. No dependen del lenguaje, del framework ni del proveedor cloud. Son la base mínima para evitar desplegar <strong>código roto o vulnerable</strong> en producción.</span></p>



<p><span style="color: #000000;">En esta guía revisamos <strong>las pruebas esenciales en APIs de microservicios</strong>, explicando <strong>qué validan, cómo implementarlas y por qué son críticas</strong>, utilizando un <strong>caso de negocio realista</strong> para aterrizar cada concepto.</span></p>



<h2 class="wp-block-heading"><span style="color: #000000;">Caso de negocio de referencia</span></h2>



<p><span style="color: #000000;">Plataforma de <strong>pagos digitales B2C</strong>, basada en microservicios:</span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;"><strong>Payment API</strong> → recibe y orquesta pagos</span></li>



<li><span style="color: #000000;"><strong>Account API</strong> → valida saldo y estado de la cuenta</span></li>



<li><span style="color: #000000;"><strong>Ledger API</strong> → registra movimientos contables</span></li>



<li><span style="color: #000000;"><strong>Notification API</strong> → notifica al cliente</span></li>
</ul>



<p><span style="color: #000000;">Cada servicio expone APIs REST y participa en flujos síncronos y asíncronos.</span></p>



<h2 class="wp-block-heading"><span style="color: #000000;">Smoke Testing en APIs de microservicios: confirmar que el sistema “respira”</span></h2>



<p><span style="color: #000000;">El <em>Smoke Testing</em> valida lo más básico después de un despliegue:</span></p>



<p><span style="color: #000000;"><strong>¿La API está disponible y responde sin fallar?</strong></span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Ejemplo de negocio</span></h3>



<p><span style="color: #000000;">Al iniciar la jornada operativa, un comercio necesita confirmar que la plataforma <strong>puede aceptar pagos</strong>, aunque aún no ejecute flujos completos.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Cómo se prueba (ejemplo práctico)</span></h3>



<ul class="wp-block-list">
<li><span style="color: #000000;">Tras desplegar una nueva versión de <strong>Payment API</strong>, se ejecuta automáticamente:</span>
<ul class="wp-block-list">
<li><span style="color: #000000;"><code>GET /health</code></span></li>



<li><span style="color: #000000;"><code>POST /payments</code> con un payload mínimo mockeado</span></li>
</ul>
</li>



<li><span style="color: #000000;">Se valida:</span>
<ul class="wp-block-list">
<li><span style="color: #000000;">Respuesta HTTP distinta de 5xx</span></li>



<li><span style="color: #000000;">Tiempo de respuesta dentro de un umbral aceptable</span></li>



<li><span style="color: #000000;">Que el servicio no se reinicia ni lanza errores fatales</span></li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><span style="color: #000000;">Valor arquitectónico</span></h3>



<p><span style="color: #000000;">El smoke testing asegura que la API es enrutable, que la configuración es correcta y que las dependencias mínimas están disponibles. Es la <strong>primera barrera</strong> antes de exponer tráfico real.</span></p>



<h2 class="wp-block-heading"><span style="color: #000000;">Functional Testing en APIs: validar el contrato, no la implementación</span></h2>



<p><span style="color: #000000;">El <em>Functional Testing</em> garantiza que la API <strong>cumple exactamente con su contrato</strong>, independientemente de cómo esté implementada internamente.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Ejemplo de negocio</span></h3>



<p><span style="color: #000000;">Un cliente realiza un pago desde una app móvil y espera una respuesta clara e inmediata.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Cómo se prueba (ejemplo práctico)</span></h3>



<p><span style="color: #000000;"><strong>Input válido</strong></span></p>



<pre class="wp-block-preformatted"><span style="color: #000000;"><code>{
  "accountId": "ACC-001",
  "amount": 150,
  "currency": "USD",
  "paymentMethod": "CARD"
}</code></span></pre>



<p><span style="color: #000000;"><strong>Output esperado</strong></span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;">HTTP 201</span></li>



<li><span style="color: #000000;">Estado: <code>AUTHORIZED</code></span></li>



<li><span style="color: #000000;"><code>transactionId</code> generado</span></li>
</ul>



<p><span style="color: #000000;"><strong>Input inválido (saldo insuficiente)</strong></span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;">HTTP 422</span></li>



<li><span style="color: #000000;">Mensaje funcional explícito (sin ambigüedad para el consumidor)</span></li>
</ul>



<h3 class="wp-block-heading"><span style="color: #000000;">Valor arquitectónico</span></h3>



<p><span style="color: #000000;">El functional testing protege el contrato frente a cambios internos, permite que múltiples consumidores evolucionen sin fricción y reduce dependencias implícitas entre equipos.</span></p>



<h2 class="wp-block-heading"><span style="color: #000000;">Integration Testing en microservicios: validar el flujo real de negocio</span></h2>



<p><span style="color: #000000;">El <em>Integration Testing</em> prueba el sistema <strong>como opera en producción</strong>, incluyendo dependencias reales.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Ejemplo de negocio</span></h3>



<p><span style="color: #000000;">Un pago exitoso debe validar saldo, registrar el movimiento y notificar al cliente.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Cómo se prueba (ejemplo práctico)</span></h3>



<ol class="wp-block-list">
<li><span style="color: #000000;"><strong>Payment API</strong> recibe la orden</span></li>



<li><span style="color: #000000;"><strong>Account API</strong> confirma saldo</span></li>



<li><span style="color: #000000;"><strong>Ledger API</strong> registra el débito</span></li>



<li><span style="color: #000000;"><strong>Notification API</strong> envía confirmación</span></li>
</ol>



<p><span style="color: #000000;">Se valida que:</span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;">El estado sea consistente entre servicios</span></li>



<li><span style="color: #000000;">La transacción se registre una sola vez (idempotencia)</span></li>



<li><span style="color: #000000;">Los fallos parciales se manejen correctamente (timeouts, retries, estados intermedios)</span></li>
</ul>



<h3 class="wp-block-heading"><span style="color: #000000;">Valor arquitectónico</span></h3>



<p><span style="color: #000000;">El integration testing detecta problemas de orquestación o coreografía, evita estados inconsistentes y refuerza la confiabilidad del flujo de negocio.</span></p>



<h2 class="wp-block-heading"><span style="color: #000000;">Regression Testing en APIs: proteger lo que ya funciona</span></h2>



<p><span style="color: #000000;">En microservicios, el cambio es constante. Cada modificación introduce riesgo. El <em>Regression Testing</em> confirma que los cambios nuevos no rompen funcionalidades existentes.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Ejemplo de negocio</span></h3>



<p><span style="color: #000000;">Se habilitan pagos con <strong>billetera digital</strong>, manteniendo pagos con tarjeta.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Cómo se prueba (ejemplo práctico)</span></h3>



<ul class="wp-block-list">
<li><span style="color: #000000;">Antes del despliegue, se ejecutan flujos históricos:</span>
<ul class="wp-block-list">
<li><span style="color: #000000;">Pagos con tarjeta</span></li>



<li><span style="color: #000000;">Reembolsos</span></li>



<li><span style="color: #000000;">Pagos rechazados</span></li>
</ul>
</li>



<li><span style="color: #000000;">Se valida que:</span>
<ul class="wp-block-list">
<li><span style="color: #000000;">No cambian status codes</span></li>



<li><span style="color: #000000;">No se rompen contratos existentes</span></li>



<li><span style="color: #000000;">Los consumidores actuales siguen funcionando sin cambios</span></li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><span style="color: #000000;">Valor arquitectónico</span></h3>



<p><span style="color: #000000;">El regression testing permite evolucionar la plataforma sin miedo, protege integraciones externas y reduce incidentes post-deploy.</span></p>



<h2 class="wp-block-heading"><span style="color: #000000;">Security Testing en APIs de microservicios: seguridad por diseño</span></h2>



<p><span style="color: #000000;">Las APIs son uno de los principales vectores de ataque en sistemas distribuidos. El <em>Security Testing</em> busca vulnerabilidades comunes y valida controles de acceso, datos y comportamiento ante ataques.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Ejemplo de negocio</span></h3>



<p><span style="color: #000000;">Un atacante intenta ejecutar pagos usando tokens robados o manipulando datos sensibles.</span></p>



<h3 class="wp-block-heading"><span style="color: #000000;">Cómo se prueba (ejemplo práctico)</span></h3>



<ul class="wp-block-list">
<li><span style="color: #000000;">Token inválido → HTTP 401</span></li>



<li><span style="color: #000000;">Token sin scope <code>payments.write</code> → HTTP 403</span></li>



<li><span style="color: #000000;">Intentos de modificar <code>accountId</code> → bloqueados</span></li>



<li><span style="color: #000000;">Payloads maliciosos → sanitizados / rechazados según regla</span></li>
</ul>



<p><span style="color: #000000;">Además:</span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;">Los errores no filtran información sensible</span></li>



<li><span style="color: #000000;">Los logs no exponen datos críticos</span></li>
</ul>



<h3 class="wp-block-heading"><span style="color: #000000;">Valor arquitectónico</span></h3>



<p><span style="color: #000000;">El security testing reduce la superficie de ataque, refuerza cumplimiento regulatorio y protege la confianza del negocio.</span></p>



<h2 class="wp-block-heading"><span style="color: #000000;">Conclusión: las pruebas como parte del diseño de la API</span></h2>



<p><span style="color: #000000;">En arquitecturas basadas en <strong>APIs de microservicios</strong>, las pruebas no son una fase posterior. Son <strong>parte integral del diseño arquitectónico</strong>.</span></p>



<ul class="wp-block-list">
<li><span style="color: #000000;"><strong>Smoke Testing</strong> → disponibilidad</span></li>



<li><span style="color: #000000;"><strong>Functional Testing</strong> → contrato</span></li>



<li><span style="color: #000000;"><strong>Integration Testing</strong> → flujo real</span></li>



<li><span style="color: #000000;"><strong>Regression Testing</strong> → estabilidad</span></li>



<li><span style="color: #000000;"><strong>Security Testing</strong> → confianza</span></li>
</ul>



<p><span style="color: #000000;">Para un arquitecto de software, <strong>no definir estas pruebas es dejar decisiones críticas al azar</strong>.</span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo Migrar a la Nube: El Roadmap Estratégico para Empresas</title>
		<link>https://cloudiostrategy.com/como-migrar-a-la-nube/</link>
					<comments>https://cloudiostrategy.com/como-migrar-a-la-nube/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Thu, 26 Dec 2024 16:35:43 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Computación en la Nube]]></category>
		<category><![CDATA[migracion]]></category>
		<guid isPermaLink="false">https://cloudiostrategy.com/?p=3353</guid>

					<description><![CDATA[Introducción: Cómo migrar a la nube paso a paso La migración a la nube no es solo una decisión tecnológica, es un cambio estratégico que redefine la operación y la innovación en […]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-medium"><img decoding="async" width="300" height="225" src="https://cloudiostrategy.com/wp-content/uploads/2024/12/image1-300x225.jpg" alt="como migrar a la nube" class="wp-image-3361" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/12/image1-300x225.jpg 300w, https://cloudiostrategy.com/wp-content/uploads/2024/12/image1-768x576.jpg 768w, https://cloudiostrategy.com/wp-content/uploads/2024/12/image1.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<div style="height:70px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="introduccion-el-camino-hacia-la-transformacion-digital"><strong>Introducción: Cómo migrar a la nube paso a paso</strong></h2>



<p>La migración a la nube no es solo una decisión tecnológica,&nbsp;<strong>es un cambio estratégico</strong>&nbsp;que redefine la operación y la innovación en tu organización. Para lograrlo con éxito, necesitas un enfoque estructurado que:</p>



<ul class="wp-block-list">
<li>Identifique&nbsp;<strong>capacidades organizacionales clave</strong>.</li>



<li>Desarrolle un&nbsp;<strong>ciclo completo de adopción</strong>, desde la planificación hasta la optimización.</li>



<li>Establezca un&nbsp;<strong>proceso de madurez progresiva</strong>&nbsp;en aprendizaje, liderazgo, escalabilidad y seguridad.</li>
</ul>



<p>En esta guía, se propone un enfoque de&nbsp;<strong>cómo migrar a la nube</strong>&nbsp;de manera eficiente y segura, logrando beneficios tangibles para tu negocio.</p>



<div class="wp-block-rank-math-toc-block" id="rank-math-toc"><h2>Contenidos</h2><nav><ul><li class=""><a href="#introduccion-el-camino-hacia-la-transformacion-digital">Introducción: Cómo migrar a la nube paso a paso</a></li><li class=""><a href="#fase-1-estrategia-define-la-vision-los-recursos-y-los-resultados-esperados">Fase 1: Estrategia &#8211; Define la Visión, los recursos y los resultados esperados</a></li><li class=""><a href="#fase-2-planificacion-disena-tu-roadmap-y-cierra-brechas">Fase 2: Planificación &#8211; Diseña tu Roadmap y Cierra Brechas</a><ul><li class=""><a href="#crea-una-hoja-de-ruta-clara">Crea una Hoja de Ruta Clara</a></li></ul></li><li class=""><a href="#fase-3-preparacion-establece-la-base-correcta">Fase 3: Preparación &#8211; Establece la Base Correcta</a><ul><li class=""><a href="#pilares-fundamentales-para-una-migracion-exitosa">Pilares Fundamentales para una Migración Exitosa</a></li></ul></li><li class=""><a href="#fase-4-adopcion-ejecuta-con-control-y-escalabilidad">Fase 4: Adopción &#8211; Ejecuta con Control y Escalabilidad</a><ul><li class=""><a href="#pasos-en-una-adopcion">Pasos en una Adopción</a></li></ul></li><li class=""><a href="#fase-5-optimizacion-e-innovacion-continua">Fase 5: Optimización e Innovación Continua</a><ul><li class=""><a href="#optimizacion">Optimización</a></li><li class=""><a href="#innovacion-con-la-nube">Innovación con la Nube</a></li></ul></li><li class=""><a href="#conclusion-como-migrar-a-la-nube-con-exito">Conclusión: Cómo Migrar a la Nube con Éxito</a></li><li class=""><a href="#historias-de-exito-migracion-a-la-nube">Historias de Éxito: Migración a la Nube</a><ul><li class=""><a href="#fico-impulsando-la-analitica-predictiva-con-aws">FICO: Impulsando la Analítica Predictiva con AWS</a></li><li class=""><a href="#3-m-health-information-systems-transformacion-de-la-analitica-sanitaria">3M Health Information Systems: Transformación de la Analítica Sanitaria</a></li></ul></li><li class=""><a href="#preguntas-frecuentes-fa-qs">Preguntas Frecuentes (FAQs)</a></li></ul></nav></div>



<h2 class="wp-block-heading" id="fase-1-estrategia-define-la-vision-los-recursos-y-los-resultados-esperados"><strong>Fase 1: Estrategia &#8211; Define la Visión, los recursos y los resultados esperados</strong></h2>



<p>Antes de dar el primer paso, define&nbsp;<strong>claramente tus motivaciones</strong>&nbsp;y objetivos de negocio. Los términos podrían ser:</p>



<ul class="wp-block-list">
<li><strong>Reducción de costos</strong>: Transición de CAPEX a OPEX mediante pago por uso, especialmente en sistemas legados.</li>



<li><strong>Escalabilidad y agilidad</strong>: Responde a la demanda sin límites físicos. ¿Cuál es tu respuesta a la agilidad empresarial?.</li>



<li><strong>Innovación</strong>: Accede a tecnologías avanzadas como analítica e inteligencia artificial, sin incurrir en gigantes inversiones.</li>
</ul>



<p>El segundo paso es hacer un inventario de recursos y definir métricas relacionadas a los mismos:</p>



<ul class="wp-block-list">
<li><strong>Inventario inicial de workloads</strong>: Identifica aplicaciones y sistemas críticos, secundarios y no críticos.</li>



<li><strong>Métricas de éxito tempranas</strong>: Define indicadores como reducción de costos (TCO) y tiempos de respuesta.</li>



<li>En términos de&nbsp;<strong>Innovación</strong>&nbsp;se puede pensar en métricas como número de iniciativas habilitadas, lead time de implementación de iniciativas o número de iniciativas estables.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="fase-2-planificacion-disena-tu-roadmap-y-cierra-brechas"><a></a><strong>Fase 2: Planificación &#8211; Diseña tu Roadmap y Cierra Brechas</strong></h2>



<h3 class="wp-block-heading" id="crea-una-hoja-de-ruta-clara"><a></a><strong>Crea una Hoja de Ruta Clara</strong></h3>



<p>Un plan sólido garantiza una transición ordenada y controlada. Considera estos elementos:</p>



<ol class="wp-block-list">
<li><strong>Evaluación de recursos y habilidades</strong>:</li>
</ol>



<ul class="wp-block-list">
<li><strong>Análisis de capacidades organizacionales</strong>: Evalúa el nivel de habilidades técnicas y liderazgo dentro de tu equipo.</li>



<li><strong>Capacitación</strong>: Crea un&nbsp;<strong>plan de upskilling</strong>&nbsp;progresivo para roles clave.</li>
</ul>



<ol start="2" class="wp-block-list">
<li><strong>Definición de “Zonas de Aterrizaje”</strong>:</li>
</ol>



<ul class="wp-block-list">
<li>Define entornos base seguros y escalables para desplegar workloads (aplicaciones o sistemas). Los términos de una zona de aterrizaje incluyen cuestiones como: estandarización, seguridad, cumplimiento, escalabilidad y niveles de automatización.</li>
</ul>



<ol start="3" class="wp-block-list">
<li><strong>Clasificación de cargas de trabajo</strong>:</li>
</ol>



<ul class="wp-block-list">
<li><strong>Lift &amp; Shift</strong>: Movimientos rápidos y sin cambios.</li>



<li><strong>Optimización parcial</strong>: Mejoras mínimas (replatforming).</li>



<li><strong>Modernización avanzada</strong>: Rediseño de aplicaciones para cloud-native.<br>Estas son estrategias de migración y puedes saber más de ellas en: <a href="https://cloudiostrategy.com/estrategias-de-migracion-a-la-nube/" data-type="link" data-id="https://cloudiostrategy.com/estrategias-de-migracion-a-la-nube/">Estrategias de Migración a la Nube(7Rs)</a>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="fase-3-preparacion-establece-la-base-correcta"><a></a><strong>Fase 3: Preparación &#8211; Establece la Base Correcta</strong></h2>



<h3 class="wp-block-heading" id="pilares-fundamentales-para-una-migracion-exitosa"><a></a><strong>Pilares Fundamentales para una Migración Exitosa</strong></h3>



<ol class="wp-block-list">
<li><strong>Infraestructura y Automatización</strong>:</li>
</ol>



<ul class="wp-block-list">
<li>Implementa&nbsp;<strong>Infraestructura como Código (IaC)</strong>&nbsp;con herramientas como Terraform, OpenTofu o scripts automatizados.</li>



<li>Automatiza despliegues con pipelines CI/CD para reducir errores humanos.</li>
</ul>



<ol start="2" class="wp-block-list">
<li><strong>Seguridad y Gobernanza</strong>:</li>
</ol>



<ul class="wp-block-list">
<li>Establece políticas de acceso con&nbsp;<strong>gestión de identidades</strong>&nbsp;(IAM).</li>



<li>Crea controles automatizados de costos y recursos para evitar desperdicios.</li>



<li>Aplica un enfoque de&nbsp;<strong>seguridad por capas</strong>:</li>



<li>Autenticación y cifrado.</li>



<li>Segmentación de redes y monitoreo constante.</li>
</ul>



<ol start="3" class="wp-block-list">
<li><strong>Preparación del Entorno</strong>:</li>
</ol>



<ul class="wp-block-list">
<li>Una vez definidas, implementa las&nbsp;<strong>zonas de aterrizaje</strong>&nbsp;con configuraciones optimizadas para cargas de trabajo específicas.</li>
</ul>



<p><strong>Criterios de éxito</strong>:</p>



<ul class="wp-block-list">
<li>Reducción de tiempos de aprovisionamiento (de semanas a minutos).</li>



<li>Cumplimiento de políticas de seguridad y gobernanza en todo el entorno.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="fase-4-adopcion-ejecuta-con-control-y-escalabilidad"><a></a><strong>Fase 4: Adopción &#8211; Ejecuta con Control y Escalabilidad</strong></h2>



<p>En esta fase, la&nbsp;<strong>iteración y la agilidad</strong>&nbsp;son clave para minimizar riesgos.</p>



<h3 class="wp-block-heading" id="pasos-en-una-adopcion"><a></a><strong>Pasos en una Adopción</strong></h3>



<ol class="wp-block-list">
<li><strong>Prioriza workloads no críticos</strong>: Permite ganar experiencia antes de mover aplicaciones complejas.</li>



<li><strong>Migración por fases</strong>: Despliega en etapas para validar rendimiento y estabilidad.</li>



<li><strong>Monitoreo continuo</strong>: Implementa herramientas nativas de observabilidad para identificar cuellos de botella:</li>
</ol>



<ul class="wp-block-list">
<li><strong>Cloud Monitoring</strong>: Tando desde el punto de vista de operacoines, como el de desempeño de aplicaciones y como el de seguridad.</li>



<li><strong>Cost Management</strong>: Evaluar iterativamente el gasto en nube.</li>



<li><strong>SLA/SLO Tracking</strong>: Evaluar el cumplimiento de los acuerdos y objetivos de nivel de servicio definidos para aplicaciones, datos y sistemas.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="fase-5-optimizacion-e-innovacion-continua"><a></a><strong>Fase 5: Optimización e Innovación Continua</strong></h2>



<p>La migración a la nube no termina una vez que los workloads están activos. El verdadero valor surge cuando optimizas y&nbsp;<strong>transformas tu negocio</strong>.</p>



<h3 class="wp-block-heading" id="optimizacion"><a></a><strong>Optimización</strong></h3>



<ol class="wp-block-list">
<li><strong>Automatización avanzada</strong>: Mejora pipelines CI/CD y aprovecha soluciones serverless.</li>



<li><strong>Right-sizing</strong>: Ajusta recursos para maximizar eficiencia de costos.</li>



<li><strong>Replatform</strong>: Busca servicios autogestionados que reemplazen a soluciones como bases de datos, OAauth 2.0 servicios, etc.</li>
</ol>



<h3 class="wp-block-heading" id="innovacion-con-la-nube"><a></a><strong>Innovación con la Nube</strong></h3>



<ul class="wp-block-list">
<li>Aprovecha el&nbsp;<strong>poder de los datos</strong>&nbsp;con analítica avanzada:</li>



<li>Plataformas de big data y machine learning.</li>



<li>Desarrolla nuevas capacidades en la nube, como IA para análisis predictivo o personalización en tiempo real.</li>
</ul>



<p><strong>Métricas de éxito</strong>:</p>



<ul class="wp-block-list">
<li><strong>Reducción de costos</strong>: Optimización del 20%-30% en recursos.</li>



<li><strong>Mayor agilidad</strong>: Despliegues de nuevas aplicaciones en horas en lugar de semanas.</li>



<li><strong>Capacidad de innovación</strong>: Nuevas soluciones que impactan directamente en la experiencia del cliente.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="conclusion-como-migrar-a-la-nube-con-exito"><a></a><strong>Conclusión: Cómo Migrar a la Nube con Éxito</strong></h2>



<p>Migrar a la nube es un&nbsp;<strong>viaje estratégico</strong>&nbsp;que transforma la forma en que operas, escalas e innovas. El éxito no depende solo de la tecnología, sino de la&nbsp;<strong>capacidad de tu organización para aprender, adaptarse y liderar</strong>&nbsp;en un entorno digital.</p>



<p><strong>Claves para una migración exitosa</strong>:</p>



<ul class="wp-block-list">
<li>Una&nbsp;<strong>estrategia clara</strong>&nbsp;con objetivos definidos.</li>



<li>Un roadmap práctico con un ciclo iterativo de adopción y optimización.</li>



<li>La consolidación de habilidades, procesos y tecnologías enfocadas en&nbsp;<strong>escalabilidad y seguridad</strong>.</li>
</ul>


		<div data-elementor-type="wp-post" data-elementor-id="2262" class="elementor elementor-2262">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c716dfe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c716dfe" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe781c2" data-id="fe781c2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3d599a0 elementor-widget elementor-widget-text-editor" data-id="3d599a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Las empresas en su Industria ya están innovando</strong>.  El Lead Time y el Time to Market son la diferencia entre las empresas que perdurarán en el mercado.  Conozca que posibilidades le ofrece AWS para su Transformación Digital en un <strong>entrenamiento gratuito</strong> para usted y su equipo de TI.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e9a0648 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9a0648" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-014da33" data-id="014da33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d893d0c elementor-widget elementor-widget-html" data-id="d893d0c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="wp-block-button is-style-fill" style="text-align: center"><a class="wp-block-button__link has-black-color has-luminous-vivid-amber-background-color has-text-color has-background" href="https://cloudiostrategy.com/entrenamiento-gratuito-transformacion-digital-en-aws/" target="_blank" rel="noopener"><strong>Registrarme al Entrenamiento Gratuito: Transformación Digital en AWS</strong></a></div>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="historias-de-exito-migracion-a-la-nube">Historias de Éxito: Migración a la Nube</h2>



<p>Sabe como migrar a la nube, involucra más estrategia y tácticas alrededor de objetivos, que una receta definida.  Muchas empresas empiezan su camino por ejes y lo expanden progresivamente.  Estas empresas, entre otras, son ejemplos de transformaciones digitales en la nube.</p>



<h3 class="wp-block-heading" id="fico-impulsando-la-analitica-predictiva-con-aws">FICO: Impulsando la Analítica Predictiva con AWS</h3>



<p>FICO, líder mundial en soluciones de analítica predictiva, migró a AWS para modernizar su infraestructura. Este movimiento permitió reducir costos operativos y acelerar el desarrollo de sus plataformas, ofreciendo servicios más ágiles a sus clientes. <a href="https://aws.amazon.com/solutions/case-studies/fico/" target="_blank" rel="noreferrer noopener nofollow">Leer más sobre la historia de FICO</a>.</p>



<h3 class="wp-block-heading" id="3-m-health-information-systems-transformacion-de-la-analitica-sanitaria">3M Health Information Systems: Transformación de la Analítica Sanitaria</h3>



<p>3M HIS eligió Amazon Redshift para construir una plataforma de analítica en salud, logrando una solución escalable que procesa millones de registros médicos en tiempo real. La decisión de migrar a la nube transformó su capacidad de ofrecer insights críticos a los profesionales de la salud. <a href="https://aws.amazon.com/es/blogs/big-data/why-3m-health-information-systems-chose-amazon-redshift-to-build-a-healthcare-analytics-platform/" target="_blank" rel="noreferrer noopener nofollow">Descubre cómo lo hizo 3M HIS</a>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="preguntas-frecuentes-fa-qs"><a></a><strong>Preguntas Frecuentes (FAQs)</strong></h2>



<ol class="wp-block-list">
<li><strong>¿Qué necesito para migrar a la nube?</strong><br>Una evaluación clara de tu infraestructura, capacidades y un plan estructurado.</li>



<li><strong>¿Cuánto tiempo tarda una migración a la nube?</strong><br>Depende del alcance, pero suele implementarse por fases.</li>



<li><strong>¿Cuáles son los mayores beneficios de migrar a la nube?</strong><br>Reducción de costos, mayor agilidad y acceso a tecnologías avanzadas como IA y big data.</li>
</ol>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudiostrategy.com/como-migrar-a-la-nube/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Estrategias de Migración a la Nube(7Rs)</title>
		<link>https://cloudiostrategy.com/estrategias-de-migracion-a-la-nube/</link>
					<comments>https://cloudiostrategy.com/estrategias-de-migracion-a-la-nube/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Thu, 05 Sep 2024 17:13:19 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Tecnologías]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Computación en la Nube]]></category>
		<category><![CDATA[migracion]]></category>
		<guid isPermaLink="false">https://cloudiostrategy.com/?p=3319</guid>

					<description><![CDATA[Migrar a la nube es una decisión estratégica crucial para cualquier organización moderna. Para los líderes de TI, es esencial comprender las diferentes estrategias de migración a la nube y […]]]></description>
										<content:encoded><![CDATA[
<p>Migrar a la nube es una decisión estratégica crucial para cualquier organización moderna. Para los líderes de TI, es esencial comprender las diferentes estrategias de migración a la nube y cómo se alinean con los objetivos de la empresa, en este artículo vamos a revisar las 7 Estrategias de Migración a la Nube (7Rs) propuestas por AWS.</p>



<p>Ya sea simplemente mover aplicaciones existentes (migración a la nube) o rediseñar completamente tu infraestructura digital para aprovechar al máximo las capacidades de la nube (transformación en la nube), requiere de una estrategia adecuada, AWS promueve 7 estrategias de migración a la nube (las 7Rs):</p>



<ul class="wp-block-list">
<li><a href="#rehost">Rehost</a></li>



<li><a href="#replatform">Replatform</a></li>



<li><a href="#repurchase">Repurchase</a></li>



<li><a href="#refactor">Refactor / Re-architect</a></li>



<li><a href="#retire">Retire</a></li>



<li><a href="#retain">Retain</a></li>



<li><a href="#realocate">Realocate</a></li>
</ul>



<p>Este artículo te ayudará a entender cada una, cuándo utilizarlas, los pros y contras asociados, de forma que puedas tomar una decisión informada, buscando la innovación y optimización de recursos.</p>



<h2 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-e1b39c0d533d74bbbc3e6a9a890dae6f">Estrategias de Migración a la Nube (7Rs)</h2>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-04f477b912b460eb13325f9980400811" id="rehost">Rehost (Lift and Shift)</h3>



<p>El Rehost, o &#8220;lift and shift&#8221;, es una estrategia de migración a la nube que implica trasladar aplicaciones y datos a la nube con pocos o ningún cambio. Es una opción ideal para organizaciones que buscan una transición rápida, sin la necesidad de rediseñar su infraestructura actual.</p>



<div class="wp-block-columns has-border-color has-ast-global-color-6-border-color is-layout-flex wp-container-core-columns-is-layout-cb277dc2 wp-block-columns-is-layout-flex" style="border-width:1px;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-290298db19f0693ffe6e994b34cb8c37">Casos de Uso</h4>



<ul class="wp-block-list">
<li><strong>Migración a la nube rápida</strong>:** Para empresas que necesitan migrar cargas de trabajo críticas a la nube de manera urgente.</li>
</ul>



<ul class="wp-block-list">
<li><strong>Optimización de costos:</strong> Enfocado en reducir costos operativos manteniendo la estructura de las aplicaciones tal como están.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-d50fc98ff2e6aad5d39aeedca03c95e8">Pros</h4>



<ul class="wp-block-list">
<li>Implementación rápida y sencilla.</li>



<li>Menores costos iniciales.</li>



<li>Menor riesgo en la ejecución.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-9c9de52cae23b545dafa51bdf638e5d6">Cons</h4>



<ul class="wp-block-list">
<li>No optimiza completamente las aplicaciones para la nube.</li>



<li>Puede generar costos operativos más altos a largo plazo.</li>
</ul>
</div>
</div>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-18e4b9883d3ef5f39365097bf0fead6e" id="replatform">Replatform (Lift, Tinker, and Shift)</h3>



<p>Replatform es una estrategia de migración que implica hacer ligeros ajustes a la aplicación para optimizar su rendimiento en la nube. A diferencia de Rehost, esta estrategia aprovecha algunas capacidades de la nube sin realizar un rediseño completo, lo que puede llevar a una mayor eficiencia operativa.</p>



<div class="wp-block-columns has-border-color has-ast-global-color-6-border-color is-layout-flex wp-container-core-columns-is-layout-cb277dc2 wp-block-columns-is-layout-flex" style="border-width:1px;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-290298db19f0693ffe6e994b34cb8c37">Casos de Uso</h4>



<ul class="wp-block-list">
<li><strong>Optimización sin rediseño completo:</strong> Empresas que buscan mejorar el rendimiento y la eficiencia de sus aplicaciones en la nube.</li>



<li><strong>Migración a la nube con mejora del rendimiento:</strong> Ideal cuando se requiere optimizar ciertas funciones para aprovechar mejor los servicios en la nube.</li>
</ul>



<p></p>



<ul class="wp-block-list">
<li></li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-d50fc98ff2e6aad5d39aeedca03c95e8">Pros</h4>



<ul class="wp-block-list">
<li>Balance entre simplicidad y optimización.</li>



<li>Mejora del rendimiento sin grandes modificaciones.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-9c9de52cae23b545dafa51bdf638e5d6">Cons</h4>



<ul class="wp-block-list">
<li>Requiere un análisis más profundo de la arquitectura existente.</li>



<li>Puede ser más costoso y complejo que Rehost.</li>
</ul>
</div>
</div>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-99c889ac2c98a9a1e223a8841d451bf1" id="repurchase">Repurchase (Drop and Shop)</h3>



<p>Repurchase implica abandonar una aplicación existente y migrar a una nueva solución SaaS en la nube. Esta estrategia es adecuada cuando una aplicación legada no justifica el esfuerzo de migración y una solución en la nube ofrece mayores beneficios.</p>



<div class="wp-block-columns has-border-color has-ast-global-color-6-border-color is-layout-flex wp-container-core-columns-is-layout-cb277dc2 wp-block-columns-is-layout-flex" style="border-width:1px;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-290298db19f0693ffe6e994b34cb8c37">Casos de Uso</h4>



<ul class="wp-block-list">
<li><strong>Migración a la nube con modernización:</strong> Organizaciones que desean adoptar rápidamente nuevas tecnologías y funcionalidades.</li>



<li><strong>Renovación tecnológica:</strong> Cuando la tecnología existente ya no cumple con los requisitos del negocio.</li>
</ul>



<p></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-d50fc98ff2e6aad5d39aeedca03c95e8">Pros</h4>



<ul class="wp-block-list">
<li>Acceso a las últimas funcionalidades y tecnologías.</li>



<li>Reducción de la carga de mantenimiento.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-9c9de52cae23b545dafa51bdf638e5d6">Cons</h4>



<ul class="wp-block-list">
<li>Puede requerir reentrenamiento del personal.</li>



<li>Dependencia del proveedor SaaS.</li>
</ul>
</div>
</div>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-628b0530c3529acc914514771ac40b71" id="refactor">Refactor / Re-architect</h3>



<p>Refactor o re-architect es una estrategia de transformación en la nube que implica rediseñar una aplicación para aprovechar completamente las capacidades de la nube, como la escalabilidad automática o el uso de microservicios. Esta estrategia se utiliza cuando el objetivo es optimizar el rendimiento y la agilidad a largo plazo.</p>



<div class="wp-block-columns has-border-color has-ast-global-color-6-border-color is-layout-flex wp-container-core-columns-is-layout-cb277dc2 wp-block-columns-is-layout-flex" style="border-width:1px;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-290298db19f0693ffe6e994b34cb8c37">Casos de Uso</h4>



<ul class="wp-block-list">
<li><strong>Transformación en la nube:</strong> Organizaciones que buscan rediseñar sus aplicaciones para maximizar las ventajas de la nube, incluyendo la capacidad de escalar y mejorar la resiliencia.</li>



<li><strong>Innovación continua:</strong> Empresas que necesitan un entorno ágil y adaptable para soportar el crecimiento y la innovación.</li>
</ul>



<p></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-d50fc98ff2e6aad5d39aeedca03c95e8">Pros</h4>



<ul class="wp-block-list">
<li>Máximo aprovechamiento de las capacidades de la nube.</li>



<li>Posibilidad de mejorar significativamente la agilidad y escalabilidad de una solución.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-9c9de52cae23b545dafa51bdf638e5d6">Cons</h4>



<ul class="wp-block-list">
<li>Alto costo inicial y tiempo de desarrollo.</li>



<li>Mayor complejidad y riesgo.</li>
</ul>
</div>
</div>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-4c601eb751118e6be251faea1353bed1" id="retire">Retire</h3>



<p>Retire implica desactivar/decomisar aplicaciones o componentes que ya no son necesarios. Esta estrategia forma parte del proceso de migración a la nube, ayudando a simplificar el entorno de TI y reducir costos.</p>



<div class="wp-block-columns has-border-color has-ast-global-color-6-border-color is-layout-flex wp-container-core-columns-is-layout-cb277dc2 wp-block-columns-is-layout-flex" style="border-width:1px;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-290298db19f0693ffe6e994b34cb8c37">Casos de Uso</h4>



<ul class="wp-block-list">
<li><strong>Optimización del portafolio:</strong> Identificación y eliminación de aplicaciones que ya no aportan valor, liberando recursos y reduciendo la complejidad.</li>



<li><strong>Reducción de costos:</strong> Minimización de costos asociados a aplicaciones obsoletas.</li>
</ul>



<p></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-d50fc98ff2e6aad5d39aeedca03c95e8">Pros</h4>



<ul class="wp-block-list">
<li>Reducción de costos y complejidad.</li>



<li>Simplificación del entorno de TI.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-9c9de52cae23b545dafa51bdf638e5d6">Cons</h4>



<ul class="wp-block-list">
<li>Requiere un análisis exhaustivo para evitar la eliminación de aplicaciones críticas.</li>



<li>Puede haber resistencia al cambio dentro de la organización.</li>
</ul>
</div>
</div>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-f9b9f438461f2a1481b98e32240ae741" id="retain">Retain (Retener)</h3>



<p>Retain es la decisión de mantener aplicaciones o componentes en su estado actual, en lugar de migrarlos a la nube. Esta estrategia de migración se utiliza cuando la migración no es viable o necesaria en el corto plazo, permitiendo una transformación en la nube más gradual.</p>



<div class="wp-block-columns has-border-color has-ast-global-color-6-border-color is-layout-flex wp-container-core-columns-is-layout-cb277dc2 wp-block-columns-is-layout-flex" style="border-width:1px;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-290298db19f0693ffe6e994b34cb8c37">Casos de Uso</h4>



<ul class="wp-block-list">
<li><strong>Retención de aplicaciones críticas:</strong> Aplicaciones que deben permanecer on-premise por requisitos de cumplimiento o técnicos.</li>



<li><strong>Planificación gradual:</strong> Empresas que prefieren una migración menos disruptiva, con una transición gradual a la nube.</li>
</ul>



<p></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-d50fc98ff2e6aad5d39aeedca03c95e8">Pros</h4>



<ul class="wp-block-list">
<li>Permite una migración menos disruptiva.</li>



<li>Minimiza el riesgo en aplicaciones críticas.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-9c9de52cae23b545dafa51bdf638e5d6">Cons</h4>



<ul class="wp-block-list">
<li>Se pospone la modernización.</li>



<li>Puede generar costos operativos elevados a largo plazo.</li>
</ul>
</div>
</div>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-183b8b4f9768cc37ea0f737588f9d398" id="realocate">Relocate</h3>



<p>Relocate es similar al Rehost, pero se enfoca en mover una infraestructura completa, como máquinas virtuales VMware, directamente a la nube de AWS. Esta estrategia de migración a la nube es útil para organizaciones que buscan trasladar sus centros de datos sin realizar cambios significativos.</p>



<div class="wp-block-columns has-border-color has-ast-global-color-6-border-color is-layout-flex wp-container-core-columns-is-layout-cb277dc2 wp-block-columns-is-layout-flex" style="border-width:1px;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-290298db19f0693ffe6e994b34cb8c37">Casos de Uso</h4>



<ul class="wp-block-list">
<li><strong>Migración a la nube de centros de datos:</strong> Empresas que necesitan mover rápidamente infraestructuras completas a la nube sin rediseñarlas.</li>



<li><strong>Continuidad y rapidez:</strong> Proyectos donde la continuidad operativa y la velocidad de ejecución son clave.</li>
</ul>



<p></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-d50fc98ff2e6aad5d39aeedca03c95e8">Pros</h4>



<ul class="wp-block-list">
<li>Rápido y menos disruptivo.</li>



<li>Permite aprovechar la infraestructura existente.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<h4 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-9c9de52cae23b545dafa51bdf638e5d6">Cons</h4>



<ul class="wp-block-list">
<li>No optimiza las aplicaciones para la nube.</li>



<li>Puede haber costos ocultos en la operación a largo plazo.</li>
</ul>
</div>
</div>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-31ae66bd6ae9d43b3eb7e93af447a926">Planificación y Evaluación de la Migración</h3>



<p>Antes de decidir cuál estrategia de migración es la más adecuada para tu organización, es crucial realizar un análisis exhaustivo del portafolio de aplicaciones.<br>AWS proporciona una guía detallada sobre cómo evaluar y planificar la migración de tu portafolio de aplicaciones existentes, lo que es fundamental para asegurar una migración a la nube exitosa y efectiva. Este análisis te permitirá identificar qué aplicaciones deben ser rehosteadas, replatformadas, o incluso retiradas, optimizando así la estrategia de migración de tu empresa.<br>Para más detalles sobre cómo realizar esta evaluación, consulta <a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/application-portfolio-assessment-guide/portfolio-analysis-migration-planning.html" rel="nofollow noopener" target="_blank">esta guía de AWS sobre planificación de la migración</a>.</p>



<h3 class="wp-block-heading has-ast-global-color-8-color has-text-color has-link-color wp-elements-0ed2fb580999f7f52e37f0f87cfa00fe">Pensamiento finales</h3>



<p>Entender estas estrategias de migración es clave para desarrollar una estrategia que se alinee con los objetivos de tu empresa. Ya sea que busques una simple migración a la nube o una transformación completa, combinar diferentes estrategias puede ayudarte a maximizar los beneficios y minimizar los riesgos.</p>



<p><strong>Recomendaciones:</strong></p>



<ol class="wp-block-list">
<li><strong>Evaluación Inicial:</strong> Realiza una auditoría detallada de tus aplicaciones y recursos antes de elegir una estrategia de migración.</li>



<li><strong>Combinación de Estrategias:</strong> Considera usar una combinación de &#8220;Rehost&#8221; y &#8220;Refactor&#8221; para balancear entre rapidez y optimización.</li>



<li><strong>Evolución Continua:</strong> Piensa en &#8220;Replatform&#8221; y &#8220;Refactor&#8221; como parte de un proceso evolutivo en la nube, donde inicialmente puedes optar por &#8220;Rehost&#8221; y luego optimizar progresivamente.</li>
</ol>


		<div data-elementor-type="wp-post" data-elementor-id="2262" class="elementor elementor-2262">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c716dfe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c716dfe" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe781c2" data-id="fe781c2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3d599a0 elementor-widget elementor-widget-text-editor" data-id="3d599a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Las empresas en su Industria ya están innovando</strong>.  El Lead Time y el Time to Market son la diferencia entre las empresas que perdurarán en el mercado.  Conozca que posibilidades le ofrece AWS para su Transformación Digital en un <strong>entrenamiento gratuito</strong> para usted y su equipo de TI.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e9a0648 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9a0648" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-014da33" data-id="014da33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d893d0c elementor-widget elementor-widget-html" data-id="d893d0c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="wp-block-button is-style-fill" style="text-align: center"><a class="wp-block-button__link has-black-color has-luminous-vivid-amber-background-color has-text-color has-background" href="https://cloudiostrategy.com/entrenamiento-gratuito-transformacion-digital-en-aws/" target="_blank" rel="noopener"><strong>Registrarme al Entrenamiento Gratuito: Transformación Digital en AWS</strong></a></div>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		
]]></content:encoded>
					
					<wfw:commentRss>https://cloudiostrategy.com/estrategias-de-migracion-a-la-nube/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Despliegue de una Aplicación Java con Spring Boot y Docker en Elastic Beanstalk</title>
		<link>https://cloudiostrategy.com/despliegue-de-una-aplicacion-java-con-spring-boot-y-docker-en-elastic-beanstalk/</link>
					<comments>https://cloudiostrategy.com/despliegue-de-una-aplicacion-java-con-spring-boot-y-docker-en-elastic-beanstalk/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Thu, 01 Aug 2024 21:41:02 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[AWS Elastic Beanstalk]]></category>
		<category><![CDATA[Contenedores]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring Boot]]></category>
		<guid isPermaLink="false">https://cloudiostrategy.com/?p=3280</guid>

					<description><![CDATA[En este tutorial vamos a ver el despliegue de una Aplicación Java con Spring Boot y Docker en Elastic Beanstalk de AWS, paso a paso y estudiando los temas principales […]]]></description>
										<content:encoded><![CDATA[
<p>En este tutorial vamos a ver el despliegue de una Aplicación Java con Spring Boot y Docker en Elastic Beanstalk de AWS, paso a paso y estudiando los temas principales de este servicio.</p>



<h2 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-0f0542c934550aea46e386dd01df8722">¿Qué es Elastic Beanstalk?</h2>



<p>Elastic Beanstalk es un servicio de AWS que simplifica el despliegue de aplicaciones en la nube. ¿Cómo lo hace? Este servicio tiene más de 100 servicios asociados y es compatible con aplicaciones desarrolladas en los lenguajes Go, Java, .NET, Node.js, PHP, Python y Ruby, y los orquesta creando una infraestructura basada en el código desplegado de la aplicación y archivos de configuración adicionados en el despliegue.</p>



<p>El desarrollador no tiene que aprovisionar nada.. o casi nada manualmente.</p>



<h2 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-56d65a66c4ef39f428b38e4a10c0bd6d">¿Porqué este tutorial?</h2>



<p>Actualmente, existen muchos ejemplos de cómo desplegar aplicaciones en Elastic Beanstalk, y los puedes encontrar <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/tutorials.html" rel="nofollow noopener" target="_blank">aquí</a>. Sin embargo, ninguno de ellos aborda específicamente el despliegue de una aplicación Java con Spring Boot y Docker en Elastic Beanstalk. Este artículo asume que tienes conocimientos básicos de este servicio, por lo que si aún no estás familiarizado con el mismo, revisa <a href="https://docs.aws.amazon.com/es_es/elasticbeanstalk/latest/dg/Welcome.html" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<h2 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-d94aa0534dd43a5a5312895e4b4ab341">Contenido</h2>



<p>En este tutorial, vamos a ver cómo desplegar una aplicación de ejemplo desarrollada con Java, utilizando el framework Spring Boot y diseñada para ser desplegada como contenedor Docker. </p>



<p>Además, realizaremos el proceso manualmente (por línea de comandos) y no a través de la consola web de AWS, ya que interactuar con la consola web cada vez que queremos hacer cambios en una aplicación y subirla a la nube, no es automatizable y puede ser largo y complejo.</p>



<p>Por lo tanto, los pasos a seguir son:</p>



<ol class="wp-block-list">
<li>Descargar la aplicación y probarla localmente.</li>



<li>Instalar y configurar el cliente Elastic Beanstalk CLI.</li>



<li>Desplegar una primera versión en desarrollo (dev).</li>



<li>Desplegar una versión en QA (próximamente).</li>
</ol>



<h3 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-ffa1d60609aa3c83d13fa5eca73cd5ae">Descargar la aplicación y probarla localmente</h3>



<p>La aplicación de ejemplo es un simple CRUD, que puedes descargar <a href="https://github.com/pazfernando/crud-spring-boot-example" rel="nofollow noopener" target="_blank">aquí</a> con el comando:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-353bd963de96f8af2187cff817f5282a"><code>git clone https://github.com/pazfernando/crud-spring-boot-example.git</code></pre>



<p>Ve a la carpeta donde se descargó y compílala con (requieres tener instalado Java 17+):</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-ad79f40a87cddd1efc1bbba320eb14cd"><code>cd crud-spring-boot-example
./mvnw clean install</code></pre>



<p>Ejecuta la aplicación con:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-a93961128fa231458b89989426196a8a"><code>java -jar target/crud-0.0.1-SNAPSHOT.war</code></pre>



<p>Prueba la aplicación en tu navegador con: </p>



<p><a href="http://localhost:8080/" rel="nofollow noopener" target="_blank">http://localhost:8080/</a></p>



<h3 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-e37d6d9947b20bd54fafd16ebbe966fb">Instalar y configurar el cliente Elastic Beanstalk CLI</h3>



<p><strong>IMPORTANTE:</strong> El procedimiento a continuación es para ambiente Linux, ya que tiene mejor soporte para herramientas y frameworks de desarrollo en general. Si no tienes Linux o Mac, instala WSL en Windows. Mira las instrucciones <a href="https://learn.microsoft.com/es-mx/windows/wsl/install" rel="nofollow noopener" target="_blank">aquí</a>. Por defecto tendrás un Ubuntu instalado en Windows y podrás usarlo ejecutando en PowerShell lo siguiente:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-6b320e48590f1b78928a7d7b9554446e"><code>wsl</code></pre>



<p>Listo, asumimos desde aquí que tienes Linux, Mac o WSL en Windows.</p>



<h4 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-53d696e7e44e8b361e0a0516a219d238">Instalación de pyenv</h4>



<p>Empezamos instalando un manejador de versiones de Python llamado pyenv. Encuentra cómo <a href="https://github.com/pyenv/pyenv#basic-github-checkout" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<h5 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-090330abbf7897197fb9f1d6cbc62abd">Post instalación de pyenv</h5>



<p>Añade o verifica estas líneas en .bashrc de $HOME:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-42f00763f2ea9271df904cf4cc0b0b62"><code>export PYENV_ROOT="$HOME/.pyenv"
&#091;&#091; -d $PYENV_ROOT/bin ]] &amp;&amp; export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"</code></pre>



<p>Actualiza tu .bashrc con:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-ba2a4e69ad9708425f853d7191805498"><code>source ~/.bashrc</code></pre>



<h4 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-5d50a13f5f2afa2d41ad1490adae17be">Instala la última versión estable de Python</h4>



<p>Encuentra la documentación de versiones estables en <a href="https://devguide.python.org/versions/" rel="nofollow noopener" target="_blank">https://devguide.python.org/versions/</a>. La instalación es con el comando:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-3cf0fa226a6542dc0853fc0774bbb543"><code>pyenv install 3.11</code></pre>



<p><strong>IMPORTANTE:</strong> A la fecha de creación de este artículo, puedes usar Python 3.11 máximo.</p>



<p>Configura esta versión como la de defecto en tu ambiente:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-a5a25d87cf9490cf7ebc3aa4e3f21047"><code>pyenv global 3.11</code></pre>



<h4 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-8441201c381c559f507acaff115d6b64">Instala virtualenv para aislar tu ambiente de Python</h4>



<p>Encuentra cómo hacerlo <a href="https://virtualenv.pypa.io/en/latest/installation.html#via-pip" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<h4 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-61c50b8b91a672872e5fce27a235f68e">Instala Elastic Beanstalk CLI</h4>



<p>Encuentra cómo hacerlo <a href="https://github.com/aws/aws-elastic-beanstalk-cli-setup" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<p>Actualiza tu <code>.bash_profile</code> para incluir los ejecutables de Elastic Beanstalk CLI en tu PATH:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-aedd48dc5e16de73b389832b7b4d94b0"><code>echo 'export PATH="/home/pazfernando/.ebcli-virtual-env/executables:$PATH"' &gt;&gt; ~/.bash_profile</code></pre>



<p>Refresca tus archivos de ambiente en tu <code>$HOME</code>:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-5d6b232e7f70fec71c70ebb19b60da44"><code>source ~/.bash_profile
source ~/.profile</code></pre>



<h3 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-6efb651eab5873eab9d401687ba782d3">Desplegar una primera versión en desarrollo (dev)</h3>



<p>Ve a la carpeta del proyecto (donde se descargó).</p>



<p>Configura el Elastic Beanstalk CLI, mira cómo hacerlo <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<h4 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-e8418abcb52c17b65c6148f03dd995e4">Aspectos importantes previos</h4>



<p>Antes de desplegar la aplicación, hay ciertos puntos esenciales a entender acerca de Elastic Beanstalk, ya que este conocimiento nos dará el entendimiento de por qué se despliega una aplicación de una forma u otra.</p>



<p><strong>Ignorando archivos con .ebignore</strong></p>



<p>Cuando desplegamos aplicaciones con Elastic Beanstalk CLI, debemos saber qué archivos son ejecutables, cuáles son de configuración, cuáles son de apoyo, etc. Esto se debe a que CLI empaqueta dichos archivos en un archivo <code>.zip</code> para luego extraerlo y desplegarlo en la instancia o instancias de la infraestructura que sirve la aplicación.</p>



<p>Por defecto, Elastic Beanstalk CLI busca el archivo <code>.gitignore</code> para saber, desde la carpeta donde se están ejecutando los comandos, qué archivos debe excluir de este archivo <code>.zip</code>. Pero como sabemos, para los proyectos Java, el archivo <code>.gitignore</code> excluye el directorio <code>target/</code>, el cual es esencial pues tiene el artefacto compilado del proyecto, y en su lugar empaqueta <code>src/</code> y otros archivos que son fuentes de la aplicación, y que en este caso no aplican.</p>



<p>Esta estrategia funciona muy bien en proyectos tipo Python o PHP donde no hay compilados, pero no en el caso de Java. Aquí aparece otro archivo, <code><strong>.ebignore</strong></code>, que es otro recurso que busca por defecto Elastic Beanstalk CLI ante la ausencia de un archivo <code>.gitignore</code> o incluso lo precede si existiera. Por esta razón, el archivo <code>.ebignore</code> en este tipo de proyectos es tan importante, y por eso nosotros tenemos en los fuentes este contenido:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-5dc9257befada7b79cb42ca738f8e645"><code>HELP.md
src/
*
!Dockerfile
!target/
!.ebextensions</code></pre>



<p>Esto asegura y le dice a Elastic Beanstalk CLI qué ignorar y por ende qué sí empaquetar. En nuestro caso, es importante <code>Dockerfile</code>, <code>target/</code> y <code>.ebextensions</code>.</p>



<p><strong>Configuración avanzada con .ebextensions</strong></p>



<p>Desplegar una aplicación con Elastic Beanstalk no es siempre, o nunca lo es, algo tan simple como desplegar un artefacto. Si bien la infraestructura se aprovisiona automáticamente, la aplicación suele requerir de variables de ambiente, datos de conexión con servicios externos, capacidades mínimas, etc.</p>



<p>¿Cómo especificamos esto sin tocar el código? La respuesta es con archivos de configuración o archivos <code><strong>.ebextensions</strong></code>.</p>



<p>En nuestro caso, tenemos el archivo <code>env-vars.config</code> donde configuramos ciertas variables de ambiente para que funcione la aplicación:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-7ea978c726f039fde67d3ddaf22e9b62"><code>option_settings:
  aws:elasticbeanstalk:application:environment:
    SPRING_PROFILES_ACTIVE: dev
    CRUD_DB_URL: 'jdbc:postgresql://${RDS_ENDPOINT}/crud_spring_boot_example'
    CRUD_DB_USERNAME: ebroot
    CRUD_DB_PASSWORD: clave</code></pre>



<p>Algo a destacar es <code>SPRING_PROFILES_ACTIVE</code> que determina cómo va a funcionar la aplicación Java + Spring Boot. En la vida real, tenemos cientos de configuraciones posibles que podemos hacer a través de estos archivos. Puedes aprender más <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<p>La documentación es un poco confusa, por eso te dejo dos enlaces más de los tipos de opciones: <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html" rel="nofollow noopener" target="_blank">comando opciones</a> y de las opciones a detalle <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<p><strong>Trabajando con aplicaciones del tipo Docker</strong></p>



<p>Para empezar, necesitas un <code>Dockerfile</code> que en nuestro caso contiene:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-ce5121ce18b95d70226e37db736c01d1"><code>FROM amazoncorretto:17.0.11-alpine
ARG JAR_FILE=target/*.war
COPY ${JAR_FILE} app.jar
EXPOSE 8080
CMD &#091;"java", "-jar", "/app.jar"]</code></pre>



<p>Muy simple y claro, y que será incluido en el archivo <code>.zip</code> gracias a nuestro archivo <code>.ebignore</code>.</p>



<p>No tenemos en este caso Docker Compose y lo haremos a partir de ese archivo. Sin embargo, si quieres saber más de las opciones de despliegue, puedes mirarlo <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/docker.html" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<p><strong>IMPORTANTE:</strong> Hay otra forma de hacerlo en un clúster de Amazon ECS (Elastic Container Service), que está fuera de esta explicación pero que puedes consultarla <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_ecs.html" rel="nofollow noopener" target="_blank">aquí</a>.</p>



<h4 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-91d0f00e8e0f879e5b9e78a281651244">Despliega la aplicación</h4>



<p>Excelente, ahora para desplegar vamos a ejecutar el comando:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-35e5416c17c138e1809f5eb489c403ac"><code>eb create --single</code></pre>



<p>El <code>--single</code> nos ayuda a desplegar una infraestructura simple, sin redundancia y alta disponibilidad, y que aplica en este caso del tutorial.</p>



<p>Verás algo como:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-7460199a80ee33a00af60e8f96d6207b"><code>Enter Environment Name
(default is crud-spring-boot-example-dev): 
Enter DNS CNAME prefix
(default is crud-spring-boot-example-dev): 

Would you like to enable Spot Fleet requests for this environment? (y/N): 
Creating application version archive "app-0048-240801_111838855018".
Uploading: &#091;##################################################] 100% Done...
...
2024-08-01 16:21:52    INFO    Application available at crud-spring-boot-example-dev.us-east-1.elasticbeanstalk.com.
2024-08-01 16:21:54    INFO    Successfully launched environment: crud-spring-boot-example-dev</code></pre>



<p><strong>IMPORTANTE</strong>: Si no eliges <code>--single</code>, adicionalmente te preguntarán alguna información necesaria para el despliegue, sigue las siguientes recomendaciones:</p>



<ul class="wp-block-list">
<li>Usa Application Load Balancer ALB (por defecto)</li>



<li>Di que no a Spot Fleet (por defecto)</li>



<li>Todo lo demás que no sepas deja por defecto.</li>
</ul>



<p>Prueba tu aplicación visitando precisamente el url de la salida:</p>



<p><a href="http://crud-spring-boot-example-dev.us-east-1.elasticbeanstalk.com/" target="_blank" rel="noreferrer noopener nofollow">http://crud-spring-boot-example-dev.us-east-1.elasticbeanstalk.com/</a></p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="472" src="https://cloudiostrategy.com/wp-content/uploads/2024/08/Captura-de-pantalla-2024-08-01-142824-1024x472.png" alt="" class="wp-image-3293" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/08/Captura-de-pantalla-2024-08-01-142824-1024x472.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/08/Captura-de-pantalla-2024-08-01-142824-300x138.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/08/Captura-de-pantalla-2024-08-01-142824-768x354.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/08/Captura-de-pantalla-2024-08-01-142824.png 1068w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Finaliza el despliegue <strong>IMPORTANTE</strong> <strong>IMPORTANTE</strong> <strong>IMPORTANTE</strong></p>



<p>Si fallas este paso tu <strong><span style="text-decoration: underline;">factura puede salir muy alta</span></strong>, especialmente si no usaste <code>--single</code>, así que ejecuta este comando para finalizar el tutorial:</p>



<pre class="wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-b87a52ee7dc1699ac6540e507f44bd0c"><code>eb terminate</code></pre>



<h2 class="wp-block-heading has-black-color has-text-color has-link-color wp-elements-ecc7229c9a6201903bcbb934ebce2fdb">Pensamientos finales</h2>



<p>Desplegar una aplicación Java con Spring Boot en Elastic Beanstalk de AWS utilizando Docker es algo más complejo, pero siguiendo estos pasos detallados, el proceso se vuelve manejable y entendible, por lo que espero que sea de valor para ustedes.</p>



<p>Elastic Beanstalk de AWS simplifica enormemente el proceso de despliegue y gestión de aplicaciones, permitiendo enfocarte en el desarrollo sin preocuparte por la infraestructura. Utilizar Docker agrega una capa de consistencia y portabilidad, asegurando que tu aplicación funcione de la misma manera en cualquier entorno.</p>



<p>Es vital seguir entender prácticas como el uso adecuado de archivos <code>.ebignore</code> y <code>.ebextensions</code> para asegurar que solo los archivos necesarios se incluyan en el despliegue y que la configuración de tu aplicación sea flexible y segura. Además, siempre finaliza los entornos no utilizados para evitar costos innecesarios.</p>



<p>Usar perfiles de Maven es un poco más complicado, pero la idea es trabajar con <code>.ebextension</code> para configurar los valores requeridos, si hay recursos relacionados como bases de datos servicios colas y demás, la recomendación es que se creen fuera de el scope de la aplicación.</p>



<p>La implementación de una aplicación en la nube es un proceso iterativo. A medida que te familiarices con Elastic Beanstalk y Docker, encontrarás formas de optimizar y mejorar tu flujo de trabajo. Comparte tus experiencias y cualquier obstáculo que encuentres, y sigue aprendiendo de la documentación y la comunidad de AWS.</p>


		<div data-elementor-type="wp-post" data-elementor-id="2262" class="elementor elementor-2262">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c716dfe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c716dfe" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe781c2" data-id="fe781c2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3d599a0 elementor-widget elementor-widget-text-editor" data-id="3d599a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Las empresas en su Industria ya están innovando</strong>.  El Lead Time y el Time to Market son la diferencia entre las empresas que perdurarán en el mercado.  Conozca que posibilidades le ofrece AWS para su Transformación Digital en un <strong>entrenamiento gratuito</strong> para usted y su equipo de TI.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e9a0648 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9a0648" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-014da33" data-id="014da33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d893d0c elementor-widget elementor-widget-html" data-id="d893d0c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="wp-block-button is-style-fill" style="text-align: center"><a class="wp-block-button__link has-black-color has-luminous-vivid-amber-background-color has-text-color has-background" href="https://cloudiostrategy.com/entrenamiento-gratuito-transformacion-digital-en-aws/" target="_blank" rel="noopener"><strong>Registrarme al Entrenamiento Gratuito: Transformación Digital en AWS</strong></a></div>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		
]]></content:encoded>
					
					<wfw:commentRss>https://cloudiostrategy.com/despliegue-de-una-aplicacion-java-con-spring-boot-y-docker-en-elastic-beanstalk/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Explorando Límites de AWS Lambda</title>
		<link>https://cloudiostrategy.com/explorando-limites-de-aws-lambda/</link>
					<comments>https://cloudiostrategy.com/explorando-limites-de-aws-lambda/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Tue, 30 Jan 2024 21:28:05 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Amazon API Gateway]]></category>
		<category><![CDATA[AWS Lambda]]></category>
		<category><![CDATA[DynamoDB]]></category>
		<category><![CDATA[serverless]]></category>
		<guid isPermaLink="false">https://cloudiostrategy.com/?p=3241</guid>

					<description><![CDATA[En este post Explorando Límites de AWS Lambda, les traemos un proyecto Playbook OpenSource base que puede ayudarlos a crear y preparar su infraestructura para probar los límites de Lambda […]]]></description>
										<content:encoded><![CDATA[
<p>En este post Explorando Límites de AWS Lambda, les traemos un proyecto Playbook OpenSource base que puede ayudarlos a crear y preparar su infraestructura para probar los límites de Lambda para sus casos de uso.</p>



<h2 class="wp-block-heading">Explorando Límites de AWS Lambda &#8211; Porque</h2>



<p>Es muy común implementar una solución Serverless en AWS utilizando los servicios API Gateway, AWS Lambda y DynamoDB, y, probar esta arquitectura para nuestro caso de uso es crucial al diseñar una solución.  </p>



<p>Así, cuando trabajamos la charla <a href="https://speakerdeck.com/pazfernando/como-manejar-100k-conexiones-simultaneas-en-aws" target="_blank" rel="noreferrer noopener nofollow">¿Como manejar 100K conexiones simultáneas en AWS?</a> en Serverless o probamos los nuevos límites de AWS Lambda de acuerdo al anuncio <a href="https://aws.amazon.com/blogs/aws/aws-lambda-functions-now-scale-12-times-faster-when-handling-high-volume-requests/" target="_blank" rel="noreferrer noopener nofollow">Las funciones de AWS Lambda ahora escalan 12 veces más rápido cuando manejan solicitudes de gran volumen</a>, nos vimos en la necesidad de crear recursos y ambientes, una y otra vez hasta crear el escenario perfecto.</p>



<p>Por eso decidimos crear un proyecto base como infraestructura como código que pueda apoyarlos para sus propias pruebas.  El repositorio es público y de código abierto, y lo pueden encontrar aquí <a href="https://github.com/pazfernando/serverless-limits-playbook-test" target="_blank" rel="noreferrer noopener nofollow">serverless-limits-playbook-test</a>.</p>



<figure class="wp-block-image aligncenter size-large"><a href="https://github.com/pazfernando/serverless-limits-playbook-test" target="_blank" rel="noreferrer noopener nofollow"><img loading="lazy" decoding="async" width="1024" height="409" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-13-31-55-1024x409.webp" alt="" class="wp-image-3253" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-13-31-55-1024x409.webp 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-13-31-55-300x120.webp 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-13-31-55-768x307.webp 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-13-31-55-1536x614.webp 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-13-31-55.webp 1591w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">Arquitectura</h3>



<p>La idea principal en esta versión es crear una arquitectura de un API RESTful con API Gateway integrado a un función AWS Lambda para llamadas sincrónicas, y crear una instancia EC2 con una instalación de JMeter para lanzar pruebas de carga.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cd2b92&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cd2b92" class="wp-block-image aligncenter size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="736" height="369" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/AWS-Lambda-Limits-Test.webp" alt="" class="wp-image-3258" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/AWS-Lambda-Limits-Test.webp 736w, https://cloudiostrategy.com/wp-content/uploads/2024/01/AWS-Lambda-Limits-Test-300x150.webp 300w" sizes="(max-width: 736px) 100vw, 736px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p>Aunque en el código podrán observar también:</p>



<ul class="wp-block-list">
<li>Habilitación de CORS</li>



<li>Bloque de código para llamadas asincrónicas (comentado)</li>



<li>Configuración para <strong>reserve concurrency</strong> en AWS Lambda.</li>



<li>El script <code>setup.sh</code> para adicionar configuraciones a su instancia EC2.</li>



<li>El script <code>index.mjs</code> para definir la implementación real de su función AWs Lambda.</li>



<li>Un identificador único para peticiones desde a lambda (opcional podrían eliminarlo).</li>
</ul>



<h3 class="wp-block-heading">Prerequisitos</h3>



<p>Dependiendo de su caso de uso necesitarán configuraciones generales en su cuenta, pero aquí presentamos las básicas.</p>



<ul class="wp-block-list">
<li>Tener una Default VPC en la region que vayan a probar.</li>



<li>Crear un Role en IAM que permita escribir desde API Gateway a CloudWatch.</li>



<li>Asignar dicho rol a las configuraciones del servicio API Gateway en la región donde se va ha hacer pruebas.</li>



<li>Tener los Server Limits adecuados a su prueba, especialmente los de AWS Lambda &#8220;<strong>Burst Concurrency</strong>&#8221; y &#8220;<strong>Concurrent Executions</strong>&#8220;.</li>
</ul>



<h3 class="wp-block-heading">Despliegue de recursos</h3>



<p>Al ser un proyecto IaaC construido con AWS CDK, pues evidentemente usamos los comando apropiados.  A continuación la lista de pasos:</p>



<ul class="wp-block-list">
<li>Cambiar las variables <code><strong>const targetRegion</strong></code> y <strong><code>const targetAccount</code></strong> en el archivo de los fuentes <code><strong>/bin/infra.ts</strong></code> apropiadamente.</li>



<li><a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html" target="_blank" rel="noreferrer noopener nofollow">Instala AWS CLI la última versión</a>.</li>



<li><a href="https://nodejs.org/en/learn/getting-started/how-to-install-nodejs" target="_blank" rel="noreferrer noopener nofollow">Instala Node.js 20 o superior</a>.</li>



<li><a href="https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install" target="_blank" rel="noreferrer noopener nofollow">Instala el último AWS CDK</a>.</li>



<li>En la carpeta del proyecto corre cdk boostrap para preparar la región para IaaC.</li>



<li>Ejecuta cdk synth para verificar que tus fuentes estén correctos.</li>



<li>Ejecuta cdk deploy para crear los recursos descritos en la arquitectura.</li>
</ul>



<p>Usamos <a href="https://docs.aws.amazon.com/cdk/" target="_blank" rel="noreferrer noopener nofollow">AWS CDK</a> para este proyecto, pero podrías reemplazar o hacer tus versiones con <a href="https://www.terraform.io/" target="_blank" rel="noreferrer noopener nofollow">Terraform</a> u <a href="https://opentofu.org/" target="_blank" rel="noreferrer noopener nofollow">OpenTofu</a> respectivamente.  Hacerlo con AWS Cloud Formation es otra opción aunque no lo recomiendo. </p>



<h3 class="wp-block-heading">Lanzamiento de carga masiva</h3>



<p>Para ejecutar las pruebas masivas con JMeter es necesario ingresar a la instancia EC2 creada a través de la Consola Web y con EC2 Instance Connect, dado que no se asoció un server key al momento de su creación.  </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cd3686&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cd3686" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="628" height="142" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/ec21.webp" alt="" class="wp-image-3248" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/ec21.webp 628w, https://cloudiostrategy.com/wp-content/uploads/2024/01/ec21-300x68.webp 300w" sizes="(max-width: 628px) 100vw, 628px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cd3bcc&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cd3bcc" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="819" height="704" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/ec22.webp" alt="" class="wp-image-3249" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/ec22.webp 819w, https://cloudiostrategy.com/wp-content/uploads/2024/01/ec22-300x258.webp 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/ec22-768x660.webp 768w" sizes="(max-width: 819px) 100vw, 819px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<p>Una vez en el shell los comandos son los siguientes:</p>



<ul class="wp-block-list">
<li>Cambia a root el usuario: <code><strong>sudo -i</strong></code>.</li>



<li>Edita el archivo LambdaConcurrencyLimits.jmx con <code><strong>vi /tmp/LambdaConcurrencyLimits.jmx</strong></code> con el url de tu API RESTful (esa url la obtienes como salida del comando cdk deploy al final del log).</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="907" height="178" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/cdkdeployoutput.webp" alt="" class="wp-image-3250" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/cdkdeployoutput.webp 907w, https://cloudiostrategy.com/wp-content/uploads/2024/01/cdkdeployoutput-300x59.webp 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/cdkdeployoutput-768x151.webp 768w" sizes="(max-width: 907px) 100vw, 907px" /></figure>



<p>Ejecuta los test JMeter de carga con </p>



<pre class="wp-block-code"><code><strong>rm -Rf /var/www/html/stats/* &amp;&amp; rm -f /tmp/stats.jtl &amp;&amp; /opt/apache-jmeter-5.6.2/bin/jmeter -n -t /tmp/LambdaConcurrencyLimits.jmx -l /tmp/stats.jtl -e -o /var/www/html/stats.</strong></code></pre>



<h3 class="wp-block-heading">Pruebas en JMeter</h3>



<p>Mientras se puede escribir un blog entero de pruebas en JMeter, el archivo creado esta compuesto de las siguintes características:</p>



<ul class="wp-block-list">
<li>Cinco grupos de usuarios (hilos)</li>



<li>Primer grupo lanza 1001 usuarios en 10 segundos.</li>



<li>Segundo grupo lanza 2001 usuarios en 20 segundos.</li>



<li>Tercer grupo lanza 3001 usuarios en 30 segundos.</li>



<li>Cuarto y quinto grupo lanza 0 usuarios, y están en el archivo jmx para que los usen como lo prefieran para su caso de prueba.</li>



<li>Se prueba una URL con un HTTP Request de tipo GET al API RESTful creado.</li>



<li>El  URL del API Gateway RESTful esta externalizado en el argumento <strong><code>url-api-gateway</code></strong>.</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="936" height="176" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-46-08.webp" alt="" class="wp-image-3261" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-46-08.webp 936w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-46-08-300x56.webp 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-46-08-768x144.webp 768w" sizes="(max-width: 936px) 100vw, 936px" /></figure>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Evidentemente estas pruebas no se ajustan a tu caso de uso y deberás cambiarlas apropiadamente, sin embargo el mecanismo de lanzamiento y la instancia EC2 configurada va a reducir el tiempo para esta operación.</p>



<h3 class="wp-block-heading">Métricas</h3>



<p>Una vez desplegada la infraestructura, y ejecutados las pruebas podremos monitorear los recursos y tomar las acciones correspondientes.</p>



<p>A continuación algunos gráficos que vamos a poder obtener:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>API Gateway</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cd4877&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cd4877" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="328" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-52-14-1024x328.webp" alt="" class="wp-image-3263" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-52-14-1024x328.webp 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-52-14-300x96.webp 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-52-14-768x246.webp 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-52-14-1536x492.webp 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-52-14.webp 1564w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>AWS Lambda</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cd4ea6&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cd4ea6" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="294" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-50-59-1024x294.webp" alt="" class="wp-image-3262" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-50-59-1024x294.webp 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-50-59-300x86.webp 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-50-59-768x221.webp 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-50-59.webp 1030w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<p>Además siempre vamos a tener Grupos de Logs en Amazon CloudWatch apropiados para el caso de uso y por servicio para analizar los resultados:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="241" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-55-59-1024x241.webp" alt="" class="wp-image-3264" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-55-59-1024x241.webp 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-55-59-300x71.webp 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-55-59-768x181.webp 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-55-59-1536x361.webp 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-from-2024-01-30-15-55-59.webp 1565w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>IMPORTANTE</strong>: siempre al finalizar las pruebas no olviden ejecutar <strong><code>cdk destroy</code></strong> para decomisar los recursos usados y evitar facturación innecesaria.</p>



<h3 class="wp-block-heading">Conclusiones y Pensamientos Finales</h3>



<p>En este Playbook Explorando Límites de AWS Lambda, hemos podido plasmar un proyecto de código abierto para que puedan acelerar sus pruebas de implementaciones.  Sin embargo hay mucho que mejorar en el mismo, como la inclusión de secrets con Secrets Manager para gestionar números de cuenta y otros parámetros sensibles y que <strong><span style="text-decoration: underline;">NO</span></strong> deben estar en su repositorio de fuentes.</p>



<p>También este proyecto nos ayuda en la inmersión en el mundo apasionante que significa AWS CDK, y con el cual pueden gestionar su infraestructura de forma completamente automatizada.</p>



<p>Vale mencionar que en un proyecto de AWS CDK <span style="text-decoration: underline;"><strong>jamás deben subir el directorio cdk.out</strong></span>, dado que aquí como resultado de la compilación de los archivos Typescript a archivos propios de AWS Cloud Formation ((JSON por ejemplo), puede y va a quedar información sensible como números de cuenta y/o claves.</p>



<p>Para hacer uso de este enfoque de despliegue es necesario estar familiarizado con AWS CLI ya que con este generarán perfiles que contengan accesos de los usuarios de su cuenta, y con tales accesos se crearán los recursos.  Entonces es importante que los usuarios asociados tengan los permisos correspondientes.</p>



<p>Los límites que tengan para su cuenta y por región van a incidir directamente en sus pruebas en caso de altas cargas de procesamiento, por lo que se debe tener en cuenta los mismos al momento de planificar la implementación.</p>



<p>Les animamos a dejar su feedback para mejorar el proyecto, sea aquí o en el repositorio de GitHub, y esperamos que sea de utilidad este proyecto &#8220;Explorando Límites de AWs Lambda&#8221;.</p>


		<div data-elementor-type="wp-post" data-elementor-id="2262" class="elementor elementor-2262">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c716dfe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c716dfe" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe781c2" data-id="fe781c2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3d599a0 elementor-widget elementor-widget-text-editor" data-id="3d599a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Las empresas en su Industria ya están innovando</strong>.  El Lead Time y el Time to Market son la diferencia entre las empresas que perdurarán en el mercado.  Conozca que posibilidades le ofrece AWS para su Transformación Digital en un <strong>entrenamiento gratuito</strong> para usted y su equipo de TI.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e9a0648 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9a0648" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-014da33" data-id="014da33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d893d0c elementor-widget elementor-widget-html" data-id="d893d0c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="wp-block-button is-style-fill" style="text-align: center"><a class="wp-block-button__link has-black-color has-luminous-vivid-amber-background-color has-text-color has-background" href="https://cloudiostrategy.com/entrenamiento-gratuito-transformacion-digital-en-aws/" target="_blank" rel="noopener"><strong>Registrarme al Entrenamiento Gratuito: Transformación Digital en AWS</strong></a></div>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		
]]></content:encoded>
					
					<wfw:commentRss>https://cloudiostrategy.com/explorando-limites-de-aws-lambda/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Endpoint Proxy con API Gateway</title>
		<link>https://cloudiostrategy.com/endpoint-proxy-con-api-gateway/</link>
					<comments>https://cloudiostrategy.com/endpoint-proxy-con-api-gateway/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Mon, 22 Jan 2024 14:47:00 +0000</pubDate>
				<category><![CDATA[Tecnologías]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Amazon API Gateway]]></category>
		<category><![CDATA[API RESTful]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Endpoint Proxy]]></category>
		<category><![CDATA[serverless]]></category>
		<guid isPermaLink="false">https://cloudiostrategy.com/?p=3126</guid>

					<description><![CDATA[Muchas veces nos encontramos en la necesidad de exponer un API de negocio en la Nube, y mientras existen muchas formas que requieren de más o menos esfuerzo, en una […]]]></description>
										<content:encoded><![CDATA[
<p>Muchas veces nos encontramos en la necesidad de exponer un API de negocio en la Nube, y mientras existen muchas formas que requieren de más o menos esfuerzo, en una primera etapa de migración (Rehost) una estrategia común es implementar un Endpoint Proxy con API Gateway.</p>



<p>Esta estrategia, Endpoint Proxy en API Gateway, es muy adecuada especialmente porque tenemos los siguientes beneficios:con </p>



<ul class="wp-block-list">
<li>Implementar el escenario Rehost (lift and shift) para una migración.</li>



<li>No realizar ninguna modificación a la implementación del API.</li>



<li>Mantener el servicio web en una red privada y sin acceso a internet.</li>



<li>Acceder a mejoras de seguridad del API de negocio y poder monitorearlo, dado que vamos a usar API Gateway.</li>



<li>Posibilita el versionamiento del API de negocio con menor esfuerzo.</li>



<li>Integración con el escudo de seguridad AWS WAF.</li>
</ul>



<h2 class="wp-block-heading">Tutorial Endpoint Proxy con API Gateway</h2>



<p>Se piensa en implementar con Amazon API Gateway un Endpoint Proxy de tipo HTTP API, que puede brindar la solución a lo requerido.</p>



<h3 class="wp-block-heading">Escenario API Público</h3>



<p>Para este escenario vamos a utilizar el API ejemplo de Swagger https://petstore.swagger.io/ como referencia, que nos ayuda a probar operaciones RESTful comunes.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cdc245&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cdc245" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="551" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094910-1024x551.png" alt="" class="wp-image-3128" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094910-1024x551.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094910-300x161.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094910-768x413.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094910-1536x826.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094910.png 1839w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Probamos la operación https://petstore.swagger.io/#/pet/findPetsByStatus para mirar los datos disponibles.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="811" height="736" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094954-1.png" alt="" class="wp-image-3130" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094954-1.png 811w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094954-1-300x272.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-094954-1-768x697.png 768w" sizes="(max-width: 811px) 100vw, 811px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cdc8a4&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cdc8a4" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="332" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095127-1024x332.png" alt="" class="wp-image-3131" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095127-1024x332.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095127-300x97.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095127-768x249.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095127-1536x497.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095127.png 1773w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cdcf01&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cdcf01" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="629" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095218-1024x629.png" alt="" class="wp-image-3132" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095218-1024x629.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095218-300x184.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095218-768x472.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095218-1536x944.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-095218.png 1771w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ok, el API está funcionando correctamente.</p>



<p>Definimos una arquitectura Cloud para este efecto en AWS.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="408" height="144" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/proxy-restful-with-apigateway-API-Public.webp" alt="" class="wp-image-3134" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/proxy-restful-with-apigateway-API-Public.webp 408w, https://cloudiostrategy.com/wp-content/uploads/2024/01/proxy-restful-with-apigateway-API-Public-300x106.webp 300w" sizes="(max-width: 408px) 100vw, 408px" /></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Creamos el API Gateway HTTP con el nombre proxy-swagger-api.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cdd81f&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cdd81f" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="858" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111409-1024x858.png" alt="" class="wp-image-3135" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111409-1024x858.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111409-300x251.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111409-768x644.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111409.png 1100w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cddd5f&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cddd5f" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="654" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111518.png" alt="" class="wp-image-3136" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111518.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111518-300x192.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111518-768x491.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:0;padding-left:0">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cde29b&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cde29b" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="975" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111644-1024x975.png" alt="" class="wp-image-3137" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111644-1024x975.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111644-300x286.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111644-768x732.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-111644.png 1034w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cde81c&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cde81c" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="309" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113156-1024x309.png" alt="" class="wp-image-3138" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113156-1024x309.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113156-300x91.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113156-768x232.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113156.png 1522w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Creamos la ruta $default.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cdeeba&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cdeeba" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="275" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113325-1024x275.png" alt="" class="wp-image-3141" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113325-1024x275.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113325-300x81.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113325-768x206.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113325-1536x413.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113325.png 1869w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cdf3f1&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cdf3f1" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="299" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113415-1024x299.png" alt="" class="wp-image-3142" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113415-1024x299.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113415-300x88.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113415-768x225.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113415-1536x449.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113415.png 1867w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cdf916&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cdf916" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="317" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113525-1-1024x317.png" alt="" class="wp-image-3146" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113525-1-1024x317.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113525-1-300x93.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113525-1-768x238.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113525-1-1536x475.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113525-1.png 1869w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>La ruta $default actúa como un &#8220;catch-all&#8221; es decir gestiona cualquier petición que no coincida con otras rutas definidas.  Puedes saber más <a href="http://$default route that acts as a catch-all for requests that don’t match any other routes" target="_blank" rel="noreferrer noopener nofollow">aquí</a>.</p>



<p>Creamos la integración.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce000a&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce000a" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="331" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113708-1-1024x331.png" alt="" class="wp-image-3147" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113708-1-1024x331.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113708-1-300x97.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113708-1-768x248.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113708-1-1536x497.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113708-1.png 1871w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce0572&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce0572" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="676" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113939-1-1024x676.png" alt="" class="wp-image-3148" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113939-1-1024x676.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113939-1-300x198.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113939-1-768x507.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-113939-1.png 1518w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce0b4b&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce0b4b" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="646" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-114014-1024x646.png" alt="" class="wp-image-3149" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-114014-1024x646.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-114014-300x189.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-114014-768x485.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-114014.png 1494w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Probamos el API RESTful de la misma forma que lo hicimos al inicio. </p>



<p>Debemos cambiar el Endpoint a el nuevo del API Gateway: https://gl1p0rt1gc.execute-api.us-east-2.amazonaws.com/ (reemplaza para tu caso con el apropiado).</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce1487&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce1487" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="389" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-184121-1024x389.png" alt="" class="wp-image-3211" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-184121-1024x389.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-184121-300x114.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-184121-768x292.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-184121-1536x584.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-184121.png 1839w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p>Esta vez la prueba la vamos ha hacer desde <a href="https://www.postman.com/downloads/" data-type="link" data-id="https://www.postman.com/downloads/" target="_blank" rel="noreferrer noopener nofollow">Postman</a>.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce19e6&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce19e6" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="780" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115233-1024x780.png" alt="" class="wp-image-3151" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115233-1024x780.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115233-300x229.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115233-768x585.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115233.png 1194w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce1e24&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce1e24" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="826" height="329" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115301.png" alt="" class="wp-image-3152" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115301.png 826w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115301-300x119.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115301-768x306.png 768w" sizes="(max-width: 826px) 100vw, 826px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce239d&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce239d" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="433" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115435-1024x433.png" alt="" class="wp-image-3153" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115435-1024x433.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115435-300x127.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115435-768x325.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115435.png 1513w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce2812&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce2812" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="566" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115514-1024x566.png" alt="" class="wp-image-3154" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115514-1024x566.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115514-300x166.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115514-768x425.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115514.png 1458w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-7c6f89b2 wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce2e3f&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce2e3f" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="371" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115622-1024x371.png" alt="" class="wp-image-3155" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115622-1024x371.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115622-300x109.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115622-768x278.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115622-1536x556.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115622.png 1644w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce3329&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce3329" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="428" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115735-1024x428.png" alt="" class="wp-image-3156" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115735-1024x428.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115735-300x125.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115735-768x321.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115735-1536x642.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-115735.png 1624w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-85e0d46d wp-block-column-is-layout-flow" style="padding-top:0;padding-right:var(--wp--preset--spacing--20);padding-bottom:0;padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce3874&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce3874" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="661" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-120031-1024x661.png" alt="" class="wp-image-3157" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-120031-1024x661.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-120031-300x194.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-120031-768x496.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-120031-1536x992.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Screenshot-2024-01-18-120031.png 1859w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>¡Excelente! Funciona igual y como un Endpoint Proxy con las ventajas y funcionalidades que ofrece API Gateway.</p>



<h3 class="wp-block-heading">Escenario API Privado</h3>



<p>¿En la vida real como sería un ejemplo?</p>



<p>Vamos a ver una arquitectura donde este API es una implementación privada que esta en una instancia EC2 en una subred privada de una VPC de la empresa. Por tanto el único que permite acceso y controla los flujos es el API Gateway.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce3f2f&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce3f2f" class="wp-block-image aligncenter size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="614" height="411" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/proxy-restful-with-apigateway-API-Private.webp" alt="Endpoint Proxy con API Gateway" class="wp-image-3219" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/proxy-restful-with-apigateway-API-Private.webp 614w, https://cloudiostrategy.com/wp-content/uploads/2024/01/proxy-restful-with-apigateway-API-Private-300x201.webp 300w" sizes="(max-width: 614px) 100vw, 614px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Para este escenario vamos a usar la implementación de un <a href="https://github.com/pazfernando/crud-spring-boot-example" target="_blank" rel="noreferrer noopener nofollow">CRUD API RESTful construído con Spring de Código Libre / Opensource en GitHub</a>.</p>



<p>Descargamos el proyecto en la instancia EC2 en la red privada, lo compilamos y corremos de acuerdo a las instrucciones del archivo README.mb en el código .fuente.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce4477&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce4477" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="953" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/image-1024x953.png" alt="" class="wp-image-3162" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/image-1024x953.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/image-300x279.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/image-768x715.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/image.png 1154w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Seguido a esto hacemos una prueba.  En este caso nos ayudamos de AWS CloudShell.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce49ec&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce49ec" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="938" height="903" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-082722-1.png" alt="" class="wp-image-3165" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-082722-1.png 938w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-082722-1-300x289.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-082722-1-768x739.png 768w" sizes="(max-width: 938px) 100vw, 938px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Son dos comandos curl, que insertan un registro visita y luego recuperan todas los registros visitas.</p>



<p>Cabe mencionar que antes debemos conectarnos a esa máquina con los protocoles estándar de SSH + Server Key, y, primero pasando por un Bastion Host&#8230; ya se mucha información pero ese es el camino dado que el servidor EC2 esta en una subred privada.</p>



<p>Creamos un Endpoint Proxy de tipo HTTP API, igual que en primer escenario.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce4fb2&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce4fb2" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="482" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084223-1024x482.png" alt="" class="wp-image-3166" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084223-1024x482.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084223-300x141.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084223-768x361.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084223.png 1031w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce549e&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce549e" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="1020" height="973" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084352.png" alt="" class="wp-image-3167" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084352.png 1020w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084352-300x286.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084352-768x733.png 768w" sizes="(max-width: 1020px) 100vw, 1020px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Creamos una Route (ruta) proxy $default.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce5a7f&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce5a7f" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="351" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084548-1024x351.png" alt="" class="wp-image-3168" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084548-1024x351.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084548-300x103.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084548-768x263.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084548.png 1519w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce5ee4&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce5ee4" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="449" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084650-1024x449.png" alt="" class="wp-image-3169" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084650-1024x449.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084650-300x131.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084650-768x337.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084650.png 1515w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce6525&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce6525" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="378" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084717-1024x378.png" alt="" class="wp-image-3170" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084717-1024x378.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084717-300x111.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084717-768x284.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084717.png 1470w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Para poder direccionar el tráfico a un recurso en una red privada, vamos a usar un Aplication Load Balancer (ALB), el mismo que va incluir en su Target Group a la instancia EC2 que provee el API privado.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce6b48&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce6b48" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="314" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084904-1024x314.png" alt="" class="wp-image-3171" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084904-1024x314.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084904-300x92.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084904-768x236.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084904-1536x471.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084904.png 1549w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce725b&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce725b" class="wp-block-image size-medium wp-lightbox-container"><img loading="lazy" decoding="async" width="104" height="300" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084942-104x300.png" alt="" class="wp-image-3172" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084942-104x300.png 104w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-084942.png 332w" sizes="(max-width: 104px) 100vw, 104px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce782a&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce782a" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="706" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085310-1024x706.png" alt="" class="wp-image-3173" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085310-1024x706.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085310-300x207.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085310-768x530.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085310.png 1383w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce7dd8&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce7dd8" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="647" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085537-1024x647.png" alt="" class="wp-image-3174" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085537-1024x647.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085537-300x189.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085537-768x485.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-085537.png 1349w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce82a8&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce82a8" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="502" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090001-1024x502.png" alt="" class="wp-image-3175" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090001-1024x502.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090001-300x147.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090001-768x376.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090001.png 1351w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El ALB debe ser de tipo &#8220;internal&#8221; es decir solo se puede usar dentro de la VPC (no desde Internet).</p>



<p>Evidentemente necesitas tener un Target Group que contenga el servidor EC2 privado donde esta el API al cual el ALB va a dirigir las peticiones.  Por esto en medio de la creación del ALB tendrás que crear este Target Group.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce88be&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce88be" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="393" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090023-1024x393.png" alt="" class="wp-image-3179" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090023-1024x393.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090023-300x115.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090023-768x295.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090023.png 1480w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce8d70&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce8d70" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="998" height="981" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091818.png" alt="" class="wp-image-3182" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091818.png 998w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091818-300x295.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091818-768x755.png 768w" sizes="(max-width: 998px) 100vw, 998px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce9394&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce9394" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="319" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115316-1-1024x319.png" alt="" class="wp-image-3184" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115316-1-1024x319.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115316-1-300x93.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115316-1-768x239.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115316-1.png 1388w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce97ea&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce97ea" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="349" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-120315-1024x349.png" alt="" class="wp-image-3188" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-120315-1024x349.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-120315-300x102.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-120315-768x262.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-120315.png 1395w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ce9d38&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ce9d38" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="496" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115632-1024x496.png" alt="" class="wp-image-3186" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115632-1024x496.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115632-300x145.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115632-768x372.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115632.png 1501w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cea1b4&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cea1b4" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="268" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115649-1024x268.png" alt="" class="wp-image-3187" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115649-1024x268.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115649-300x79.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115649-768x201.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-115649.png 1484w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Debes asegurarte que el grupo de seguridad del ALB permite el tráfico al puerto donde esta el listener.</p>



<p>Continúa con la creación del ALB.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cea94c&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cea94c" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="496" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090936-1024x496.png" alt="" class="wp-image-3189" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090936-1024x496.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090936-300x145.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090936-768x372.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-090936.png 1351w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ceaf47&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ceaf47" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="333" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091000-1024x333.png" alt="" class="wp-image-3190" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091000-1024x333.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091000-300x98.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091000-768x250.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091000.png 1384w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ceb3f4&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ceb3f4" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="225" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091511-1024x225.png" alt="" class="wp-image-3191" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091511-1024x225.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091511-300x66.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091511-768x169.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091511-1536x337.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-091511.png 1799w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Bien, vamos a continuar con la creación de la integración de nuestro API proxy-api-crud, para esto vamos al servicio API Gateway para iniciar.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f1061711 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="331" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121935-1024x331.png" alt="" class="wp-image-3194" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121935-1024x331.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121935-300x97.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121935-768x248.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121935.png 1521w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="352" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122013-1024x352.png" alt="" class="wp-image-3195" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122013-1024x352.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122013-300x103.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122013-768x264.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122013-1536x528.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122013.png 1868w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="461" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121953-1024x461.png" alt="" class="wp-image-3196" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121953-1024x461.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121953-300x135.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121953-768x346.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-121953.png 1521w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>La integración debe ser de tipo &#8220;Private resource&#8221; y en método seleccionamo9s &#8220;Select manually&#8221; para tener la opción de elegir un ALB/NLB como Target service.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cebdec&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cebdec" class="wp-block-image size-large is-style-default wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="714" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122437-1024x714.png" alt="" class="wp-image-3197" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122437-1024x714.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122437-300x209.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122437-768x535.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-122437.png 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>En la lista desplegada de los ALBs, seleccionamos nuestro proxy-alb recién creado.. Además vamos a tener que crear &#8220;Create new VPC link&#8221; en la selección correspondiente, ya que este será el puente entre nuestro API creado con API Gateway y por defecto en una red propia de AWS, con nuestra VPC propia de la empresa.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cec31c&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cec31c" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="686" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-124107-1024x686.png" alt="" class="wp-image-3202" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-124107-1024x686.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-124107-300x201.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-124107-768x515.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-124107.png 1422w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Para este caso la VPC es proxy-vpc-vpx, pero debes elegir la correspondiente en tu infraestructura.</p>



<p>Aquí una ampliación al concepto de VPC Link, un VPC Link es un recurso que permite crear una integración con los recursos privados de una VPC desde una ruta del API Gateway de tipo HTTP.  De esta forma no tienes que exponer ningún recurso de la VPC al público e igual puedes usarlo como destino final de un API Gateway que si sea público.  Si quieres saber más de integraciones privadas para API Gateway HTTP a recursos de tu VPC puedes mirar <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-private.html" data-type="link" data-id="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-private.html" target="_blank" rel="noreferrer noopener nofollow">aquí</a>.</p>



<p>Luego en las opciones siguientes es importante elegir a qué subredes tiene acceso este nuevo VPC Link y que grupos de seguridad se le asignan.  </p>



<p>Las subredes son importantes porque <strong>deben</strong> ser las subredes asociadas a tu ALB y su correspondiente Target Group.</p>



<p>El grupo de seguridad, es que que <strong>permite</strong> el acceso al puerto correspondiente donde el Listener del ALB esta escuchando peticiones.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ceca3f&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ceca3f" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="686" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-123920-1024x686.png" alt="" class="wp-image-3200" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-123920-1024x686.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-123920-300x201.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-123920-768x515.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-123920.png 1421w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Realizada la integración vamos a identificar el url (Invoke URL) del Endpoint Proxy con API Gateway creado.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9cecf90&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9cecf90" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="391" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-181810-1024x391.png" alt="" class="wp-image-3204" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-181810-1024x391.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-181810-300x115.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-181810-768x293.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-181810-1536x587.png 1536w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-181810.png 1832w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Listo, con ese url, si todo es correcto podemos hacer las siguientes peticiones:</p>



<p>Para crear una visita:</p>



<pre class="wp-block-code"><code>curl --location 'https://bg4gmloull.execute-api.us-east-2.amazonaws.com/api/visits' \<br>--header 'Content-Type: application/json' \<br>--data '{"date":"2024-01-19","name":"Fer","comment":"by CloudIO Strategy"}'</code></pre>



<p>Para consultar visitas:</p>



<pre class="wp-block-code"><code>curl --location 'https://bg4gmloull.execute-api.us-east-2.amazonaws.com/api/visits'</code></pre>



<p>Son las mismas peticiones que usamos con consultar el servicio web RESTful desde el shell de la instancia EC2 mostrada en el ejemplo.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a04be9ced5ec&quot;}" data-wp-interactive="core/image" data-wp-key="6a04be9ced5ec" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="957" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-145946-1024x957.png" alt="" class="wp-image-3206" srcset="https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-145946-1024x957.png 1024w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-145946-300x280.png 300w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-145946-768x718.png 768w, https://cloudiostrategy.com/wp-content/uploads/2024/01/Captura-de-pantalla-2024-01-19-145946.png 1114w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Agrandar"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>¡Excelente! Hemos creado un Endpoint Proxy con API Gateway, son tocar la implementación, con la funcionalidad esperada y todos los beneficios que tenemos en el servicio Amazon API Gateway.</p>



<h2 class="wp-block-heading">Conclusiones y pensamientos finales</h2>



<p>Hoy en este tutorial hemos visto como podemos implementar un Endpoint Proxy con API Gateway, un requerimiento que viene a partir de una migración al estilo Rehost del cliente que no desea entrar en temas de modificación a sus aplicaciones.</p>



<p>Presentamos dos escenarios, un proxy para un API público, que es infrecuente, y, un proxy a un API privado que si es muy frecuente y en ambos casos el servicio Amazon API Gateway nos permite implementar tal necesidad.</p>



<p>Nuestra arquitectura es solo una posibilidad de implementación del requerimiento, sin embargo en nuestra opinión es la más simple y rápida para dar una respuesta adecuada.</p>



<p>Vimos un concepto &#8220;VPC Link&#8221; que es importantísimo a la hora de integrar un API HTTP con recursos privados en la VPC, y en nuestro caso, nos integramos a un ABL o Aplication Load Balancer, sin embargo podríamos habernos integrado por ejemplo a AWS Cloud Map.  Dado esto, no es la única forma de integración que podrían usar.</p>



<p>El ALB nos habilita todas las ventajas que tenemos de un Load Balancer por ejemplo resiliencia o escalamiento horizontal, y aunque representa un costo adicional es justificable frente a un lineamiento SRT (Server Response Time) del negocio.</p>



<p>Evidentemente, falta muchas configuraciones complementarias a una arquitectura de este estilo, como por ejemplo lo relacionado a las decisiones de stages del API, las seguridades, el monitoreo y la trazabilidad.  Además la buena práctica es conectar este API Gateway a un dominio o subdominio apropiado de su empresa para facilidad de uso y estrategias de contingencia, entre otros.</p>


		<div data-elementor-type="wp-post" data-elementor-id="2262" class="elementor elementor-2262">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c716dfe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c716dfe" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe781c2" data-id="fe781c2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3d599a0 elementor-widget elementor-widget-text-editor" data-id="3d599a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Las empresas en su Industria ya están innovando</strong>.  El Lead Time y el Time to Market son la diferencia entre las empresas que perdurarán en el mercado.  Conozca que posibilidades le ofrece AWS para su Transformación Digital en un <strong>entrenamiento gratuito</strong> para usted y su equipo de TI.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e9a0648 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9a0648" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-014da33" data-id="014da33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d893d0c elementor-widget elementor-widget-html" data-id="d893d0c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="wp-block-button is-style-fill" style="text-align: center"><a class="wp-block-button__link has-black-color has-luminous-vivid-amber-background-color has-text-color has-background" href="https://cloudiostrategy.com/entrenamiento-gratuito-transformacion-digital-en-aws/" target="_blank" rel="noopener"><strong>Registrarme al Entrenamiento Gratuito: Transformación Digital en AWS</strong></a></div>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		
]]></content:encoded>
					
					<wfw:commentRss>https://cloudiostrategy.com/endpoint-proxy-con-api-gateway/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Que es Amazon VPC</title>
		<link>https://cloudiostrategy.com/que-es-amazon-vpc-y-cuales-son-caracteristicas/</link>
					<comments>https://cloudiostrategy.com/que-es-amazon-vpc-y-cuales-son-caracteristicas/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Wed, 05 Jul 2023 12:43:24 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Tecnologías]]></category>
		<category><![CDATA[Amazon VPC]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Computación en la Nube]]></category>
		<guid isPermaLink="false">https://cloudiostrategy.com/?p=3099</guid>

					<description><![CDATA[Se habla muy poco de Amazon VPC, tal vez porque se da por hecho que todos conocen lo que es o porque solo lo ven como la red privada, pero… […]]]></description>
										<content:encoded><![CDATA[
<p>Se habla muy poco de <strong>Amazon VPC</strong>, tal vez porque se da por hecho que todos conocen lo que es o porque solo lo ven como la red privada, pero… ¿qué es Amazon VPC concretamente?, ¿cuáles con las características que podemos usar? y más importante ¿cuáles son los beneficios?.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://docs.aws.amazon.com/es_es/vpc/latest/userguide/images/how-it-works.png" alt=""/></figure>



<div class="wp-block-rank-math-toc-block" id="rank-math-toc"><h2>Contenidos</h2><nav><ul><li class=""><a href="#introduccion-a-amazon-vpc">Introducción a Amazon VPC</a></li><li class=""><a href="#caracteristicas-de-amazon-vpc">Características de Amazon VPC</a></li><li class=""><a href="#5-beneficios-principales-de-amazon-vpc">5 Beneficios principales de Amazon VPC</a></li><li class=""><a href="#precios-de-amazon-vpc">Precios de Amazon VPC</a></li><li class=""><a href="#pensamientos-finales">Pensamientos finales</a></li></ul></nav></div>



<p></p>



<h2 class="wp-block-heading" id="introduccion-a-amazon-vpc">Introducción a Amazon VPC</h2>



<p class="has-text-align-center">Amazon VPC significa Amazon Virtual Private Cloud.</p>



<p>El servicio Amazon VPC permite a los usuarios crear una sección virtual y aislada de la nube de AWS, donde pueden lanzar recursos en una red virtual definida por ellos mismos. Esto brinda un control granular sobre el entorno de red, incluida la selección de rangos de direcciones IP, creación de subredes, y configuración de tablas de rutas y gateways de red.<br>Amazon VPC es esencial para mantener la seguridad y el aislamiento de los recursos, y para crear redes escalables y flexibles que se integren con otros servicios de <a href="https://cloudiostrategy.com/que-es-aws/" target="_blank" rel="noreferrer noopener">AWS</a>.</p>



<p><strong>IMPORTANTE</strong></p>



<ul class="wp-block-list">
<li>Cuando comienzas a utilizar AWS, se crea de forma predeterminada una VPC en cada región de AWS. Una VPC predeterminada viene con una subred pública en cada zona de disponibilidad (AZ), una puerta de enlace de Internet (IGW).</li>



<li>La idea es que puedas comenzar rápidamente y lanzar instancias públicas como un blog o un sitio web simple.</li>



<li>Siempre podrás modificar esta configuración inicial, mientras evoluciona tu arquitectura.</li>
</ul>



<h2 class="wp-block-heading" id="caracteristicas-de-amazon-vpc">Características de Amazon VPC</h2>



<p>Las siguientes son las características o componentes que ayudan a entender ¿qué es Amazon VPC? y que Amazon VPC permite crear en la nube AWS.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="redes-virtuales-privadas">Redes virtuales privadas</h3>



<p>Son redes virtuales que simulan redes tradicionales, pero con los beneficios de la infraestructura de AWS. Puedes definir tu rango de direcciones IP y crear subredes dentro del mismo.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="subredes">Subredes</h3>



<p>Es el mismo concepto de una red física, pero directamente relacionada a una Zona de Disponibilidad (AZ) de la Región (las AZs estas aisladas unas de otras por redundancia). Puedes tener sin embargo varias redes en una misma AZ pero no una subred en 2 o más AZs.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="tablas-de-enrutamiento">Tablas de Enrutamiento</h3>



<p>Es una definición de cómo se enruta el tráfico de red dentro de tu VPC.</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="asignacion-de-i-ps">Asignación de IPs</h3>



<p>Una carácterística que permite asignar rangos de IPs a las subredes, y, se permite también asignar una IP publica a un recurso en tu VPC como un servidor Amazon EC2.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="puertas-de-enlace">Puertas de Enlace</h3>



<p>Permite definir como tu VPC se comunica con Internet o otra red. Entre otros tenermos NAT Gateways y IGW o Internet Gateways</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="endpoints">Endpoints</h3>



<p>Llamados VPC endpoints, es un punto de entrada y salida desde una VPC para conectarse a un servicio de AWS soportado (como Amazon S3) pero de forma privada.</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="peering-connections">Peering connections</h3>



<p>Funcionalidad que permite establecer conexiones entre VPCs pero no es trasitivo.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="traffic-mirroring">Traffic Mirroring</h3>



<p>Al habilitarlo, permite reenviar el trafico de una interfaz de red a servicios de análisis.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="transit-gateways">Transit Gateways</h3>



<p>La definición de un tipo de puerta de enlace que comunica tu ambiente on-premises con tus VPCs, entre VPCs, con VPNs y con conexiones AWS Direct Connect (enlace dedicado más rápido y más seguro que una VPN).</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="vpc-flow-logs">VPC Flow Logs</h3>



<p>Funcionalidad que captura la información del tráfico en tu red bajo demanda y la envía a otros servicios para un análisis de comportamiento, amenazas y errores.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading" id="vpn-connections">VPN connections</h3>



<p>Te permite conectarte a tus redes privadas a través de VPN sobre Internet.</p>
</div>
</div>



<h2 class="wp-block-heading" id="5-beneficios-principales-de-amazon-vpc">5 Beneficios principales de Amazon VPC</h2>



<p><br>Seguido a la descripción de las características de Amazon VPC, veamos como las mismas tienen la capacidad de ofrecer opciones muy poderosas para tu infraestructura en la Nube.</p>



<ol class="wp-block-list">
<li><strong>Seguridad y Control de Acceso</strong><br>Amazon VPC permite crear un entorno de red aislado con control granular sobre el acceso, asegurando que solo el tráfico autorizado acceda a tus recursos.</li>



<li><strong>Personalización y Flexibilidad</strong><br>Permite configurar tu red virtual según las necesidades específicas de tu empresa, incluyendo la selección de rangos de direcciones IP y la creación de subredes.</li>



<li><strong>Escalabilidad</strong><br>Puedes adaptar fácilmente tus recursos de red a medida que crece tu empresa, sin la necesidad de invertir en infraestructura física costosa.</li>



<li><strong>Integración con Otros Servicios de AWS</strong><br>Te provee de mecanismos de integración de Amazon VPC con otros servicios de AWS (VPC endpoints) para una implementación y gestión eficiente de aplicaciones en la nube.</li>



<li><strong>Opciones de Conectividad Híbrida</strong><br>Conexión de forma segura de tu VPC con tu red local mediante opciones como VPN y <a href="https://cloudiostrategy.com/como-conectarse-directamente-a-aws/" target="_blank" rel="noreferrer noopener">AWS Direct Connect</a>, permitiendo un entorno de red híbrido.</li>
</ol>



<h2 class="wp-block-heading" id="precios-de-amazon-vpc">Precios de Amazon VPC</h2>



<p>No hay cargos por configurar y usar VPCs, los cargos vienen de otros servicios (activados a demanda) que se usan para personalizar el control, monitoreo, seguridad o conectividad en la VPC.<br>Los casos incluyen, entre otros, servicios como:</p>



<ul class="wp-block-list">
<li>VPC Flow Logs y Trafic Mirroring.</li>



<li>Transferencia de datos fuera de la red de AWS con redes privadas o VPCs en otras regiones.</li>



<li>IPs públicas reservadas pero no usadas con servicios AWS en ejecución.</li>



<li>Servicios adicionales de conexión como NAT Gateways, VPNs, VPC Endpoints o AWS Direct Connections.<br>Evidentemente, hay más servicios que vamos a aprovisionar en la VPC, como Amazon EC2 o Amazon RDS o Amazon Load Balancers, los cuales tendrán cada uno su costo independiente.</li>
</ul>



<p>Puedes encontrar más detalles en <a href="https://aws.amazon.com/es/vpc/pricing/" target="_blank" rel="noreferrer noopener nofollow">Precio de Amazon VPC</a>.</p>



<h2 class="wp-block-heading" id="pensamientos-finales">Pensamientos finales</h2>



<p>¿Qué es Amazon VPC? En este artículo hemos descrito a Amazon VPC como servicio esencial dentro de AWS que permite a las empresas crear redes virtuales seguras y escalables y ofrece un control granular sobre el entorno de red.<br>Los beneficios de usar Amazon VPC incluyen seguridad mejorada, escalabilidad, integración con otros servicios de AWS y opciones de conectividad híbrida.<br>Al migrar a la nube de AWS, es importante realizar una evaluación exhaustiva de los requisitos de la aplicación, planificar adecuadamente la arquitectura de red, seleccionar una estrategia de migración adecuada, y tener en cuenta los costos y el cumplimiento.<br>Es clave entonces saber que es Amazon VPC y conocer exaustibamente las posibilidades que nos ofrece para diseñar arquitectura seguras por sobre todo pero al mismo tiempo que nos optimice siempre el costo OPEX en la nube.</p>


		<div data-elementor-type="wp-post" data-elementor-id="2262" class="elementor elementor-2262">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c716dfe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c716dfe" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe781c2" data-id="fe781c2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3d599a0 elementor-widget elementor-widget-text-editor" data-id="3d599a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Las empresas en su Industria ya están innovando</strong>.  El Lead Time y el Time to Market son la diferencia entre las empresas que perdurarán en el mercado.  Conozca que posibilidades le ofrece AWS para su Transformación Digital en un <strong>entrenamiento gratuito</strong> para usted y su equipo de TI.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e9a0648 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9a0648" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-014da33" data-id="014da33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d893d0c elementor-widget elementor-widget-html" data-id="d893d0c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="wp-block-button is-style-fill" style="text-align: center"><a class="wp-block-button__link has-black-color has-luminous-vivid-amber-background-color has-text-color has-background" href="https://cloudiostrategy.com/entrenamiento-gratuito-transformacion-digital-en-aws/" target="_blank" rel="noopener"><strong>Registrarme al Entrenamiento Gratuito: Transformación Digital en AWS</strong></a></div>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		
]]></content:encoded>
					
					<wfw:commentRss>https://cloudiostrategy.com/que-es-amazon-vpc-y-cuales-son-caracteristicas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Casos de uso de las instancias EC2 tipo T</title>
		<link>https://cloudiostrategy.com/casos-de-uso-de-las-instancias-ec2-tipo-t/</link>
					<comments>https://cloudiostrategy.com/casos-de-uso-de-las-instancias-ec2-tipo-t/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Thu, 25 May 2023 13:30:05 +0000</pubDate>
				<category><![CDATA[Tecnologías]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Computación en la Nube]]></category>
		<category><![CDATA[ec2]]></category>
		<guid isPermaLink="false">https://cloudiostrategy.com/?p=2986</guid>

					<description><![CDATA[El servicio Amazon EC2 ofrece varios tipos o familias de instancias a los usuarios, y comienzan con letras como T, M, C, I, etc., por eso aquí presentamos los casos […]]]></description>
										<content:encoded><![CDATA[
<p>El servicio Amazon EC2 ofrece varios tipos o familias de instancias a los usuarios, y comienzan con letras como T, M, C, I, etc., por eso aquí presentamos los casos de uso de las instancias EC2 tipo T.</p>



<p>Las instancias EC2 tipo T están en el grupo de propósito general, lo cual significa que su configuración es la más estándar posible y podría usarse para cargas de trabajo (workloads) que impliquen un balanceo moderado de recursos, tanto de CPU, memoria, red y acceso al almacenamiento.</p>



<p>Concretamente los siguientes son los casos de uso de las instancias EC2 tipo T recomendados por Amazon Web Services:</p>



<ol class="wp-block-list">
<li>En desarrollo y pruebas: ¿necesitas un lugar para probar nuevas ideas sin estresar tus principales servidores? las instancias tipo T pueden ser la respuesta, ya que manejan a la perfección picos ocasionales de CPU.</li>



<li>En sitios Web y aplicaciones de bajo tráfico: ¿tu sitio Web o aplicación no tiene tráfico masivo 24/7? las instancias tipo T podrían ser tu solución ideal, ya que tienen un costo más económico (especialmente la Txg), y puedes servir ese sistema ERP, CRM, etc. con una inversión moderada.</li>



<li>En microservicios: si tus microservicios necesitan un picos ocasionales para manejar tareas intensivas de CPU, las instancias tipo T están listas y pueden ayudar. Aunque hay otras opciones de cómputo, puedes usar este esquema y pasar a otro si la carga es intensiva o impredecible.</li>



<li>Para pequeñas bases de datos: para bases de datos que no necesitan siempre estar a pleno rendimiento, una instancia tipo T podría ser una opción eficiente y económica.  Cabe señalar que si tienes muchos I/O en el disco es recomendable combinar esta instancia con volúmenes #AmazonEBS de tipo io2.</li>



<li>Para servidores de respaldo: ¿tienes servidores que están en stand-by la mayoría del tiempo?, es decir están ahí para planes de continuidad. Las instancias tipo T son ideales gracias a su modelo de rendimiento &#8220;burstable&#8221; que ayudarán hasta reactivar tu esquema principal.</li>
</ol>



<p>Hay que tomar en cuenta que las instancias tipo T no son las más adecuadas para cargas de trabajo que requieren un alto rendimiento constante de CPU (ahí necesitaras instancias tipo C o M). pero para muchas otras tareas, son excelentes.</p>



<p>Hay otros tipos de instancias de propósito general y puedes ver más información en <a href="https://cloudiostrategy.com/tipos-de-instancias-ec2-en-aws/" target="_blank" rel="noreferrer noopener">Tipos de instancias EC2 en AWS</a>., donde encontrarás sus variantes como T4g, T3, T3a y T2.</p>



<p>Cada variante tienen unas características de hardware específicas, así T4g significa que usa el procesador <a href="https://cloudiostrategy.com/aws-y-sus-procesadores-graviton/" target="_blank" rel="noreferrer noopener">Graviton</a> o T3a significa que usa el procesador <a href="https://en.wikipedia.org/wiki/List_of_AMD_processors" target="_blank" rel="noreferrer noopener nofollow">AMD</a>.</p>


		<div data-elementor-type="wp-post" data-elementor-id="2262" class="elementor elementor-2262">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c716dfe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c716dfe" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe781c2" data-id="fe781c2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3d599a0 elementor-widget elementor-widget-text-editor" data-id="3d599a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Las empresas en su Industria ya están innovando</strong>.  El Lead Time y el Time to Market son la diferencia entre las empresas que perdurarán en el mercado.  Conozca que posibilidades le ofrece AWS para su Transformación Digital en un <strong>entrenamiento gratuito</strong> para usted y su equipo de TI.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e9a0648 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9a0648" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-014da33" data-id="014da33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d893d0c elementor-widget elementor-widget-html" data-id="d893d0c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="wp-block-button is-style-fill" style="text-align: center"><a class="wp-block-button__link has-black-color has-luminous-vivid-amber-background-color has-text-color has-background" href="https://cloudiostrategy.com/entrenamiento-gratuito-transformacion-digital-en-aws/" target="_blank" rel="noopener"><strong>Registrarme al Entrenamiento Gratuito: Transformación Digital en AWS</strong></a></div>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		
]]></content:encoded>
					
					<wfw:commentRss>https://cloudiostrategy.com/casos-de-uso-de-las-instancias-ec2-tipo-t/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Introducción a las Tecnologías Serverless en AWS</title>
		<link>https://cloudiostrategy.com/tecnologias-serverless-en-aws/</link>
					<comments>https://cloudiostrategy.com/tecnologias-serverless-en-aws/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Wed, 12 Apr 2023 03:26:35 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Tecnologías]]></category>
		<category><![CDATA[Amazon API Gateway]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[AWS Lambda]]></category>
		<category><![CDATA[Computación en la Nube]]></category>
		<category><![CDATA[serverless]]></category>
		<guid isPermaLink="false">https://cloudiostrategy.com/?p=2959</guid>

					<description><![CDATA[Amazon Web Services (AWS) ofrece una amplia gama de soluciones para facilitar el desarrollo y despliegue de aplicaciones en el paradigma Serverless. En esta Introducción a las tecnologías Serverless en […]]]></description>
										<content:encoded><![CDATA[
<p>Amazon Web Services (AWS) ofrece una amplia gama de soluciones para facilitar el desarrollo y despliegue de aplicaciones en el paradigma Serverless. En esta Introducción a las tecnologías Serverless en AWS, exploraremos en profundidad las ventajas de las mismas, analizaremos los principales servicios, los casos de uso de estas tecnologías.</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://d1.awsstatic.com/webteam/category-pages/Serverless/Arch-Diagrams_Serverless-Category-Page_WebApp.53f342d820814986db1c9cc6ec5ed80bb74cae32.jpg" alt="" width="537" height="483"/><figcaption class="wp-element-caption">Imagen original de Amazon Web Services: https://d1.awsstatic.com/webteam/category-pages/Serverless/Arch-Diagrams_Serverless-Category-Page_WebApp.53f342d820814986db1c9cc6ec5ed80bb74cae32.jpg</figcaption></figure>



<h2 class="wp-block-heading" id="tecnologias-serverless-en-aws">Tecnologías Serverless en AWS</h2>



<div class="wp-block-rank-math-toc-block" id="rank-math-toc"><h2>Contenido</h2><nav><ul><li class=""><a href="#tecnologias-serverless-en-aws">Tecnologías Serverless en AWS</a><ul><li class=""><a href="#que-es-serverless">¿Qué es Serverless?</a></li><li class=""><a href="#ventajas-de-las-tecnologias-serverless">Ventajas de las tecnologías Serverless</a></li><li class=""><a href="#principales-servicios-serverless-en-aws">Principales servicios Serverless en AWS</a><ul><li class=""><a href="#aws-lambda">AWS Lambda</a></li><li class=""><a href="#aws-fargate">AWS Fargate</a></li><li class=""><a href="#aws-step-functions">AWS Step Functions</a></li><li class=""><a href="#amazon-event-bridge">Amazon EventBridge</a></li><li class=""><a href="#amazon-simple-queue-service-sqs">Amazon Simple Queue Service (SQS)</a></li><li class=""><a href="#amazon-simple-notification-service-sns">Amazon Simple Notification Service (SNS)</a></li><li class=""><a href="#amazon-api-gateway">Amazon API Gateway </a></li><li class=""><a href="#amazon-s-3">Amazon S3</a></li><li class=""><a href="#aws-app-runner">AWS App Runner</a></li><li class=""><a href="#otros-servicios">Casos de uso frecuentes de tecnologías Serverless</a></li></ul></li><li class=""><a href="#casos-de-uso-frecuentes-de-tecnologias-serverless">Casos de uso comunes de tecnologías Serverless</a></li></ul></li></ul></nav></div>



<h3 class="wp-block-heading" id="que-es-serverless">¿Qué es Serverless?</h3>



<p>El término &#8220;Serverless&#8221; se refiere a un enfoque de arquitectura en el cual los desarrolladores no necesitan gestionar ni mantener servidores para ejecutar sus aplicaciones. En lugar de esto, las aplicaciones se construyen utilizando servicios en la nube que automáticamente escalan y se encargan de la administración de recursos, como el cómputo, el almacenamiento y la red.</p>



<h3 class="wp-block-heading" id="ventajas-de-las-tecnologias-serverless">Ventajas de las tecnologías Serverless</h3>



<ul class="wp-block-list">
<li><strong>Costo</strong>: Solo pagas por lo que usas, ya que las tecnologías Serverless se facturan según el consumo de recursos y el tiempo de ejecución en lugar de tener costos fijos de servidores. Esto puede resultar en un ahorro significativo en comparación con la administración de infraestructura propia.</li>



<li><strong>Escalabilidad</strong>: Las aplicaciones Serverless escalan automáticamente según la demanda, lo que garantiza un rendimiento óptimo incluso en momentos de alta demanda. Esta escalabilidad dinámica elimina la necesidad de planificar la capacidad de los recursos y facilita el manejo de picos de tráfico inesperados.</li>



<li><strong>Desacoplamiento</strong>: Las tecnologías Serverless permiten desarrollar aplicaciones modulares y desacopladas, lo que facilita la actualización y el mantenimiento del software, a diferencia de un paradigma monolítico.</li>



<li><strong>Independencia tecnológica</strong>: Al no depender de una infraestructura específica, las aplicaciones Serverless pueden adaptarse fácilmente a cambios en los requisitos de negocio o tecnología.</li>



<li><strong>Foco en el negocio</strong>: Los desarrolladores pueden centrarse en la lógica de la aplicación para crear valor al negocio, en lugar de preocuparse por la administración y el mantenimiento de la infraestructura. Esto permite a los equipos de desarrollo ser más ágiles y entregar nuevas funcionalidades más rápidamente.</li>



<li><strong>Resiliencia</strong>: Dado que las aplicaciones Serverless se construyen con servicios en la nube de alta disponibilidad y tolerantes a fallos, es menos probable que experimenten interrupciones o tiempo de inactividad. Además, las aplicaciones Serverless pueden beneficiarse de la redundancia geográfica y el balanceo de carga que ofrecen los proveedores de servicios en la nube como AWS.</li>
</ul>



<h3 class="wp-block-heading" id="principales-servicios-serverless-en-aws">Principales servicios Serverless en AWS</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="aws-lambda">AWS Lambda</h4>



<p>Es un servicio de cómputo Serverless que permite ejecutar código en respuesta a eventos, como cambios en datos, solicitudes de usuarios o procesos batch. Lambda se encarga automáticamente de la escalabilidad, el parcheo y el monitoreo de la infraestructura y soporte lenguajes como Node.js, Python, Java, Ruby, C#, Go, and PowerShell.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="aws-fargate">AWS Fargate</h4>



<p>Es un servicio de administración de contenedores sin servidores que permite ejecutar aplicaciones basadas en contenedores sin gestionar la infraestructura subyacente. Se integra con Amazon ECS y EKS, proporcionando escalabilidad automática, optimización de recursos y simplicidad en el despliegue de aplicaciones de Microservicios y contenedores.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="aws-step-functions">AWS Step Functions</h4>



<p>Permite coordinar y orquestar múltiples funciones Lambda y otros servicios de AWS en flujos de trabajo visuales, simplificando la creación de aplicaciones Serverless complejas y automatizando procesos.</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="amazon-event-bridge">Amazon EventBridge</h4>



<p>Es un bus de eventos serverless que facilita la conexión de aplicaciones mediante la transmisión de eventos entre servicios y aplicaciones. EventBridge se integra con servicios de AWS y aplicaciones SaaS de terceros para simplificar la arquitectura de eventos y permitir la creación de aplicaciones Serverless altamente conectadas.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="amazon-simple-queue-service-sqs">Amazon Simple Queue Service (SQS)</h4>



<p>Es un servicio de colas de mensajes completamente administrado que permite la comunicación entre componentes de una aplicación a través de mensajes. SQS puede utilizarse en aplicaciones Serverless para desacoplar la lógica de procesamiento y distribuir las cargas de trabajo de manera eficiente.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="amazon-simple-notification-service-sns">Amazon Simple Notification Service (SNS)</h4>



<p>Es un servicio de publicación y suscripción de mensajes que permite enviar mensajes a múltiples suscriptores y diferentes tipos de endpoints, como correo electrónico, SMS y funciones Lambda. SNS es útil en aplicaciones Serverless que requieren notificaciones en tiempo real o la comunicación entre diferentes componentes.</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="amazon-api-gateway">Amazon API Gateway </h4>



<p>Es un servicio de AWS que permite a los desarrolladores crear, publicar, mantener y proteger APIs RESTful y WebSocket de manera fácil y rentable. El servicio se encarga de la gestión de solicitudes, escalabilidad, autorización y monitoreo de APIs, permitiendo a los desarrolladores centrarse en la lógica de negocio y la experiencia del usuario.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="amazon-s-3">Amazon S3</h4>



<p>Es un servicio de almacenamiento de objetos que permite almacenar y recuperar grandes cantidades de datos en la nube. Puedes utilizar S3 por ejemplo, para activar funciones Lambda en respuesta a eventos, como la carga de un archivo. Puede saber más en <a href="https://cloudiostrategy.com/amazon-s3-introduccion-al-almacenamiento-de-archivos/" target="_blank" rel="noreferrer noopener">Amazon S3 introducción al almacenamiento de archivos</a>.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading has-text-align-center" id="aws-app-runner">AWS App Runner</h4>



<p>Es un servicio que permite el despliegue rápido y sencillo de aplicaciones basadas en contenedores, sin necesidad de preocuparse por la administración de la infraestructura. Puedes saber más en Acelerando la contenerización con el servicio <a href="https://cloudiostrategy.com/contenerizacion-con-el-servicio-aws-app-runner/" target="_blank" rel="noreferrer noopener">AWS App Runner</a>.</p>
</div>
</div>



<h4 class="wp-block-heading" id="otros-servicios">Otros Servicios</h4>



<p>Dependiendo del caso de uso los siguientes son servicios Serverless que son usados menos frecuentemente o para casos de negocios específicos. Así tenemos: <strong>AWS AppSync</strong> (servicio que facilita el desarrollo de aplicaciones basadas en datos en tiempo real y offline, utilizando una única API GraphQL), <strong>Amazon RDS Proxy</strong> (proxy de conexiones a Amazon RDS sin servidor), <strong>Amazon Aurora Serverless</strong> (base de datos relacional sin servidor), <strong>Amazon Redshift Serverless</strong> (bodega de datos Bigdata sin servidor), <strong>Amazon Neptune Serverless</strong> (base de datos de grafos sin servidor), <strong>Amazon Opensearch Serverless</strong> (base de datos clave-valor sin servidor).</p>



<h3 class="wp-block-heading" id="casos-de-uso-frecuentes-de-tecnologias-serverless">Casos de uso frecuentes de tecnologías Serverless</h3>



<p><strong>Aplicaciones web y móviles: </strong></p>



<p>Las tecnologías Serverless en AWS permiten construir aplicaciones web y móviles escalables y de alto rendimiento sin la necesidad de administrar infraestructura. En paradigmas como <a href="https://en.wikipedia.org/wiki/Banking_as_a_service" target="_blank" rel="noreferrer noopener nofollow">BaaS</a> y <a href="https://en.wikipedia.org/wiki/Function_as_a_service" target="_blank" rel="noreferrer noopener nofollow">FaaS</a>, los desarrolladores pueden centrarse en la lógica de la aplicación y la experiencia del usuario, mientras que AWS se encarga de la escalabilidad, la seguridad y el mantenimiento de la infraestructura.</p>



<p><strong>Procesamiento de imágenes y vídeos: </strong></p>



<p>Las aplicaciones Serverless pueden procesar y transformar imágenes y vídeos en respuesta a eventos, como la carga de archivos en Amazon S3 o la solicitud de un usuario. Los servicios de AWS, como Amazon Lambda, Amazon Comprehend y/o Amazon Elastic Transcoder, pueden ayudar a automatizar tareas como el redimensionamiento de imágenes, reconocimiento de imágenes, extracción de metadatos y la transcodificación de vídeos.</p>



<p><strong>Análisis de datos en tiempo real:</strong> </p>



<p>Las tecnologías Serverless en AWS pueden utilizarse para procesar y analizar grandes volúmenes de datos de diversas fuentes, como registros de aplicaciones, eventos de IoT o transacciones de comercio electrónico. Los servicios de AWS, como Amazon Kinesis, AWS Glue y Amazon Athena, pueden ayudar a extraer información valiosa de los datos y generar informes y visualizaciones en tiempo real o por lotes.</p>



<p><strong>Automatización de flujos de trabajo (Workflows): </strong></p>



<p>Las aplicaciones Serverless pueden automatizar y optimizar procesos empresariales, como la aprobación de documentos y requerimientos internos. Los servicios de AWS, como Step Functions y Amazon Simple Workflow Service (SWF), pueden ayudar a modelar, coordinar y ejecutar flujos de trabajo complejos y tareas de larga duración.</p>



<h3 class="wp-block-heading" id="pensamientos-finales">Pensamientos finales</h3>



<p>Las tecnologías Serverless en AWS ofrecen una gran cantidad de ventajas y oportunidades para los desarrolladores y las empresas que buscan construir y desplegar aplicaciones en la nube.</p>



<p>Al eliminar la necesidad de aprovisionar, administrar y mantener la infraestructura, las aplicaciones serverless permiten a los equipos centrarse en el desarrollo de nuevas funcionalidades y mejorar la experiencia del usuario.</p>



<p>La escalabilidad y resiliencia implícita en estos servicios nos da la tranquilidad de tener continuidad en el negocio a un costo por uso y reducido frente a un provisionamiento y tecnologías on-demand.</p>



<p>Las tecnologías Serverless en AWS están transformando la forma en que las organizaciones desarrollan y despliegan aplicaciones en la nube. Al adoptar estas tecnologías y seguir las mejores prácticas de arquitectura y desarrollo, las empresas pueden reducir costos, mejorar la eficiencia y entregar soluciones innovadoras que satisfagan las necesidades y expectativas de sus usuarios y clientes.</p>


		<div data-elementor-type="wp-post" data-elementor-id="2262" class="elementor elementor-2262">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c716dfe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c716dfe" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe781c2" data-id="fe781c2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3d599a0 elementor-widget elementor-widget-text-editor" data-id="3d599a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Las empresas en su Industria ya están innovando</strong>.  El Lead Time y el Time to Market son la diferencia entre las empresas que perdurarán en el mercado.  Conozca que posibilidades le ofrece AWS para su Transformación Digital en un <strong>entrenamiento gratuito</strong> para usted y su equipo de TI.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e9a0648 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e9a0648" data-element_type="section" data-e-type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-014da33" data-id="014da33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d893d0c elementor-widget elementor-widget-html" data-id="d893d0c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<div class="wp-block-button is-style-fill" style="text-align: center"><a class="wp-block-button__link has-black-color has-luminous-vivid-amber-background-color has-text-color has-background" href="https://cloudiostrategy.com/entrenamiento-gratuito-transformacion-digital-en-aws/" target="_blank" rel="noopener"><strong>Registrarme al Entrenamiento Gratuito: Transformación Digital en AWS</strong></a></div>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		
]]></content:encoded>
					
					<wfw:commentRss>https://cloudiostrategy.com/tecnologias-serverless-en-aws/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
