Guía Completa de Integraciones de Amazon API Gateway
Explora las integraciones de Amazon API Gateway, destacando ventajas clave, rendimiento, seguridad, costos y casos de uso para ayudar a los desarrolladores a optimizar sus arquitecturas de aplicaciones serverless.
Amazon API Gateway
Guía completa de Amazon API Gateway cubriendo APIs REST, APIs WebSocket, autenticación, throttling y mejores prácticas de monitoreo.
2 articles
1. Introducción
Más allá de la conocida integración con funciones Lambda, API Gateway ofrece la opción de conectarse con servicios de AWS, endpoints HTTP e incluso servicios privados de forma segura en VPCs. Este artículo tiene como objetivo explorar las diversas opciones de integración disponibles en Amazon API Gateway, cubriendo:
- Funciones AWS Lambda: La columna vertebral de las APIs serverless.
- Endpoints HTTP: Conectando tus APIs con el mundo.
- Respuestas Mock: Simplificando el desarrollo con respuestas simuladas.
- Servicios AWS: Integración estrecha con el ecosistema AWS.
- Servicios Privados a través de VPC Links: Conectando de forma segura con recursos internos.
Los tipos de integración disponibles para cada tipo de API Gateway son:
2. Integración con Funciones Lambda
Conectar funciones AWS Lambda a Amazon API Gateway es un punto destacado de la computación serverless, ofreciendo escalabilidad y flexibilidad sin precedentes. Esta poderosa sinergia permite a los desarrolladores desplegar aplicaciones serverless que escalan dinámicamente para satisfacer la demanda de los usuarios, liberándolos de los desafíos convencionales del mantenimiento de servidores.
API Gateway puede activar funciones Lambda en respuesta a solicitudes HTTP, sirviendo como una interfaz altamente adaptable para cualquier aplicación o servicio backend. Esta integración es fundamental para ejecutar código en un entorno serverless, donde las preocupaciones de gestión operativa y escalabilidad se abstraen.
2.1. Opciones de integración Lambda
Las integraciones Lambda vienen en dos variantes, cada una atendiendo diferentes necesidades:
Integración Proxy: Actúa como un paso directo a la función Lambda, pasando cada detalle de la solicitud HTTP (encabezados, cuerpo, parámetros de consulta). Este método es ideal para una configuración rápida de API, requiriendo configuración mínima mientras proporciona máxima flexibilidad.Integración No-Proxy: Ofrece control granular sobre el flujo de solicitud y respuesta entre API Gateway y Lambda. Utilizando Velocity Template Language (VTL), los desarrolladores pueden adaptar la transformación de la solicitud antes de que llegue a Lambda y ajustar la respuesta antes de que se devuelva al cliente. Este enfoque se adapta a casos donde se deben cumplir formatos específicos de solicitud/respuesta.
2.2 Ventajas Clave
Escalabilidad: Escala automáticamente con el volumen de solicitudes entrantes, asegurando que el rendimiento permanezca consistente.Rentabilidad: Los cargos se basan únicamente en el número de solicitudes y el tiempo de ejecución, excluyendo el costo de la integración en sí.Facilidad de Integración: Simplifica el proceso de conectar tu API a funciones Lambda, agilizando el despliegue.
2.3. Representación Visual
sequenceDiagram
participant Client as Cliente
participant APIG as API Gateway
participant Lambda as AWS Lambda
Client->>+APIG: Solicitud HTTP
APIG->>+Lambda: Invocar Función
Lambda-->>-APIG: Respuesta de Función
APIG-->>-Client: Respuesta HTTP
Este diagrama ilustra sucintamente el ciclo de solicitud-respuesta facilitado por la integración Lambda, destacando la eficiencia y simplicidad de este enfoque.
2.4. Rendimiento y seguridad
Rendimiento: Se beneficia de las capacidades inherentes de auto-escalado de AWS Lambda, ofreciendo alto rendimiento.Seguridad: Gobernado por roles y políticas de IAM, asegurando un control de acceso robusto y protección de datos.
2.5. Implicaciones de Costos
Si bien no hay un cargo directo por integrar Lambda con API Gateway, los costos se incurren basados en el volumen de solicitudes y la duración de la ejecución de la función Lambda, siguiendo los modelos de precios de AWS Lambda.
2.6. Aplicaciones Prácticas
Procesamiento de Datos: Ideal para aplicaciones que requieren análisis o manipulación de datos en tiempo real.Procesamiento en Tiempo Real: Soporta aplicaciones interactivas proporcionando respuestas backend inmediatas.Servicios Backend Serverless: Permite el desarrollo de arquitecturas completamente serverless para servicios backend, desde aplicaciones web hasta APIs de datos.
Ejemplo de implementación
Considera un escenario donde necesitas procesar datos de pedidos entrantes en formato XML, pero tu función Lambda espera JSON. Usando una
integración no-proxy, puedes configurar API Gateway para transformar el XML en JSON antes de que llegue a la función Lambda. Por el contrario, si la función Lambda devuelve JSON, puedes configurar API Gateway para convertir este JSON de vuelta a XML para el cliente.
2.7. Ejemplo de Código de Configuración (Terraform)
A continuación se muestra un ejemplo simplificado usando Terraform para demostrar la configuración de una integración proxy con AWS Lambda:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
resource "aws_api_gateway_rest_api" "MyApi" {
name = "LambdaProxyApi"
}
resource "aws_api_gateway_resource" "MyResource" {
rest_api_id = aws_api_gateway_rest_api.MyApi.id
parent_id = aws_api_gateway_rest_api.MyApi.root_resource_id
path_part = "{proxy+}"
}
resource "aws_api_gateway_method" "MyLambdaIntegration" {
rest_api_id = aws_api_gateway_rest_api.MyApi.id
resource_id = aws_api_gateway_resource.MyResource.id
http_method = "POST"
authorization = "NONE"
integration {
type = "AWS_PROXY"
http_method = "POST"
uri = "arn:aws:apigateway:${var.region}:lambda:path/2015-03-31/functions/${var.lambda_function_arn}/invocations"
integration_http_method = "POST"
}
}
Este script de Terraform configura un API Gateway con una integración proxy a una función AWS Lambda, ilustrando cuán fácilmente estos componentes pueden vincularse para aprovechar el poder de la computación serverless.
3. Integraciones HTTP
Las integraciones HTTP permiten que API Gateway actúe como un proxy para endpoints HTTP. Esto incluye integración con servicios AWS habilitados para HTTP, APIs HTTP externas y microservicios. Esta flexibilidad hace que las integraciones HTTP sean una piedra angular para extender la funcionalidad de tus aplicaciones más allá del ecosistema AWS.
API Gateway puede actuar como un intermediario robusto, reenviando solicitudes de clientes a cualquier endpoint HTTP y luego devolviendo la respuesta al cliente. Esta capacidad es especialmente valiosa para integrar con APIs RESTful a través de internet o dentro de tu entorno AWS, permitiendo una interacción fluida con una amplia gama de servicios.
3.1. Ventajas Clave
Flexibilidad: Conecta con cualquier endpoint HTTP, alojado en AWS o externamente.Eficiencia: Reduce la latencia integrando directamente tu API con aplicaciones o servicios compatibles con HTTP.Proxy HTTP Genérico: Utiliza métodos HTTP estándar e integra con servicios que pueden no tener integraciones nativas de API Gateway.
3.2. Representación Visual
sequenceDiagram
participant Client as Cliente
participant APIG as API Gateway
participant HTTP as Endpoint HTTP
Client->>+APIG: Solicitud HTTP
APIG->>+HTTP: Reenviar Solicitud
HTTP-->>-APIG: Respuesta del Endpoint
APIG-->>-Client: Respuesta HTTP
Este diagrama ilustra el flujo del proceso, destacando cómo API Gateway sirve como intermediario entre clientes y servicios HTTP.
3.3. Rendimiento y seguridad
Rendimiento: Depende del endpoint HTTP objetivo, subrayando la importancia de elegir servicios responsivos para la integración.Seguridad: Usa HTTPS para asegurar los datos en tránsito.
3.4. Implicaciones de Costos
La integración con endpoints HTTP no incurre en tarifas adicionales más allá del precio estándar de solicitudes de API Gateway. Sin embargo, ten en cuenta que se aplican costos de transferencia de datos y cualquier cargo asociado con el servicio externo, por lo que es esencial monitorear el uso para gestionar los gastos de manera efectiva.
3.5. Aplicaciones Prácticas
Las integraciones HTTP son versátiles, soportando una amplia gama de aplicaciones:
Integración de API de Terceros: Ideal para incorporar funcionalidad de servicios externos, como feeds de redes sociales, procesamiento de pagos o datos meteorológicos.Arquitectura de Microservicios: Facilita una arquitectura desacoplada permitiendo que microservicios individuales, posiblemente alojados en ECS o EC2, se comuniquen a través de API Gateway.Entrega y Gestión de Contenido: Agiliza la distribución y gestión de contenido sirviendo como puerta de enlace al contenido alojado en diferentes plataformas.
Ejemplo de implementación
Supongamos que deseas integrar tu API Gateway con una API de servicio meteorológico de terceros para obtener actualizaciones del clima. Este servicio proporciona un endpoint HTTP que acepta solicitudes GET con un nombre de ciudad como parámetro de consulta y devuelve datos meteorológicos en formato JSON.
3.6. Ejemplo de Código de Configuración (Terraform)
A continuación se muestra un script simplificado de Terraform que demuestra cómo configurar la integración de proxy HTTP, ilustrando la facilidad con la que API Gateway puede conectarse a servicios externos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
resource "aws_api_gateway_rest_api" "MyApi" {
name = "HttpProxyApi"
}
resource "aws_api_gateway_resource" "MyResource" {
rest_api_id = aws_api_gateway_rest_api.MyApi.id
parent_id = aws_api_gateway_rest_api.MyApi.root_resource_id
path_part = "weather"
}
resource "aws_api_gateway_method" "MyHttpIntegration" {
rest_api_id = aws_api_gateway_rest_api.MyApi.id
resource_id = aws_api_gateway_resource.MyResource.id
http_method = "GET"
authorization = "NONE"
integration {
type = "HTTP_PROXY"
integration_http_method = "GET"
uri = "https://example.com/weather"
}
}
Este ejemplo subraya la naturaleza directa de configurar integraciones HTTP, empoderando a los desarrolladores para extender rápidamente las capacidades de sus APIs.
4. Integraciones Mock
Las integraciones mock te permiten simular el comportamiento de la API sin integración backend. Con integraciones mock, puedes devolver una respuesta fija al llamador de la API directamente desde API Gateway, facilitando la validación de definiciones de API y el desarrollo del lado del cliente independientemente del backend.
4.1. Ventajas Clave
Las integraciones mock sirven múltiples propósitos, reduciendo significativamente el tiempo y los recursos típicamente requeridos para el desarrollo de API:
Prototipado Rápido: Simula rápidamente respuestas de API para el desarrollo del cliente sin necesidad de un backend.Pruebas y Validación: Simplifica el proceso de probar contratos de API y estructuras de respuesta, asegurando que los consumidores de API puedan manejar varios tipos de respuesta de manera efectiva.
4.2. Representación Visual
sequenceDiagram
participant Client as Cliente
participant APIG as API Gateway
Client->>+APIG: Solicitud HTTP
APIG-->>-Client: Respuesta Mock
4.3. Rendimiento y seguridad
Rendimiento: Entrega respuestas inmediatas, evitando la latencia y el tiempo de procesamiento asociados con servicios backend.Seguridad: Aprovecha las características de seguridad integradas de API Gateway, asegurando que los endpoints mock estén protegidos según los mismos estándares que cualquier otro endpoint de API.
4.4. Implicaciones de Costos
Las integraciones mock son rentables, incurriendo en cargos solo basados en el número de llamadas API realizadas, sin tarifas adicionales por la funcionalidad mock en sí. Esto lo convierte en una opción económica para desarrollar, probar e iterar en APIs.
4.5. Aplicaciones Prácticas
Las integraciones mock son particularmente útiles en escenarios como:
Prototipado y Pruebas de API: Los desarrolladores pueden crear rápidamente endpoints mock para probar interacciones de API, manejo del cliente de varios tipos de respuesta y condiciones de error sin esperar la implementación del backend.Respuestas de Datos Estáticos: Ideal para escenarios donde una API necesita devolver datos consistentes y predecibles para desarrollo o pruebas de frontend.Simulación de Errores: Facilita la prueba de la resiliencia de aplicaciones cliente y el manejo de errores simulando fallos de API o respuestas inesperadas.
Ejemplo de implementación
Imagina que estás trabajando en una nueva característica de aplicación que requiere respuestas específicas de API para pruebas de lógica de frontend. Al configurar una integración mock, puedes configurar API Gateway para devolver una respuesta JSON predeterminada, como un código de estado 200 con {“message”: “Esta es una respuesta mock”}, permitiendo que el equipo de frontend avance sin dependencias del backend.
4.6. Ejemplo de Código de Configuración (Terraform)
A continuación se muestra un ejemplo de Terraform que demuestra la configuración de una integración mock, mostrando la simplicidad de configurar respuestas simuladas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
resource "aws_api_gateway_rest_api" "MyApi" {
name = "MockApi"
}
resource "aws_api_gateway_resource" "MyResource" {
rest_api_id = aws_api_gateway_rest_api.MyApi.id
parent_id = aws_api_gateway_rest_api.MyApi.root_resource_id
path_part = "mockpath"
}
resource "aws_api_gateway_method" "MyMockIntegration" {
rest_api_id = aws_api_gateway_rest_api.MyApi.id
resource_id = aws_api_gateway_resource.MyResource.id
http_method = "GET"
authorization = "NONE"
integration {
type = "MOCK"
request_templates = {
"application/json" = "Action=MockResponse&{ \"statusCode\": 200 }"
}
integration_responses = [{
status_code = "200"
response_templates = {
"application/json" = "{\"message\": \"Esta es una respuesta mock\"}"
}
}]
}
}
Este script ejemplifica cómo establecer una integración mock dentro de API Gateway usando Terraform, permitiendo a los desarrolladores simular endpoints de API rápidamente.
5. Integraciones de Servicios AWS
Las integraciones de servicios AWS permiten que API Gateway interactúe directamente con otros servicios AWS sin escribir código de integración personalizado. Esta integración simplifica la arquitectura al permitir el acceso directo a servicios AWS, como poner un elemento en una tabla de Amazon DynamoDB o publicar un mensaje en un tema de Amazon SNS, directamente a través de API Gateway.
5.1. Ventajas Clave
La conexión directa a servicios AWS a través de API Gateway no solo simplifica la arquitectura sino que también mejora la eficiencia general y escalabilidad de tus aplicaciones:
- Simplicidad: Elimina la necesidad de servicios o capas intermediarias, permitiendo una arquitectura más limpia.
- Acceso directo: Permite que las APIs realicen acciones directamente en servicios AWS.
Diferencia entre integración de
Servicios AWSe integraciónHTTP:Las Integraciones de Servicios AWS son un subconjunto de lo que puedes lograr con Integraciones HTTP, pero ofrecen un enfoque más integrado y centrado en AWS, simplificando la configuración al abstraer las solicitudes HTTP subyacentes en acciones similares al SDK de AWS directamente dentro de API Gateway.
5.2. Representación Visual
sequenceDiagram
participant Client as Cliente
participant APIG as API Gateway
participant AWSService as Servicio AWS
Client->>+APIG: Solicitud HTTP
APIG->>+AWSService: Invocar Acción del Servicio
AWSService-->>-APIG: Respuesta del Servicio
APIG-->>-Client: Respuesta HTTP
Este diagrama ejemplifica cómo API Gateway actúa como un conducto entre clientes y servicios AWS, agilizando el flujo de solicitud y respuesta.
5.3. Rendimiento y seguridad
Rendimiento: Las Integraciones de Servicios AWS están construidas sobre la robusta infraestructura de AWS, asegurando alta disponibilidad y confiabilidad.Seguridad: Aprovechando roles y permisos de AWS Identity and Access Management (IAM), estas integraciones ofrecen controles de seguridad de grano fino, asegurando que solo entidades autorizadas puedan ejecutar acciones específicas.
5.4. Implicaciones de Costos
Similar a las integraciones HTTP, el costo se basa en el precio de solicitudes de API Gateway. Además, se aplican cargos de operación estándar para el servicio AWS integrado.
5.5. Aplicaciones Prácticas
La versatilidad de las Integraciones de Servicios AWS soporta un amplio espectro de casos de uso:
Interacción Directa con Base de Datos: Agiliza el almacenamiento y recuperación de datos interactuando directamente con DynamoDB.Notificaciones y Mensajería: Utiliza SNS o SQS para difusión eficiente de mensajes y encolamiento.Orquestación de Flujos de Trabajo: Aprovecha AWS Step Functions para ejecución de flujos de trabajo complejos directamente desde API Gateway.
Ejemplo de implementación
Imagina un escenario donde necesitas datos en tiempo real de una tabla DynamoDB accesible a través de tu API. Configurar una Integración de Servicio AWS permite que API Gateway consulte directamente DynamoDB, evitando la necesidad de una función Lambda. Este enfoque directo reduce la latencia, simplifica la arquitectura y puede reducir costos.
5.6. Ejemplo de Código de Configuración (Terraform)
A continuación se muestra un script mejorado de Terraform que describe la configuración de Integración de Servicio AWS para DynamoDB:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
resource "aws_api_gateway_rest_api" "MyApi" {
name = "DynamoDBServiceApi"
}
resource "aws_api_gateway_resource" "MyResource" {
rest_api_id = aws_api_gateway_rest_api.MyApi.id
parent_id = aws_api_gateway_rest_api.MyApi.root_resource_id
path_part = "data"
}
resource "aws_api_gateway_method" "MyDynamoDBIntegration" {
rest_api_id = aws_api_gateway_rest_api.MyApi.id
resource_id = aws_api_gateway_resource.MyResource.id
http_method = "POST"
authorization = "NONE"
integration {
type = "AWS"
integration_http_method = "POST"
uri = "arn:aws:apigateway:${var.region}:dynamodb:action/PutItem"
credentials = aws_iam_role.apigateway_dynamodb.arn
}
}
Este script demuestra cómo configurar un método de API Gateway que interactúa directamente con DynamoDB, mostrando la eficiencia y simplicidad de las Integraciones de Servicios AWS.
5.7. Ejemplo de Consola AWS
En este caso, te mostraré cómo configurar la integración directa entre Amazon API Gateway y DynamoDB y Step Functions.
El flujo visual de ejecución del método es común para ambos casos:
Te mostraré solo la configuración clave para cada opción, y entenderás cómo funciona.
5.7.1. Integración directa con Step Functions
Esta es la solicitud de integración. Los valores importantes aquí son:
- Servicio AWS: Step Functions
- Método HTTP: POST
- Nombre de acción: StartExecution
- Rol de ejecución: debes crear un rol para API Gateway con permisos para conectarse a Step Functions
Esta parte es opcional, pero si no la configuras aquí, debes especificar en cada solicitud el ARN de las Step Functions con las que deseas conectarte:
5.7.2. Integración directa con DynamoDB
Esta es la solicitud de integración. Los valores importantes aquí son:
- Servicio AWS: DynamoDB
- Método HTTP: POST
- Nombre de acción: Scan
- Rol de ejecución: debes crear un rol para API Gateway con permisos para conectarse a Step Functions
Es importante definir el método HTTP como POST. Sin embargo, tu método de API Gateway puede ser un método GET.
Esta parte es opcional, pero si no la configuras aquí, debes especificar en cada solicitud el ARN de las Step Functions con las que deseas conectarte:
6. Integraciones VPC Link
Las integraciones VPC Link permiten integraciones privadas que permiten a API Gateway conectarse de forma segura con recursos dentro de una Amazon Virtual Private Cloud (VPC). Esto es particularmente útil para acceder a endpoints HTTP alojados dentro de tu VPC, sin exponerlos a internet público.
6.1. Tipos de VPC Links
Al configurar un VPC Link, es importante distinguir entre los dos tipos disponibles en API Gateway:
REST API VPC Link: Solo soporta integración con un NLB (Network Load Balancer).HTTP API VPC Link: Soporta integración tanto con ALB (Application Load Balancer) como con NLB.
6.2. Ventajas Clave
Al aprovechar VPC Links, puedes mantener la postura de seguridad de tus sistemas backend mientras aseguras conectividad fluida desde API Gateway:
Seguridad: Protege los sistemas backend evitando la exposición a internet público, confiando en cambio en las características de seguridad inherentes de AWS VPC.Acceso Privado: Facilita el acceso directo a recursos contenidos en VPC, como microservicios o bases de datos, desde tus APIs, mejorando la seguridad y eficiencia de la comunicación interna.
6.3. Representación Visual
sequenceDiagram
participant Client as Cliente
participant APIG as API Gateway
participant VL as VPC Link
participant VPCRes as Recurso VPC (ECS, ALB, etc.)
Client->>+APIG: Solicitud HTTP
APIG->>+VL: Solicitud vía VPC Link
VL->>+VPCRes: Reenviar Solicitud
VPCRes-->>-VL: Respuesta
VL-->>-APIG: Respuesta vía VPC Link
APIG-->>-Client: Respuesta HTTP
Esta ilustración demuestra el flujo de solicitudes y respuestas facilitado por VPC Links, destacando la ruta segura e interna dentro de la VPC.
6.4. Rendimiento y seguridad
Rendimiento: La efectividad de las integraciones VPC Link depende en gran medida de la configuración de red de tu VPC y el rendimiento de los servicios backend objetivo.Seguridad: VPC Links refuerzan la seguridad de las integraciones de API asegurando que el tráfico entre API Gateway y los recursos VPC no atraviese internet público, utilizando los robustos mecanismos de seguridad VPC de AWS.
6.5. Implicaciones de Costos
El precio incluye un cargo por hora para cada VPC link, más cargos por datos procesados. Esto es adicional al precio estándar de solicitudes de API Gateway.
6.6. Aplicaciones Prácticas
Emplear VPC Link es particularmente ventajoso para:
Asegurar Microservicios Privados: Ideal para arquitecturas donde microservicios desplegados en Amazon ECS o EKS dentro de una VPC necesitan ser expuestos de forma segura a través de API Gateway sin acceso a internet público.
Ejemplo de implementación
Si tienes un microservicio ejecutándose en Amazon ECS que está expuesto a través de un Application Load Balancer (ALB) dentro de tu VPC, puedes usar VPC Link para crear una conexión segura entre API Gateway y el ALB. Esta configuración permite que
HTTP API Gatewayenrute solicitudes a tu servicio ECS sin exponer el servicio a internet público. Para lograr esto, crea un VPC Link en API Gateway apuntando a tu ALB, y luego configura la solicitud de integración de tu API para enrutar a través del VPC Link.
6.7. Ejemplo de Código de Configuración (Terraform)
Aquí hay un script mejorado de Terraform que proporciona un modelo para configurar una integración VPC Link para conectar un HTTP API Gateway con un Application Load Balancer con respuesta fija:
22/02/2025: Actualizado el código terraform para mostrar el ejemplo completo
Esta es la evidencia de que el siguiente código funciona: 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
variable "availability_zones" {
description = "Lista de zonas de disponibilidad"
type = list(string)
default = ["eu-west-1a", "eu-west-1b"]
}
# API Gateway VPC Link
resource "aws_apigatewayv2_vpc_link" "MyVPCLink" {
name = "MyVPCLink"
security_group_ids = [aws_security_group.my_sg.id]
subnet_ids = aws_subnet.my_subnet[*].id
}
# Configuración ALB para Microservicios (ej., ECS)
resource "aws_lb" "my_alb" {
name = "my-alb"
internal = true
load_balancer_type = "application"
security_groups = [aws_security_group.my_sg.id]
subnets = aws_subnet.my_subnet[*].id
}
# Listener ALB para tráfico HTTP
resource "aws_lb_listener" "my_alb_listener" {
load_balancer_arn = aws_lb.my_alb.arn
port = 80
protocol = "HTTP"
default_action {
type = "fixed-response"
fixed_response {
status_code = 200
message_body = "API Gateway conectado a ALB"
content_type = "text/plain"
}
}
}
# Grupo de Seguridad para ALB
resource "aws_security_group" "my_sg" {
name = "my-security-group"
description = "Grupo de seguridad para ALB"
vpc_id = aws_vpc.my_vpc.id
# Permitir tráfico HTTP entrante desde la VPC (API Gateway VPC Link)
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["10.0.0.0/16"] # Permitir tráfico desde dentro de la VPC
}
# Permitir todo el tráfico saliente
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
# Configuración VPC
resource "aws_vpc" "my_vpc" {
cidr_block = "10.0.0.0/16"
}
# Configuración de Subnets
resource "aws_subnet" "my_subnet" {
count = 2
vpc_id = aws_vpc.my_vpc.id
cidr_block = count.index == 0 ? "10.0.1.0/24" : "10.0.2.0/24"
availability_zone = var.availability_zones[count.index]
map_public_ip_on_launch = false
}
# Definir API Gateway (HTTP API)
resource "aws_apigatewayv2_api" "my_api" {
name = "MyAPIGatewayAPI"
protocol_type = "HTTP"
}
resource "aws_apigatewayv2_integration" "my_integration" {
api_id = aws_apigatewayv2_api.my_api.id
integration_type = "HTTP_PROXY"
integration_uri = aws_lb_listener.my_alb_listener.arn # Usar ARN del Listener ALB aquí
connection_type = "VPC_LINK"
connection_id = aws_apigatewayv2_vpc_link.MyVPCLink.id
integration_method = "ANY"
}
# Definir Ruta para API Gateway con el método HTTP especificado
resource "aws_apigatewayv2_route" "my_route" {
api_id = aws_apigatewayv2_api.my_api.id
route_key = "ANY /myendpoint" # Definir método HTTP y ruta de API aquí
target = "integrations/${aws_apigatewayv2_integration.my_integration.id}"
}
resource "aws_apigatewayv2_stage" "my_stage" {
api_id = aws_apigatewayv2_api.my_api.id
name = "test"
auto_deploy = true # Desplegar cambios automáticamente
}
Esta configuración de Terraform describe la creación de un VPC Link en HTTP API Gateway, apuntando a un Application Load Balancer (ALB) dentro de una VPC, demostrando el proceso directo de asegurar el acceso de tu API a servicios internos.
7. Conclusión
A lo largo de este artículo, hemos explorado las diversas opciones de integración disponibles en Amazon API Gateway, cada una sirviendo propósitos distintos y ofreciendo ventajas únicas. Desde el poder serverless de las integraciones de Funciones Lambda hasta la conectividad robusta de las integraciones HTTP y de Servicios AWS, así como las conexiones privadas seguras facilitadas por VPC Links y la simplicidad de las Respuestas Mock para desarrollo y pruebas, API Gateway se presenta como una herramienta versátil en el ecosistema AWS. A continuación se muestra una tabla resumen que recapitula estos tipos de integración, sus beneficios, casos de uso y consideraciones de costos:
| Tipo de Integración | Ventajas Clave | Casos de Uso | Implicaciones de Costos |
|---|---|---|---|
| Función Lambda | Escalabilidad, Rentabilidad, Facilidad de Integración | Procesamiento de Datos, Procesamiento en Tiempo Real | Basado en volumen de solicitudes y ejecución de función Lambda |
| HTTP | Flexibilidad, Eficiencia, Proxy HTTP Genérico | APIs de Terceros, Microservicios | Precio de solicitudes de API Gateway más costos de servicio externo |
| Mock | Prototipado Rápido, Pruebas y Validación | Prototipado de API, Pruebas, Datos Estáticos | Basado en volumen de llamadas API |
| Servicio AWS | Simplicidad, Acceso directo | Interacción con Base de Datos, Notificaciones | Precio de solicitudes de API Gateway más cargos de operación de servicio AWS |
| VPC Link | Seguridad, Acceso Privado | Asegurar Microservicios Privados | Cargo por hora para cada VPC link más datos procesados |
Esta tabla subraya la flexibilidad y poder de API Gateway, ilustrando cómo puede servir una amplia gama de aplicaciones y necesidades arquitectónicas. Al seleccionar cuidadosamente el tipo de integración apropiado, los desarrolladores pueden optimizar sus servicios backend para rendimiento, costo y seguridad, asegurando que sus aplicaciones sean escalables, eficientes y bien integradas dentro del panorama AWS.
Incorporar estas integraciones en tu arquitectura no solo mejora las capacidades de tus aplicaciones sino que también se alinea con las mejores prácticas para el desarrollo nativo en la nube, aprovechando todo el potencial de los servicios AWS para crear aplicaciones robustas, escalables y seguras.







