<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ aws - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ aws - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 22 May 2026 15:16:33 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/tag/aws/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Como conectarse a AWS RDS desde AWS Lambda ]]>
                </title>
                <description>
                    <![CDATA[ En este artículo, vamos a aprender cómo comunicarnos con AWS RDS desde AWS Lambda. Vamos a usar AWS CDK (Cloud Development Kit), el cual es software, o marco de trabajo (del inglés framework) de código abierto, que te permite definir y crear infraestructura en la nube (cloud). AWS CDK tiene ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/como-conectarse-a-aws-rds-desde-aws-lambda/</link>
                <guid isPermaLink="false">655ce5b1bcc2a003e70e34eb</guid>
                
                    <category>
                        <![CDATA[ aws ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Israel Palma ]]>
                </dc:creator>
                <pubDate>Tue, 16 Apr 2024 19:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2023/11/AWS-Lambda-RDS-Proxy-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/aws-lambda-rds/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Connect to AWS RDS from AWS Lambda</a>
      </p><p>En este artículo, vamos a aprender cómo comunicarnos con AWS RDS desde AWS Lambda.</p><p>Vamos a usar <code>AWS CDK</code> (Cloud Development Kit), el cual es software, o marco de trabajo (del inglés framework) de código abierto, que te permite definir y crear infraestructura en la nube (cloud).</p><p><code>AWS CDK</code> tiene soporte para muchos lenguajes de programación, incluyendo a TypeScript, Python, C#, Java y otros. Nosotros usaremos TypeScript en este tutorial.</p><p>Al desplegar usando el comando <code>cdk deploy</code>, tu código es transformado a plantillas CloudFormation y todos los recursos AWS correspondientes serán creados. Solo necesitas conocimientos básicos de CDK y TypeScript para seguir este tutorial. Claro que también necesitas una cuenta AWS para poder crear recursos AWS.</p><p>Puedes continuar aprendiendo más acerca de AWS CDK en la <a href="https://docs.aws.amazon.com/es_es/cdk/v2/guide/getting_started.html">documentación oficial</a> y también escribí <a href="https://www.cloudtechsimplified.com/the-beginners-guide-to-aws-cdk/">una guía para principiantes </a>en mi blog (en inglés).</p><h2 id="introducci-n-a-aws-lambda-y-rds"><strong>Introducción a AWS Lambda y RDS</strong></h2><p>AWS Lambda es un servicio "serverless" de cómputo por eventos que te permite ejecutar código sin la necesidad de provisionar servidores.</p><p>AWS RDS es un servicio de base de datos relacional administrada que tiene soporte para varios sistemas RDMBS (Sistema de Bases de Datos Relacionales) como MySQL, Postgres, Oracle, SQL Server entre otros. AWS se encarga de los parches y el mantenimiento a estos servidores de bases de datos.</p><h3 id="-porque-usar-rds-junto-con-lambda"><strong>¿Porque usar RDS junto con Lambda?</strong></h3><p>AWS Lambda es un servicio de cómputo y no requiere o recomienda tecnologías específicas de almacenamiento de datos para su funcionamiento. De hecho, algunas de tus funciones lambda ni siquiera van a interactuar con almacenes de datos de algún tipo. Y si necesitaras utilizar una tecnología de almacenamiento de datos, podrías utilizar cualquier base de datos de acuerdo a tus necesidades. </p><p>Sin embargo, la mayoría de las arquitecturas serverless utilizan DynamoDB como almacén de datos sólo para reducir costos y eliminar la necesidad del mantenimiento de servidores de bases de datos.</p><p>DynamoDB es grandioso y tiene sus casos de uso aplicables. Pero usarla para todos los proyectos que involucren lambda no es posible por las siguientes razones:</p><p><strong>Patrones de acceso dinámicos:</strong> Al usar DynamoDB tendrías que diseñar con anticipación tus propios patrones de consulta. Sin embargo, esto no siempre es posible dado que tu producto (y sus respectivos requerimientos) podría evolucionar en base a la retroalimentación de tu cliente.</p><p><strong>Patrones de acceso limitado:</strong> DynamoDB no te brinda flexibilidad al escribir consultas. No puedes usar la funcionalidad <code>group by</code> en tus consultas como lo harías en un RDMBS. En cambio, necesitas exportar los datos y tener algún otro sistema que provea la funcionalidad deseada, en este caso la funcionalidad <code>group by</code>.</p><p><strong>Base de datos existente:</strong> Si tienes una base de datos RDBMS no querrás migrar a DynamoDB a menos que haya una buena razón para hacerlo. Incluso si quieres usar DynamoDB necesitarías reescribir toda la capa de acceso de datos para poder usarla como remplazo de una base de datos relacional (RDBMS).</p><h3 id="ventajas-de-usar-rdbms-"><strong>Ventajas de usar RDBMS:</strong></h3><p><strong>Relaciones entre entidades: </strong>Las bases de datos relacionales (RDBMS) permiten las relaciones entre entidades. Puedes definir claves foráneas para restringir el almacenamiento de datos inválidos.</p><p><strong>Patrones de acceso:</strong> Las bases de datos relacionales te permite el uso de patrones de acceso dinámico. Una nueva entidad puede ser traída casi sin la necesidad de realizar grandes cambios a los modelos existentes. Y tiene muchas funcionalidades cómo <code>group_by</code> para que no tengas necesidad de usar sistemas externos para facilitar estas funcionalidades.</p><p><strong>Familiaridad con SQL:</strong> La mayoría de los desarrolladores están familiarizados con SQL para realizar consultas a las bases de datos y hay una gran variedad de dónde se puede seleccionar una, incluyendo Oracle, Postgres y MySQL.</p><p>Podrías elegir RDBMS si tienes los siguientes requerimientos:</p><ul><li>Tienes una base de datos RDBMS existente y te gustaría adaptar computación serverless de AWS Lambda.</li><li>Ya cuentas con patrones dinámicos de acceso y no quieres cambiar mucho tus modelos existentes.</li></ul><p>Habiendo cubierto los puntos anteriores, discutamos cómo vamos a conectarnos a RDS desde Lambda.</p><h2 id="arquitectura-del-proyecto"><strong>Arquitectura del Proyecto </strong></h2><p>En casi la totalidad de los casos, tu base de datos RDBMS será una sub-red (subnet) de la Nube Virtual Privada (VPC - Virtual Private Cloud), con la finalidad de que nadie del exterior pueda tener acceso. Dado que tu función Lambda contendrá lógica de negocios, también podría pertenecer a esta sub-red privada.</p><p>Usaremos Postgres cómo nuestra base de datos para este tutorial. Pero el proceso descrito aquí, es aplicable para cualquier base de datos relacional (MySQL, Oracle, MS SQL y otras) que podrías querer utilizar. La arquitectura será la misma.</p><p>Abajo puedes ver la arquitectura de este proyecto:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2022/11/AWS-Lambda-RDS-Latest.png" class="kg-image" alt="AWS-Lambda-RDS-Latest" width="600" height="400" loading="lazy"></figure><p>Vamos a utilizar <code>AWS CDK</code> a modo de herramienta de tipo "Código cómo Infraestructura" para crear recursos AWS.</p><h3 id="c-mo-crear-una-nube-virtual-privada-vpc-para-alojar-nuestros-lambda-y-rdbms"><strong>Cómo crear una nube virtual privada (VPC) para alojar nuestros Lambda y RDBMS</strong></h3><p>Vamos a crear 2 subnets, una pública y otra privada. En la privada vamos a alojar nuestra base de datos Postgres.</p><pre><code class="language-typescript">const vpc = new ec2.Vpc(this, 'VpcLambda', {
      maxAzs: 2,
      subnetConfiguration: [
        {
          cidrMask: 24,
          name: 'privatelambda',
          subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
        },
        {
          cidrMask: 24,
          name: 'public',
          subnetType: ec2.SubnetType.PUBLIC,
        },
      ],
    });</code></pre><p>Cuando creas una sub-red de tipo <code>PRIVATE_WITH_EGRESS</code> usando AWS CDK también creará un NAT Gateway (NAT: Network Access Translation, Gateway puerta de acceso o enlace) y la colocará en la sub-red pública.</p><p>El propósito de NAT Gateway es permitir sólo las conexiones de salida desde tu subnet privada hacia el internet. Nadie podrá iniciar conexiones con tu subnet privada desde el internet público.</p><h3 id="-por-qu-usar-nat-gateway-para-la-conectividad-con-internet"><strong>¿Por qué usar NAT Gateway para la conectividad con internet?</strong></h3><p>Podrías estarte preguntando por qué es necesario una conexión a internet, si tenemos ambos servicios, Lambda y la base de datos RDS en la misma sub-red privada.</p><p>Secrets Manager es un servicio de AWS para el manejo y almacenamiento de datos secretos como contraseñas, certificados, etc. La contraseña para conectarse a la base de datos se encuentra almacenada en <code>secrets manager</code> y es accesible desde un endpoint (punto de acceso) público. &nbsp;</p><p>Puedes usar ya sea <code>NAT Gateway</code> para tener acceso al endpoint público del servicio de <code>secrets manager</code> o puedes crear una endpoint a modo de interfaz, para conectar con el <code>secrets manager</code> usando la Red AWS sin salir al internet público.<br><br>Ambas formas generarían un costo, pero NAT Gateway puede ser reutilizada para realizar conexiones también desde Lambda (digamos si llamas a cualquier API externa), mientras que desde un endpoint-interfaz no sería posible hacerlo de esta manera.</p><h3 id="c-mo-crear-una-instancia-de-base-de-datos-rds-para-almacenar-nuestros-datos-"><strong>Cómo crear una instancia de base de datos RDS para almacenar nuestros datos:</strong></h3><p>Para los propósitos de este tutorial vamos a usar una pequeña instancia. Pero para ambientes de producción lo más común es utilizar instancias de mayores tamaños.</p><p>Crearemos un nuevo grupo de seguridad, para de esta forma poder controlar quién tiene acceso a la instancia de la base de datos y a través de cual puerto. </p><pre><code class="language-typescript">const dbSecurityGroup = new ec2.SecurityGroup(this, 'DbSecurityGroup', {
      vpc,
    });

    const databaseName = 'cloudtechsimplified';

    const dbInstance = new rds.DatabaseInstance(this, 'Instance', {
      engine: rds.DatabaseInstanceEngine.postgres({
        version: rds.PostgresEngineVersion.VER_13,
      }),
      // optional, defaults to m5.large
      instanceType: ec2.InstanceType.of(
        ec2.InstanceClass.BURSTABLE3,
        ec2.InstanceSize.SMALL
      ),
      vpc,
      vpcSubnets: vpc.selectSubnets({
        subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
      }),
      databaseName,
      securityGroups: [dbSecurityGroup],
      credentials: rds.Credentials.fromGeneratedSecret('postgres'),
      maxAllocatedStorage: 200,
    });</code></pre><p>El código <code>CDK</code> de arriba creará una instancia de la base de datos y la colocará en la subnet privada que ya hemos creado en la sección anterior.</p><p>El método <code>fromGeneratedSecret</code> creará el secreto en el servicio secrets manager pasándole el nombre de usuario como parámetro. Queremos que el nombre de usuario sea <code>Postgres</code>, por lo que será el valor que pasaremos.<br><br>Y finalmente, vamos a asignar un espacio de 200GB de almacenamiento para la base de datos.</p><h3 id="c-mo-configurar-las-propiedades-de-la-funci-n-lambda"><strong>Cómo configurar las propiedades de la función Lambda</strong></h3><p>Usaremos Node 16 para escribir y empaquetar nuestra función Lambda, y abajo te muestro las propiedades para la Lambda.</p><p>Queremos que el 'timeout' sea de 3 minutos en lugar de los 3 segundos que son por defecto, y queremos asignar un espacio de 256MB para la función Lambda.</p><p>Ya que el <code>aws-sdk</code> ya viene provisto por el ambiente de ejecución de lambda, vamos a excluir la liberaría <code>aws-sdk</code> al escribir nuestra lambda.</p><p>Hemos instalado el paquete npm llamado <code>pg</code> que nos es útil para comunicarnos con la base de datos Postgres y excluimos el paquete <code>pg-native</code> puesto que no lo necesitamos.</p><pre><code class="language-typescript"> const nodeJsFunctionProps: NodejsFunctionProps = {
      bundling: {
        externalModules: [
          'aws-sdk', // Use the 'aws-sdk' available in the Lambda runtime
          'pg-native',
        ],
      },
      runtime: Runtime.NODEJS_16_X,
      timeout: Duration.minutes(3), // Default is 3 seconds
      memorySize: 256,
    };</code></pre><p>A continuación, crearemos un grupo de seguridad para la función lambda. Nuestra lambda debe contener información acerca del "endpoint", el nombre de usuario y la contraseña para que la lambda pueda conectarse a la base de datos.</p><p>Vamos a pasar estos valores en forma de variables de entorno a la función lambda.</p><pre><code class="language-typescript"> const lambdaSG = new ec2.SecurityGroup(this, 'LambdaSG', {
      vpc,
    });

    const rdsLambdaFn = new NodejsFunction(this, 'rdsLambdaFn', {
      entry: path.join(__dirname, '../src/lambdas', 'rds-lambda.ts'),
      ...nodeJsFunctionProps,
      functionName: 'rdsLambdaFn',
      environment: {
        DB_ENDPOINT_ADDRESS: dbInstance.dbInstanceEndpointAddress,
        DB_NAME: databaseName,
        DB_SECRET_ARN: dbInstance.secret?.secretFullArn || '',
      },
      vpc,
      vpcSubnets: vpc.selectSubnets({
        subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
      }),
      securityGroups: [lambdaSG],
    });</code></pre><p><strong>Nota Importante:</strong> No vamos a pasar la contraseña de la base de datos cómo variable de entorno, sino que pasaremos el ARN (Nombre de Recurso de Amazon) en su lugar y traeremos la mera contraseña de forma dinámica, (en tiempo de ejecución) desde el secrets manager al interior de Lambda para más y mejor seguridad.</p><h3 id="permisos-de-acceso-a-la-contrase-a-de-la-base-de-datos-para-lambda"><strong>Permisos de acceso a la contraseña de la base de datos para lambda </strong></h3><p>Aunque le hemos pasado el arn secreto (<code>secret arn</code>) en forma de variable de entorno, lambda debería tener los permisos necesarios para poder leer el secreto del secrets manager, en este caso la contraseña de la base de datos.</p><p>La línea de código de abajo provee de estos permisos:</p><pre><code class="language-typescript">dbInstance.secret?.grantRead(rdsLambdaFn);</code></pre><p>La línea de código CDK anterior creará un rol para la lambda con 2 permisos (<code>DescribeSecret</code> y <code>GetSecretValue</code>) para el secrets manager, para que de esta forma nuestra lambda tenga permitido obtener el valor secreto (la contraseña de la base de datos) antes de intentar comunicarse con ella.<br><br>Es posible ver lo mismo desde la consola AWS en el servicio Lambda.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-23.png" class="kg-image" alt="AWS Lambda Permissions for Secrets Manager" width="600" height="400" loading="lazy"><figcaption>Permisos de AWS Lambda para Secrets Manager</figcaption></figure><h3 id="grupo-de-seguridad-para-la-instancia-de-la-base-de-datos-rds"><strong>Grupo de seguridad para la instancia de la base de datos RDS </strong></h3><p>No queremos permitir que la conexión a la base de datos esté disponible para todos, pero sí queremos que las conexiones desde lambda sean posibles.</p><p>El siguiente código CDK agrega una regla de ingreso que permite la conectividad a la instancia RDS desde nuestra función lambda a través del puerto <code>5432</code> (el puerto para la base de datos Postgres):</p><pre><code class="language-typescript">  dbSecurityGroup.addIngressRule(
      lambdaSG,
      ec2.Port.tcp(5432),
      'Lambda to Postgres database'
    );</code></pre><h3 id="c-digo-de-la-funci-n-lambda-para-la-comunicaci-n-con-la-base-de-datos"><strong>Código de la función lambda para la comunicación con la base de datos</strong></h3><p>El código específico de la función lambda que le permite la comunicación con la base de datos es muy simple. Ya que estamos usando una base de datos Postgres, usaremos el paquete <code>pg</code> para comunicarnos con Postgres desde el ambiente <code>nodejs</code>. </p><p>Antes de iniciar la conexión a la base de datos, traeremos la cadena de texto desde el servicio <code>secrets manager</code>. Este texto secreto es una cadena de texto JSON que contiene tanto el nombre de usuario como la contraseña. Por lo que sólo necesitaremos usar <code>JSON.parse()</code> y tomar sólo la contraseña.</p><pre><code class="language-typescript">import * as AWS from 'aws-sdk';
