{"id":935,"date":"2024-04-02T15:42:37","date_gmt":"2024-04-02T21:42:37","guid":{"rendered":"https:\/\/gumonet.com\/?p=935"},"modified":"2024-04-02T15:42:38","modified_gmt":"2024-04-02T21:42:38","slug":"despliega-tu-proyecto-aws-cdk-desde-gitlab","status":"publish","type":"post","link":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/","title":{"rendered":"Despliega tu proyecto AWS CDK desde GitLab"},"content":{"rendered":"\n

Desplegar tu proyecto utilizando los flujos de CD&CI de los servicios de repositorio nos ayuda mucho en nuestro d\u00eda a d\u00eda como DevOps, hoy te traigo un peque\u00f1o tutorial pr\u00e1ctico que te ayudar\u00e1 a realizar un despliegue de tu proyecto AWS CDK desde Gitlab<\/a><\/p>\n\n\n\n

Configurando las credenciales de AWS<\/h2>\n\n\n\n

Comenzaremos por generar nuestras access keys<\/em> en el IAM<\/strong> de AWS<\/strong>, si tienes dudas respecto a este paso puedes consultar este post<\/a> de AWS que explica paso a paso como generar una cuenta y crear las Access Keys.<\/p>\n\n\n\n

Agregando nuestras credenciales a GitLab<\/h2>\n\n\n\n

1. Crearemos un repositorio en GitLab, en mi caso lo llamar\u00e9 deploy-gitlab-cdk-example<\/em><\/code><\/p>\n\n\n\n

2. Una vez creado el repositorio procedemos a agregar un par de variables al proceso de CI&CD<\/strong> de GitLab. Desde la pantalla inicial de nuestro repo Ingresamos a Settings \u2192 CI\/CD \u2192<\/strong> En la secci\u00f3n de Variables,<\/strong> expandimos dando clic en el bot\u00f3n Expand.<\/strong><\/p>\n\n\n\n

\"AWS<\/figure>\n\n\n\n

3. Aqu\u00ed agregaremos nuestro Access Key<\/strong> de AWS como variables dando clic en el bot\u00f3n Add Variable<\/strong>. <\/p>\n\n\n\n

\"AWS<\/figure>\n\n\n\n

4. Agregamos 2 variables una para el Access Key y otra para el Secret Key, llenando los campos de la siguiente manera:<\/p>\n\n\n\n

\n
\n
\"AWS<\/figure>\n<\/div>\n\n\n\n
\n
\"AWS<\/figure>\n<\/div>\n<\/div>\n\n\n\n

El proyecto a desplegar<\/h2>\n\n\n\n

Vamos a utilizar un peque\u00f1o proyecto que venimos trabajando en d\u00edas anteriores, que consta de una peque\u00f1a p\u00e1gina web que se despliega en AWS, utilizando un bucket s3 y Cloud Front<\/a>. Si no has desarrollado ese ejercicio, te recomiendo antes de continuar asegurarte que puedas desplegar ese proyecto siguiendo los pasos de dicha publicaci\u00f3n, y despu\u00e9s integrar lo que mencionamos en este proyecto.<\/p>\n\n\n\n

1. Comenzar\u00e9 clonando mi repositorio en mi entorno local para poder agregar los archivos que formar\u00e1n parte de mi sitio web.<\/p>\n\n\n\n

git clone git@gitlab.com:gumonet\/deploy-cdk-example.git\n<\/code><\/pre>\n\n\n\n

2. Agregamos los archivos de nuestro proyecto, siguiendo los pasos del post anterior, quedando nuestra estructura de esta manera.<\/p>\n\n\n\n

\"Preview<\/figure>\n\n\n\n

3. Ya teniendo nuestro c\u00f3digo cargado y configurado, procedemos a agregar nuestro archivo pipeline para indicarle a GitLab las instrucciones de despliegue. Procedemos a crear en la raiz de nuestro un nuevo archivo llamado .gitlab-ci.yml<\/code><\/strong> Lo abrimos y agregamos lo siguiente:<\/p>\n\n\n\n

image: node:20 #Definimos la versi\u00f3n de node que utilizara nuestro pipeline\ncache:\n  paths:\n  - node_modules\/\n\nstages:\n  - deploy #Indicamos el orden en el que correr\u00e1bn los stages\n\ndeploy: #Creamos el stage deploy\n  only: #Vamos a indicarle a Gitlab que este stage solo se ejecute cuando se actualice la rama main\n   - main\n  stage: deploy\n  variables: #Agregamos una variable de entorno en donde indicamos en que regi\u00f3n se desplegar\u00e1 nuestro proyecto\n    CDK_DEPLOY_REGION: 'us-east-1'\n  before_script: #Antes de ejecutar el script de despliegue le indicamos que instale el cli de cdk\n    - npm install -g aws-cdk@latest\n  script: # Definimos el scrip de ejecuci\u00f3n con los pasos para nuestro despliegue\n    - cd infra\/\n    - npm install\n    - npm run build\n    - cdk synth\n    - cdk deploy --require-approval never\n<\/code><\/pre>\n\n\n\n

4. Hacemos un commit de nuestros cambios y enviamos todo a nuestro repositorio. Esto deber\u00e1 de iniciar un nuevo Job que podemos ver en la secci\u00f3n Build \u2192 Jobs de nuestro repositorio.<\/p>\n\n\n\n

\"Lista<\/figure>\n\n\n\n

5. Dando clic en el Job<\/strong> podemos ver el progreso de nuestro despliegue.<\/p>\n\n\n\n

\"AWS<\/figure>\n\n\n\n

6. Una vez que esto finalic\u00e9 y si todo anda bien, veremos que el status del deploy se pinta en color verde.<\/p>\n\n\n\n

\"AWS<\/figure>\n\n\n\n

7. Al final del output del Job veremos el link de nuestro proyecto, ingresamos a \u00e9l y veremos nuestro despliegue finalizado.<\/p>\n\n\n\n

\"Obtener<\/figure>\n\n\n\n
\"Proyecto<\/figure>\n\n\n\n
<\/path><\/svg><\/div>
\n

\u201cUna vez finalizada la pr\u00e1ctica recuerda remover todos los recursos de tu cuenta de AWS, puedes hacerlo f\u00e1cilmente desde tu entorno local ejecutando los comandos\u201d<\/p>\n<\/div><\/div>\n\n\n\n

cd infra #Ingresas al directorio infra\ncdk destroy #ejecutas el destroy<\/code><\/pre>\n\n\n\n

De igual manera puedes ingresar a tu consola de AWS, dirigirte al servicio Cloud Formation, encontrar el proyecto que desplegaste y lo seleccionamos dando clic en el Radio Button <\/strong>y posteriormente lo eliminamos presionando el bot\u00f3n Delete.<\/p>\n\n\n\n

\"Eliminar<\/figure>\n\n\n\n

Esto comenzar\u00e1 a remover cada componente y configuraci\u00f3n de nuestro Stack, solo esperamos a que finalic\u00e9 y listo.<\/p>\n\n\n\n

\"Elimiar<\/figure>\n\n\n\n

Por \u00faltimo, aqu\u00ed te dejo el c\u00f3digo fuente para que puedas apoyarte en caso de que tengas dudas. https:\/\/gitlab.com\/gumonet\/deploy-cdk-example\/<\/a>
<\/p>\n","protected":false},"excerpt":{"rendered":"

Desplegar tu proyecto utilizando los flujos de CD&CI de los servicios de repositorio nos ayuda mucho en nuestro d\u00eda a d\u00eda como DevOps, hoy te traigo un peque\u00f1o tutorial pr\u00e1ctico que te ayudar\u00e1 a realizar un despliegue de tu proyecto AWS CDK desde Gitlab Configurando las credenciales de AWS Comenzaremos por generar nuestras access keys […]<\/p>\n","protected":false},"author":1,"featured_media":952,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52,51],"tags":[49,53,55],"yoast_head":"\nDespliega tu proyecto AWS CDK desde GitLab - Gumonet<\/title>\n<meta name=\"description\" content=\"Aprende a desplegar tu proyecto de AWS CDK desde GitLab, utilizando el flujo CD&CI que nos ofrece esta plataforma.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Despliega tu proyecto AWS CDK desde GitLab - Gumonet\" \/>\n<meta property=\"og:description\" content=\"Aprende a desplegar tu proyecto de AWS CDK desde GitLab, utilizando el flujo CD&CI que nos ofrece esta plataforma.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/\" \/>\n<meta property=\"og:site_name\" content=\"Gumonet\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-02T21:42:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-02T21:42:38+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"gumonet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@gumonet\" \/>\n<meta name=\"twitter:site\" content=\"@gumonet\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"gumonet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/\"},\"author\":{\"name\":\"gumonet\",\"@id\":\"https:\/\/gumonet.com\/#\/schema\/person\/c6d490ae659f4ad7e5fc0526c2458f94\"},\"headline\":\"Despliega tu proyecto AWS CDK desde GitLab\",\"datePublished\":\"2024-04-02T21:42:37+00:00\",\"dateModified\":\"2024-04-02T21:42:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/\"},\"wordCount\":542,\"publisher\":{\"@id\":\"https:\/\/gumonet.com\/#\/schema\/person\/c6d490ae659f4ad7e5fc0526c2458f94\"},\"image\":{\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png\",\"keywords\":[\"aws\",\"cdk\",\"gitlab\"],\"articleSection\":[\"AWS\",\"DevOps\"],\"inLanguage\":\"es-MX\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/\",\"url\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/\",\"name\":\"Despliega tu proyecto AWS CDK desde GitLab - Gumonet\",\"isPartOf\":{\"@id\":\"https:\/\/gumonet.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png\",\"datePublished\":\"2024-04-02T21:42:37+00:00\",\"dateModified\":\"2024-04-02T21:42:38+00:00\",\"description\":\"Aprende a desplegar tu proyecto de AWS CDK desde GitLab, utilizando el flujo CD&CI que nos ofrece esta plataforma.\",\"breadcrumb\":{\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#breadcrumb\"},\"inLanguage\":\"es-MX\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es-MX\",\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#primaryimage\",\"url\":\"https:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png\",\"contentUrl\":\"https:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/gumonet.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Despliega tu proyecto AWS CDK desde GitLab\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/gumonet.com\/#website\",\"url\":\"https:\/\/gumonet.com\/\",\"name\":\"Gumonet\",\"description\":\"DevOps and Web developer\",\"publisher\":{\"@id\":\"https:\/\/gumonet.com\/#\/schema\/person\/c6d490ae659f4ad7e5fc0526c2458f94\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/gumonet.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es-MX\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/gumonet.com\/#\/schema\/person\/c6d490ae659f4ad7e5fc0526c2458f94\",\"name\":\"gumonet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-MX\",\"@id\":\"https:\/\/gumonet.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gumonet.com\/wp-content\/uploads\/2021\/01\/cropped-icon.png\",\"contentUrl\":\"https:\/\/gumonet.com\/wp-content\/uploads\/2021\/01\/cropped-icon.png\",\"width\":512,\"height\":512,\"caption\":\"gumonet\"},\"logo\":{\"@id\":\"https:\/\/gumonet.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/gumonet.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Despliega tu proyecto AWS CDK desde GitLab - Gumonet","description":"Aprende a desplegar tu proyecto de AWS CDK desde GitLab, utilizando el flujo CD&CI que nos ofrece esta plataforma.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/","og_locale":"es_MX","og_type":"article","og_title":"Despliega tu proyecto AWS CDK desde GitLab - Gumonet","og_description":"Aprende a desplegar tu proyecto de AWS CDK desde GitLab, utilizando el flujo CD&CI que nos ofrece esta plataforma.","og_url":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/","og_site_name":"Gumonet","article_published_time":"2024-04-02T21:42:37+00:00","article_modified_time":"2024-04-02T21:42:38+00:00","og_image":[{"width":1200,"height":630,"url":"http:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png","type":"image\/png"}],"author":"gumonet","twitter_card":"summary_large_image","twitter_creator":"@gumonet","twitter_site":"@gumonet","twitter_misc":{"Escrito por":"gumonet","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#article","isPartOf":{"@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/"},"author":{"name":"gumonet","@id":"https:\/\/gumonet.com\/#\/schema\/person\/c6d490ae659f4ad7e5fc0526c2458f94"},"headline":"Despliega tu proyecto AWS CDK desde GitLab","datePublished":"2024-04-02T21:42:37+00:00","dateModified":"2024-04-02T21:42:38+00:00","mainEntityOfPage":{"@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/"},"wordCount":542,"publisher":{"@id":"https:\/\/gumonet.com\/#\/schema\/person\/c6d490ae659f4ad7e5fc0526c2458f94"},"image":{"@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#primaryimage"},"thumbnailUrl":"https:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png","keywords":["aws","cdk","gitlab"],"articleSection":["AWS","DevOps"],"inLanguage":"es-MX"},{"@type":"WebPage","@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/","url":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/","name":"Despliega tu proyecto AWS CDK desde GitLab - Gumonet","isPartOf":{"@id":"https:\/\/gumonet.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#primaryimage"},"image":{"@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#primaryimage"},"thumbnailUrl":"https:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png","datePublished":"2024-04-02T21:42:37+00:00","dateModified":"2024-04-02T21:42:38+00:00","description":"Aprende a desplegar tu proyecto de AWS CDK desde GitLab, utilizando el flujo CD&CI que nos ofrece esta plataforma.","breadcrumb":{"@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#breadcrumb"},"inLanguage":"es-MX","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/"]}]},{"@type":"ImageObject","inLanguage":"es-MX","@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#primaryimage","url":"https:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png","contentUrl":"https:\/\/gumonet.com\/wp-content\/uploads\/2024\/04\/Untitled-design.png","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/gumonet.com\/despliega-tu-proyecto-aws-cdk-desde-gitlab\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/gumonet.com\/"},{"@type":"ListItem","position":2,"name":"Despliega tu proyecto AWS CDK desde GitLab"}]},{"@type":"WebSite","@id":"https:\/\/gumonet.com\/#website","url":"https:\/\/gumonet.com\/","name":"Gumonet","description":"DevOps and Web developer","publisher":{"@id":"https:\/\/gumonet.com\/#\/schema\/person\/c6d490ae659f4ad7e5fc0526c2458f94"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gumonet.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es-MX"},{"@type":["Person","Organization"],"@id":"https:\/\/gumonet.com\/#\/schema\/person\/c6d490ae659f4ad7e5fc0526c2458f94","name":"gumonet","image":{"@type":"ImageObject","inLanguage":"es-MX","@id":"https:\/\/gumonet.com\/#\/schema\/person\/image\/","url":"https:\/\/gumonet.com\/wp-content\/uploads\/2021\/01\/cropped-icon.png","contentUrl":"https:\/\/gumonet.com\/wp-content\/uploads\/2021\/01\/cropped-icon.png","width":512,"height":512,"caption":"gumonet"},"logo":{"@id":"https:\/\/gumonet.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/gumonet.com"]}]}},"_links":{"self":[{"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/posts\/935"}],"collection":[{"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/comments?post=935"}],"version-history":[{"count":4,"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/posts\/935\/revisions"}],"predecessor-version":[{"id":951,"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/posts\/935\/revisions\/951"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/media\/952"}],"wp:attachment":[{"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/media?parent=935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/categories?post=935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gumonet.com\/wp-json\/wp\/v2\/tags?post=935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}