import { Client } from 'pg';

export const handler = async (event: any, context: any): Promise&lt;any&gt; =&gt; {
  try {
    const host = process.env.DB_ENDPOINT_ADDRESS || '';
    console.log(`host:${host}`);
    const database = process.env.DB_NAME || '';
    const dbSecretArn = process.env.DB_SECRET_ARN || '';
    const secretManager = new AWS.SecretsManager({
      region: 'us-east-1',
    });
    const secretParams: AWS.SecretsManager.GetSecretValueRequest = {
      SecretId: dbSecretArn,
    };
    const dbSecret = await secretManager.getSecretValue(secretParams).promise();
    const secretString = dbSecret.SecretString || '';

    if (!secretString) {
      throw new Error('secret string is empty');
    }

    const { password } = JSON.parse(secretString);

    const client = new Client({
      user: 'postgres',
      host,
      database,
      password,
      port: 5432,
    });
    await client.connect();
    const res = await client.query('SELECT $1::text as message', [
      'Hello world!',
    ]);
    console.log(res.rows[0].message); // Hello world!
    await client.end();
  } catch (err) {
    console.log('error while trying to connect to db');
  }
};
</code></pre><p>Y finalmente, vamos a ejecutar una simple consulta select en nuestra base de datos.</p><h3 id="c-mo-probar-y-comprobar-el-proyecto"><strong>Cómo probar y comprobar el proyecto</strong></h3><p>Ahora ya podrás ingresar a tu consola AWS para la realización de pruebas. Selecciona el servicio <code>Lambda</code> y luego selecciona tu función lambda, en nuestro caso sería <code>rdsLambdaFn</code>.</p><p>Para este tutorial no necesitas preocuparte por la propiedad lambda <code>event</code> ya que no la vamos a utilizar en el código de nuestra función. Haz click en el botón de prueba "Test" y podrás ver los logs. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/11/Lambda-perf-without-proxy.png" class="kg-image" alt="Test Lambda function" width="600" height="400" loading="lazy"><figcaption>Comprobando (Test) la función Lambda</figcaption></figure><h3 id="el-problema-de-rendimiento"><strong>El problema de rendimiento</strong></h3><p>Lambda es bien conocido por funciones cuya ejecución es de corta duración. De hecho, el límite máximo de "timeout" es 15 minutos.</p><p>Cómo puedes ver en el código de la función, estamos iniciando la conexión a la base de datos cada vez que la función lambda es invocada.</p><p>Dependiendo en el evento fuente de la lambda (digamos la fila SQS), esto podría crear conexiones a un ritmo mayor y se desconectaría al finalizar la función lambda.</p><p>Esto incrementa significativamente la carga al servidor de la base de datos RDS, lo que a su vez reduce el rendimiento. ¿Cómo arreglar este problema entonces?</p><h2 id="c-mo-usar-rds-proxy"><strong>Cómo usar RDS Proxy</strong></h2><p>Como alternativa a la creación directa de conexiones desde lambda hacia la base de datos, podemos tener una Proxy a RDS como intermediario entre lambda y la base de datos RDS. </p><p>El propósito del proxy RDS es mantener un conjunto de conexiones para que cualquier consumidor pueda conectarse al proxy y en su momento, a la base de datos. Nótese que aquí, no estaríamos creando una conexión, sólo obteniendo una conexión ya creada. </p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/11/AWS-RDS-Proxy-Logical-1.png" class="kg-image" alt="AWS-RDS-Proxy-Logical-1" width="600" height="400" loading="lazy"><figcaption>Usando la Proxy RDS con Lambda</figcaption></figure><p>Hay 2 ventajas al usar este método:</p><ol><li><strong>Reduce la carga al servidor de la base de datos</strong>: Dado que no necesitamos crear una conexión para cada invocación lambda en el servidor, la carga se reduce significativamente.</li><li><strong>Rendimiento <strong>lambda </strong>mejorado</strong>: Desde lambda, sólo estaremos recibiendo una conexión al proxy RDS y no estaremos creando una nueva conexión a la base de datos, lo que mejora el rendimiento de la función lambda.</li></ol><h3 id="cambios-requeridos-para-usar-el-rds-proxy"><strong>Cambios requeridos para usar el RDS Proxy</strong></h3><p>No necesitamos realizar grandes cambios a nuestra arquitectura ni a nuestro código. Sólo hay que hacer un par de cosas:</p><ul><li>Crear la proxy RDS y asociarle el grupo de seguridad de la base de datos que hemos creado anteriormente.</li><li>Actualizar la variable de entorno del endpoint lambda para que la función pueda conectarse al proxy RDS y no así a la base de datos RDS directamente.</li></ul><p>No es necesario cambiar el código de la función lambda.</p><h3 id="arquitectura-actualizada"><strong>Arquitectura actualizada</strong></h3><p>Abajo puedes ver el diagrama actualizado de la arquitectura.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/11/AWS-Lambda-RDS-Proxy.png" class="kg-image" alt="RDS Proxy with Lambda - Architecture" width="600" height="400" loading="lazy"><figcaption>RDS Proxy con Lambda - Arquitectura</figcaption></figure><h3 id="c-mo-crear-el-proxy-rds"><strong>Cómo crear el proxy RDS </strong></h3><p>Necesitamos crear el proxy RDS y agregar la instancia de la base de datos cómo el objetivo del proxy.</p><pre><code class="language-typescript">const dbProxy = new rds.DatabaseProxy(this, 'Proxy', {
      proxyTarget: rds.ProxyTarget.fromInstance(dbInstance),
      secrets: [dbInstance.secret!],
      securityGroups: [dbSecurityGroup],
      vpc,
      requireTLS: false,
      vpcSubnets: vpc.selectSubnets({
        subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
      }),
    });</code></pre><p>Nótese que también estamos pasando el secreto de la base de datos al proxy pues este será responsable de mantener las conexiones. Estamos usando el mismo grupo de seguridad de la base de datos, como hicimos para poder abrir el puerto 5432.</p><h3 id="c-mo-actualizar-el-endpoint-para-lambda"><strong>Cómo actualizar el endpoint para lambda</strong></h3><p>No es necesario que modifiquemos el código de la función lambda. Sólo necesitamos actualizar el endpoint que lo hemos pasado como variable de entorno.</p><pre><code class="language-typescript"> environment: {
        DB_ENDPOINT_ADDRESS: dbProxy.endpoint,
        DB_NAME: databaseName,
        DB_SECRET_ARN: dbInstance.secret?.secretFullArn || '',
      },</code></pre><p>No haremos ningún otro cambio.</p><h3 id="mejoras-de-rendimiento"><strong>Mejoras de rendimiento</strong></h3><p>Cuando realizas pruebas a tu función lambda, puedes ver que se conecta al proxy, en vez de a la instancia de la base de datos (ya que estamos imprimiendo la información del endpoint como <code>host</code>).</p><p>También debes notar que el rendimiento mejora significativamente. Antes tomaba cerca de 500ms (milisegundos), ahora sólo le toma 50ms..</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/11/image-22.png" class="kg-image" alt="Performance of lambda with RDS Proxy" width="600" height="400" loading="lazy"><figcaption>Rendimiento de lambda con RDS Proxy</figcaption></figure><p>Nótese que podría tomar tiempo adicional cuando se obtiene la conexión inicial del proxy RDS, pero obtener las subsecuentes conexiones, será rápido como se muestra arriba. </p><h2 id="conclusi-n"><strong>Conclusión</strong></h2><p>Espero que este tutorial te haya ayudado a aprender cómo realizar una conexión a RDS desde Lambda.</p><p>Gracias por leer hasta este punto, yo escribo acerca de AWS Lambda, Fargate, CI/CD Pipeline y Tecnologías Serverless en &nbsp;<a href="https://www.cloudtechsimplified.com/">https://www.cloudtechsimplified.com</a>. Si te interesa puedes suscribirte <a href="https://www.cloudtechsimplified.com/subscribe/">aquí</a>.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Profesional de la Nube AWS  – Guía de certificaciones de Amazon 2023 ]]>
                </title>
                <description>
                    <![CDATA[ Más y más empresas están haciendo la transición hacia servicios en la nube y sistemas basados en la nube en estos días, lo que hace que la computación en la nube sea una de las habilidades tecnológicas más demandadas este 2023. AWS es actualmente el proveedor de servicios en la ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/profesional-de-la-nube-aws-guia-de-certificaciones-de-amazon-2023/</link>
                <guid isPermaLink="false">65006f8a9e94da6109646d01</guid>
                
                    <category>
                        <![CDATA[ aws ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beatriz I Bravo ]]>
                </dc:creator>
                <pubDate>Wed, 20 Sep 2023 01:58:10 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2023/09/ethan-yrGn-av5WF8-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/aws-cloud-practitioner-salary-2023-amazon-certification-guide/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">AWS Cloud Practitioner Salary – Amazon Certification Guide</a>
      </p><p>Más y más empresas están haciendo la transición hacia servicios en la nube y sistemas basados en la nube en estos días, lo que hace que la computación en la nube sea una de las habilidades tecnológicas más demandadas este 2023.</p><p>AWS es actualmente el proveedor de servicios en la nube más popular, ya que posee alrededor del 33% del mercado de la nube.</p><p>Las empresas y organizaciones están buscando candidatos con habilidades en AWS. Una forma de mostrar tus conocimientos en AWS es obteniendo una certificación de AWS. </p><p>En este artículo, enumeraré las certificaciones actuales de AWS y profundizaré más en detalle sobre la certificación de Cloud Practitioner.</p><p>¡Vamos a ello!</p><h2 id="-qu-es-aws-explicaci-n-de-amazon-web-services"><strong>¿Qué es AWS? - Explicación de Amazon Web Services</strong></h2><p>Amazon Web Services (o AWS, por sus siglas en inglés) es una plataforma de computación en la nube ofrecida por Amazon.</p><p>La plataforma proporciona servicios de computación en la nube bajo demanda, como alojamiento para servidores, almacenamiento, gestión de bases de datos, redes y seguridad, por nombrar solo algunos de ellos.</p><p>Muchas empresas utilizan AWS, incluyendo grandes compañías como Airbnb, Netflix, LinkedIn y Twitter. Dicho esto, también se utiliza para proyectos personales.</p><h2 id="-qu-es-una-certificaci-n-de-aws"><strong>¿Qué es una certificación de AWS? </strong></h2><p>Una certificación de AWS es una forma creíble de demostrar a un empleador que tienes habilidades técnicas específicas y competencia para diseñar, construir, implementar, migrar, operar y mantener sistemas de AWS bien arquitectados.</p><p>Obtener una certificación de AWS y adquirir experiencia en arquitectura en la nube es una excelente manera de comenzar una nueva carrera en tecnología y abrir puertas en una industria de rápido crecimiento.</p><h2 id="una-visi-n-general-de-los-diferentes-tipos-de-certificaciones-de-aws-niveles-de-certificaciones-de-aws"><strong>Una visión general de los diferentes tipos de certificaciones de AWS - Niveles de certificaciones de AWS</strong></h2><p>Actualmente, existen cuatro tipos de certificaciones de AWS.</p><p>Hay una certificación de<strong> nivel fundamental:</strong> la certificación de <a href="https://aws.amazon.com/certification/certified-cloud-practitioner/?ch=sec&amp;sec=rmg&amp;d=1">Cloud Practitioner</a> .</p><p>Hay tres certificaciones de <strong>nivel asociado</strong>: las certificaciones de &nbsp;<a href="https://aws.amazon.com/certification/certified-solutions-architect-associate/?ch=sec&amp;sec=rmg&amp;d=1">Solutions Architect</a>, <a href="https://aws.amazon.com/certification/certified-developer-associate/?ch=sec&amp;sec=rmg&amp;d=1">Developer</a> y <a href="https://aws.amazon.com/certification/certified-sysops-admin-associate/?ch=sec&amp;sec=rmg&amp;d=1">SysOps Administrator</a>.</p><p>También hay dos certificaciones de <strong>nivel profesional</strong>: las certificaciones de <a href="https://aws.amazon.com/certification/certified-solutions-architect-professional/?ch=sec&amp;sec=rmg&amp;d=1">Solutions Architect</a> y<a href="https://aws.amazon.com/certification/certified-devops-engineer-professional/?ch=sec&amp;sec=rmg&amp;d=1">DevOps Engineer</a>.</p><p>Y por último, existen seis certificaciones de <strong>nivel especializado</strong>: las certificaciones de <a href="https://aws.amazon.com/certification/certified-advanced-networking-specialty/?ch=sec&amp;sec=rmg&amp;d=1">Advanced Networking</a>, <a href="https://aws.amazon.com/certification/certified-data-analytics-specialty/?ch=sec&amp;sec=rmg&amp;d=1">Data Analytics</a>, <a href="https://aws.amazon.com/certification/certified-database-specialty/?ch=sec&amp;sec=rmg&amp;d=1">Database</a>, <a href="https://aws.amazon.com/certification/certified-machine-learning-specialty/?ch=sec&amp;sec=rmg&amp;d=1">Machine Learning</a>, <a href="https://aws.amazon.com/certification/certified-security-specialty/?ch=sec&amp;sec=rmg&amp;d=1">Security</a> y <a href="https://aws.amazon.com/certification/certified-sap-on-aws-specialty/?ch=sec&amp;sec=rmg&amp;d=1">SAP en AWS</a>.</p><p>Elegir una certificación de AWS dependerá de tu nivel de experiencia, objetivos profesionales e intereses.</p><p>Ahora, profundicemos más en detalle sobre la certificación fundamental de AWS: la certificación de Cloud Practitioner. </p><h2 id="-qu-hace-un-aws-cloud-practitioner"><strong>¿Qué hace un AWS Cloud Practitioner?</strong></h2><p>Un AWS Cloud Practitioner es responsable de la arquitectura de computación en la nube de una organización. Resuelven desafíos de escalabilidad y manejan problemas de alto riesgo.</p><p>El practitioner comprende los principios de diseño y las mejores prácticas de AWS para la arquitectura.</p><p>Saben cómo diseñar, construir, implementar y monitorear aplicaciones en la nube dentro de las plataformas de AWS.</p><p>Recopilan información sobre los problemas y puntos débiles de los usuarios finales, aprovechan sistemas de software y hardware para abordar esos problemas y proponen soluciones.</p><h2 id="-cu-l-es-el-salario-promedio-de-un-aws-cloud-practitioner"><strong>¿Cuál es el salario promedio de un AWS Cloud Practitioner?</strong></h2><p>Según datos de Glassdoor, el salario total estimado para un cloud practitioner en los Estados Unidos en 2023 es de alrededor de $91,038 al año, con un salario promedio de $83,679 al año.</p><p>Dicho esto, la compensación es relativa y dependerá de tu campo e industria, elegidos, demanda, experiencia previa, habilidades y ubicación. El salario promedio de un profesional de la nube puede ser más alto en diferentes regiones de los Estados Unidos y más bajo en otros países.</p><h2 id="requisitos-previos-para-la-certificaci-n-de-aws-cloud-practitioner"><strong>Requisitos previos para la certificación de AWS Cloud Practitioner</strong></h2><p>La certificación de AWS Cloud Practitioner es un excelente punto de partida para tu aprendizaje de computación en la nube y una nueva carrera en la nube.</p><p>Es una certificación de nivel inicial destinada a proporcionar conocimientos fundamentales y una visión general de AWS y su infraestructura. No requiere experiencia previa ni requisitos específicos.</p><p>Dicho esto, tener una comprensión de la plataforma de AWS y los conceptos y terminología de la computación en la nube puede ser útil durante tu proceso de aprendizaje.</p><p>Para comprender los conceptos básicos de la computación en la nube y AWS, puedes leer la G<a href="https://aws.amazon.com/es/getting-started/cloud-essentials/?nc1=h_ls">uía básica &nbsp;de la Nube de &nbsp;AWS</a>.</p><h2 id="curriculum-de-la-certificaci-n-de-aws-cloud-practitioner"><strong>Curriculum de la Certificación de AWS <strong>Cloud </strong>Practitioner </strong></h2><p>Los cuatro temas principales que aprenderás mientras estudias para la certificación de AWS Cloud Practitioner se dividen en las siguientes categorías:</p><ul><li><strong>Conceptos de la nube</strong> (26%): aprenderás sobre temas de computación en la nube, cómo funcionan y escalan las aplicaciones basadas en la nube, la infraestructura central de AWS y sus principios arquitectónicos.</li><li><strong>Seguridad y cumplimiento</strong> (25%): aprenderás las mejores prácticas de seguridad y cumplimiento para la plataforma de AWS.</li><li><strong>Tecnología </strong>(33%): aprenderás sobre los servicios y herramientas de AWS y sus casos de uso.</li><li><strong>Facturación y precios</strong> (16%): aprenderás sobre la facturación de AWS, los modelos de precios, el soporte y la gestión de cuentas.</li></ul><p>Para obtener más información sobre el plan de estudios, AWS proporciona una <a href="https://d1.awsstatic.com/training-and-certification/docs-cloud-practitioner/AWS-Certified-Cloud-Practitioner_Exam-Guide.pdf">guía de examen completa</a> que cubre los módulos clave en detalle.</p><h2 id="materiales-de-estudio-para-la-certificaci-n-de-aws-cloud-practitioner">Materiales de estudio para la certificación de AWS Cloud Practitioner</h2><p>Primero, necesitas crear una <a href="https://aws.amazon.com/es/resources/create-account/?nc1=h_ls">cuenta de AWS</a>.</p><p>AWS ofrece una <a href="https://aws.amazon.com/es/free/?all-free-tier&amp;all-free-tier.sort-by=item.additionalFields.SortRank&amp;all-free-tier.sort-order=asc&amp;awsf.Free%20Tier%20Types=*all&amp;awsf.Free%20Tier%20Categories=*all">suscripción gratuita de 12 meses</a> para familiarizarte con la consola de AWS y sus servicios.</p><p>En cuanto a los cursos, puedes utilizar el <a href="https://aws.amazon.com/es/training/learn-about/cloud-practitioner/">plan de aprendizaje de AWS Cloud Essentials</a> creado por AWS, que cubre el plan de estudios recomendado. Este curso abarca la nube de AWS, los servicios, los precios y la seguridad. </p><p>freeCodeCamp también ofrece un extenso<a href="https://www.freecodecamp.org/news/aws-certified-cloud-practitioner-certification-study-course-pass-the-exam/"> curso de estudio de 13 horas</a> en ingles. </p><p>También es recomendable repasar algunas <a href="https://d1.awsstatic.com/training-and-certification/docs-cloud-practitioner/AWS-Certified-Cloud-Practitioner_Sample-Questions.pdf">preguntas de práctica</a> y <a href="https://aws.amazon.com/es/certification/certification-prep/">exámenes de práctica</a> proporcionados por la página oficial de Amazon para evaluar si estás suficientemente preparado para el examen de certificación.</p><h2 id="detalles-del-examen-de-certificaci-n-de-aws-cloud-practitioner">Detalles del examen de certificación de AWS Cloud Practitioner</h2><p>Una vez que hayas creado tu cuenta de certificación de AWS, para programar el examen de AWS Cloud Practitioner, inicia sesión en<a href="https://www.aws.training/"> aws.training</a> y haz clic en "Certificación", donde podrás registrarte y programar el examen en línea o en un lugar cercano a ti. </p><p>El nivel del examen es fundamental, y el código del examen es CLF-C01. </p><p>El examen tiene un costo de $100 y está disponible en inglés, francés, alemán, indonesio, italiano, japonés, coreano, portugués, chino simplificado, español y chino tradicional. </p><p>El examen dura 90 minutos y consta de 65 preguntas de opción múltiple y opción múltiple-respuesta. La puntuación mínima para aprobar es de 700 puntos. </p><p>El examen dura 90 minutos y consta de 65 preguntas de opción múltiple y opción múltiple-respuesta. La puntuación mínima para aprobar es de 700 puntos. <br><br>Por último, las certificaciones de AWS son válidas por tres años y deberás renovarlas una vez que expiren.</p><h2 id="conclusi-n"><strong>Conclusión</strong></h2><p>Espero que hayas encontrado útil este artículo y que ahora tengas una mejor comprensión de lo que implica la certificación de AWS Cloud Practitioner. </p><p>Gracias por leer y ¡buena suerte en tu examen!</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
