<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: bi3wa3</title>
    <description>The latest articles on DEV Community by bi3wa3 (@bi3wa3).</description>
    <link>https://dev.to/bi3wa3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F969274%2F3ddf45b2-5d0f-4e4c-abd8-223976a58c43.jpeg</url>
      <title>DEV Community: bi3wa3</title>
      <link>https://dev.to/bi3wa3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bi3wa3"/>
    <language>en</language>
    <item>
      <title>How I Deployed a Next.js App to AWS S3 &amp; CloudFront</title>
      <dc:creator>bi3wa3</dc:creator>
      <pubDate>Fri, 21 Nov 2025 17:23:05 +0000</pubDate>
      <link>https://dev.to/bi3wa3/how-i-deployed-a-nextjs-app-to-aws-s3-cloudfront-simple-setup-ee6</link>
      <guid>https://dev.to/bi3wa3/how-i-deployed-a-nextjs-app-to-aws-s3-cloudfront-simple-setup-ee6</guid>
      <description>&lt;p&gt;Recently I had to put a small Next.js frontend online, and instead of spinning up EC2 or ECS, I decided to keep things simple and try S3 + CloudFront. Honestly, it turned out to be faster and easier than I expected, so I’m sharing the exact steps here in case it helps someone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reason I Picked S3 + CloudFront
&lt;/h2&gt;

&lt;p&gt;For a basic frontend, you really don’t need anything complex.&lt;br&gt;
S3 + CloudFront gives you really good speed with free SSL with almost Zero Cost. For most static sites, this setup is more than enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Build the Next.js App
&lt;/h2&gt;

&lt;p&gt;Inside my project, I ran:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm run build&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But since I wanted a static export, I used:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;next build &amp;amp;&amp;amp; next export&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This creates an &lt;code&gt;out/&lt;/code&gt; folder.&lt;br&gt;
Everything inside that folder is what we will upload.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create an S3 Bucket
&lt;/h2&gt;

&lt;p&gt;I created a new S3 bucket (named mine something simple like next-demo-build).&lt;br&gt;
A few things to not miss which are to Disable “Block public access” after that Enable Static Website Hosting then Upload the out/ folder contents&lt;/p&gt;

&lt;p&gt;At this point, the site is technically live — just without HTTPS and caching.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Add CloudFront
&lt;/h2&gt;

&lt;p&gt;To make it production-style, I added CloudFront which has very easy steps i.e first Create distribution and Select the S3 bucket as the origin after that Use an ACM certificate for HTTPS then Set index.html as the default root object.&lt;br&gt;
CloudFront took around 10 minutes to deploy for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Updating the Site Later
&lt;/h2&gt;

&lt;p&gt;To update the website next time, I just sync the folder:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws s3 sync out/ s3://next-demo-build --delete&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Replacing old files with the latest build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This setup is perfect if you just want frontend up and running without managing servers. It’s simple, cheap, and works really well. If you haven’t tried hosting a static Next.js build on AWS yet, give this a shot it’s honestly one of the easiest cloud deployments I’ve done.&lt;/p&gt;

&lt;p&gt;CloudFront took around 10 minutes to deploy for me.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>tutorial</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Exploring the Elastic Container Service</title>
      <dc:creator>bi3wa3</dc:creator>
      <pubDate>Mon, 24 Jul 2023 14:48:03 +0000</pubDate>
      <link>https://dev.to/bi3wa3/introducing-the-elastic-container-service-1agf</link>
      <guid>https://dev.to/bi3wa3/introducing-the-elastic-container-service-1agf</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In today's landscape of cloud computing and scalable applications, it has completely transformed the industry. Application developers can utilize this feature to consolidate their apps and dependencies into efficient containers, ensuring consistent deployment in diverse environments. Efficient operations depend on effective management of these containers, Here's where Amazon Elastic Container Service (Amazon ECS) takes the stage. Let's dive deep into Amazon ECS in this blog, Simplify the process of container management and orchestration with the powerful service - Amazon ECS from AWS.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Exactly is an Amazon Elastic Container service ?
&lt;/h2&gt;

&lt;p&gt;Amazon Web Services (AWS) offers the fully-managed container orchestration service called Amazon Elastic Container Service (ECS). Users can effortlessly deploy, manage, and scale applications in Docker containers. Developers can focus on application development instead of managing complex container orchestration infrastructure thanks to ECS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NDI_267O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/apqltxv20xutjhg8o2uz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NDI_267O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/apqltxv20xutjhg8o2uz.png" alt="Image description" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits and Key features Provided by ECS
&lt;/h2&gt;

&lt;p&gt;Managed Cluster Infrastructure: Cluster management is efficiently handled by Amazon ECS., Automated provisioning of infrastructure resources needed for container deployment and execution. Users have the ability to outline their desired infrastructure needs by utilizing tasks and services, and The appropriate resources are assigned by ECS.&lt;/p&gt;

&lt;p&gt;Highly Scalable: Scaling applications up or down based on demand becomes straightforward with ECS. By adjusting the number of tasks or services, users can handle fluctuations in traffic and ensure optimal performance without manual intervention.&lt;/p&gt;

&lt;p&gt;Integration with AWS Services: Amazon ECS provides a seamless integration experience with different AWS services. Some of the choices you have are Amazon EC2, Amazon ECR (Elastic Container Registry), AWS Fargate, AWS IAM, and various other services. Promotes a comprehensive cloud ecosystem for your containerized applications.&lt;/p&gt;

&lt;p&gt;Task Definitions: Task Definitions define how containers should run within an The ECS service is responsible for executing and managing task sets.. They specify the container images, CPU and memory requirements, networking, and other configurations essential for running containers.&lt;/p&gt;

&lt;p&gt;Load Balancing and Auto Scaling: The capability to balance loads for containerized applications is provided by ECS through the use of either Application Load Balancers or Network Load Balancers. When used together with Auto Scaling, The number of running tasks in ECS can be automatically adjusted based on demand.&lt;/p&gt;

&lt;p&gt;Service Discovery: The integration of ECS with Amazon Route 53 and AWS Cloud Map ensures the availability of service discovery functionalities. This makes it easier for different services within the same cluster to communicate with each other using friendly DNS names.&lt;/p&gt;

&lt;p&gt;IAM for security: By utilizing AWS Identity and Access Management (IAM) roles, you can regulate access to ECS resources and secure the protection of your containerized applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Amazon Elastic Container Service Works
&lt;/h2&gt;

&lt;p&gt;Task Definition Creation: The first step in using Amazon ECS is to create a Task Definition. This encompasses the definition of container specifications that include Docker images along with their associated CPU and memory requirements along with networking as well as other critical settings.&lt;/p&gt;

&lt;p&gt;Cluster Creation: Upon defining the Task Definition, users must proceed with creating an ECS cluster. The cluster operates as the cornerstone of the software housed in containers.&lt;/p&gt;

&lt;p&gt;Task Scheduling: The task scheduling mechanism in ECS is utilized to place tasks on the appropriate EC2 instances or Fargate containers based on the defined constraints and resource requirements.&lt;/p&gt;

&lt;p&gt;Task Execution: The ECS Agent, running on each EC2 instance or Fargate container, receives and executes the tasks assigned to it by the ECS service.&lt;/p&gt;

&lt;p&gt;Load Balancing and Auto Scaling: ECS can automatically distribute incoming traffic across multiple containers using Load Balancers. By leveraging Auto Scaling, one can dynamically regulate the quantity of running tasks by considering CPU utilization, memory usage, or custom metrics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Amazon Elastic Container Service (Amazon ECS) Capable of both versatility and scalability, this solution effectively handles containerized application management within the AWS cloud. By seamlessly integrating with other AWS services and offering user-friendly features, ECS empowers developers to build robust applications without distractions. AWS effectively manages the underlying infrastructure and handles container orchestration seamlessly are expertly managed by AWS.&lt;/p&gt;

&lt;p&gt;By utilizing the strength of Amazon ECS, enterprises can enjoy improved utilization of resources, simplified rollout, and boosted scalability. As a final outcome, the development process becomes increasingly agile and efficient. For those who run smaller applications or handle larger scale distributed systems, With its container management functionalities, Amazon ECS proves to be a valuable asset in the cloud.&lt;/p&gt;

</description>
      <category>containers</category>
      <category>ecs</category>
      <category>aws</category>
    </item>
    <item>
      <title>VPC to VNET connection between AWS and Azure - Site-to-Site VPN</title>
      <dc:creator>bi3wa3</dc:creator>
      <pubDate>Sun, 16 Jul 2023 16:38:00 +0000</pubDate>
      <link>https://dev.to/bi3wa3/vpc-to-vnet-connection-between-aws-and-azure-site-to-site-vpn-jng</link>
      <guid>https://dev.to/bi3wa3/vpc-to-vnet-connection-between-aws-and-azure-site-to-site-vpn-jng</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xAx6YEaO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ksalny0sdaxy199f82u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xAx6YEaO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ksalny0sdaxy199f82u.png" alt="vnet to vpc connection" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;In this blog we will be going throgh how we can configure a site2site vpn connection between AWS and Azure to make a private communication between them. The above figure is the architecture we will be implementing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;First we will configure the Azure part and we will move to AWS &lt;/p&gt;

&lt;h3&gt;
  
  
  Create An Azure Virtual Network (VNET)
&lt;/h3&gt;

&lt;p&gt;In azure first create a resource group and create VNET with CIDR range 172.10.0.0/16 and one subnet with CIDR range 172.10.1.0/24&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--chfQtJ_6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gs6kbt3gn4jiew06dlut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--chfQtJ_6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gs6kbt3gn4jiew06dlut.png" alt="Vnet in Azure" width="790" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create Gateway Subnet
&lt;/h3&gt;

&lt;p&gt;Create Gateway Subnet with CIDR range 172.10.5.0/27. Gateway subnet in the VNet is needed to configure an Azure VPN Gateway. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NtIUE98s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wq9z7wsfnxovms4c9v2y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NtIUE98s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wq9z7wsfnxovms4c9v2y.png" alt="Gateway subnet" width="790" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create Azure Virtual Network Gateway
&lt;/h3&gt;

&lt;p&gt;Now we can create a virtual network gateway. This may take some time to create.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F0bqYrSs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzbjcmxmllmr3ba0k46k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F0bqYrSs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzbjcmxmllmr3ba0k46k.png" alt="Network Gateway" width="650" height="844"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have setup Azure configuration now moving towards AWS part&lt;/p&gt;

&lt;h3&gt;
  
  
  Create An AWS Virtual Private Network (VPC)
&lt;/h3&gt;

&lt;p&gt;Now come to AWS side and create a VPC with CIDR range 192.16.0.0/16&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--spff94HW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ggp0c2j0rapy23miar3h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--spff94HW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ggp0c2j0rapy23miar3h.png" alt="AWS VPC" width="708" height="761"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;create subnet with CIDR range 192.16.1.0/24. Associate the subnet by going to the route table.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EN5dBnCL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8t43by5i0ew98iz3tmth.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EN5dBnCL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8t43by5i0ew98iz3tmth.png" alt="Subnet creation" width="473" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create Customer Gateway
&lt;/h3&gt;

&lt;p&gt;Goto customer gateway section in the console and click on it, and in IP address place, give the Public IP  Azure Virtual Network Gateway.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4VVRtjCY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zcysfrrn6hwg4jexedo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4VVRtjCY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zcysfrrn6hwg4jexedo.png" alt="Customer Gateway" width="703" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create AWS Virtual Private Gateway
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AZz3qnKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g39vuci9x8dvjs2ccdob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AZz3qnKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g39vuci9x8dvjs2ccdob.png" alt="Image description" width="702" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a Site-to-Site VPN
&lt;/h3&gt;

&lt;p&gt;create a VPN connection by clicking on VPN connection from the panel. Select Routing Option is Static and add Azure VPC CIDR range.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fyWhOGM9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mmdvch1pyjocr981bktl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fyWhOGM9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mmdvch1pyjocr981bktl.png" alt="Site to site vpn" width="642" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After, VPN is successfully created, download the configuration for the vpn and you need to select the vendor as Generic. With this configuration file will setup Local Network Gateway in Azure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TBl7y8h_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kbnhpu8ngsen19vubm8n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TBl7y8h_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kbnhpu8ngsen19vubm8n.png" alt="VPN creation" width="583" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We now again continue to the Azure part of configuration&lt;/p&gt;

&lt;h3&gt;
  
  
  Create Azure Local Network Gateway
&lt;/h3&gt;

&lt;p&gt;Now create 2 local network gateways for high availability.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mkNBA5Km--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aa557rbcxg2xkr413yzo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mkNBA5Km--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aa557rbcxg2xkr413yzo.png" alt="Local Network Gateway" width="312" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From configuration select the public ip address and give aws vpn that public ip.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a Connection
&lt;/h3&gt;

&lt;p&gt;Add new connection by selecting Local network gateway , shared keys and configuration as required.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LNZKXwX8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/glotbhoa103p52l7sua3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LNZKXwX8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/glotbhoa103p52l7sua3.png" alt="Connection creation" width="305" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  configure routes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create route table in Azure .
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KNayXws5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ikcixugyl19bqjeha98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KNayXws5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ikcixugyl19bqjeha98.png" alt="Image description" width="443" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Add a new route to a CIDR range of AWS VPC and pointing to the Virtual Network Gateway.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UevKIY8p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7fmyfm5oydkfd2jqdf1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UevKIY8p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7fmyfm5oydkfd2jqdf1f.png" alt="Image description" width="407" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create route table in aws
&lt;/h3&gt;

&lt;p&gt;Follow the same procedure as above and add a route to the CIDR of azure vpc pointing to the virtual private gateway.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tLhfKmY---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tne96szzyd9h3ukaos0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tLhfKmY---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tne96szzyd9h3ukaos0f.png" alt="Image description" width="748" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5oWg6L2i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rs9jwxcxc5az4wtnd6p1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5oWg6L2i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rs9jwxcxc5az4wtnd6p1.png" alt="Image description" width="790" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;After following the above pocedures your sitetosite vpn . To check if there is network communication between the two vpc and vnet deploy instances without public ip in both subnets and check for connection using, rdp telnet and so on.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>azure</category>
      <category>vpn</category>
      <category>transitgateway</category>
    </item>
    <item>
      <title>SMTP server for your application using SES</title>
      <dc:creator>bi3wa3</dc:creator>
      <pubDate>Sun, 16 Jul 2023 04:55:38 +0000</pubDate>
      <link>https://dev.to/bi3wa3/smtp-server-for-your-application-using-ses-33pd</link>
      <guid>https://dev.to/bi3wa3/smtp-server-for-your-application-using-ses-33pd</guid>
      <description>&lt;p&gt;We have certainly come to a point when developing an application where we needed to send emails from the application , the system requires to send outgoing mail which can come from various areas they can be monitoring , alerting batch processing . You may be not want to setup a different server for smtp or run it on-prem for only setting these feature. Amazon simple Email Service (SES) is a service provided by AWS for you to allow sending mails from any kind of application . Below shows the simplified architecture of how a SES works with an EC2 Instance to let users get a Email from the application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fYmFJG87--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tqtw9gxy2o0g5v2j9qrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fYmFJG87--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tqtw9gxy2o0g5v2j9qrc.png" alt="SES Integration Architecture" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;At first we need to have an AWS account with an ec2 instance running an application . For the current configuration i have an EC2 instance that is running a php application , after you setup your application proceed to the SES service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---M4vl5Rz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j35akpg8zdaf7v24dist.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---M4vl5Rz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j35akpg8zdaf7v24dist.png" alt="Image description" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the above select the SMTP settings and click on the Create SMTP credentials . &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qb0d3nOy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j1sh4keu9p2aw9cv4s4p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qb0d3nOy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j1sh4keu9p2aw9cv4s4p.png" alt="Image description" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The IAM account will be created automatically assigning the required policy  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OfRl1-pd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/me9wujs0uag5g05qth17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OfRl1-pd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/me9wujs0uag5g05qth17.png" alt="Image description" width="800" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The credentials are provided as shown in the above diagram , copy the required information.&lt;/p&gt;

&lt;p&gt;Now everything is set to go , but you may want to create identities which can be used to send emails from , it can be of your custom domain type or &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---T9muc3D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/792sa5pauyfnn155pma8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---T9muc3D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/792sa5pauyfnn155pma8.png" alt="Image description" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Create identites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PBCJNP7h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hi30sulyj1yfc5z3mco3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PBCJNP7h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hi30sulyj1yfc5z3mco3.png" alt="Image description" width="800" height="784"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above shows the Email address identity verification , after creating it you will get verification code to the email you have set .&lt;/p&gt;

&lt;p&gt;You can use domain verification too if you own a domain .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MIWD2R8---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j8qprndka2y97mfyj7ww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MIWD2R8---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j8qprndka2y97mfyj7ww.png" alt="Image description" width="800" height="770"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tNg5jOx1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cn71817tp95qiagqx5op.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tNg5jOx1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cn71817tp95qiagqx5op.png" alt="Image description" width="800" height="737"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PrgBNeoo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8srqome6cko3zw0mu864.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PrgBNeoo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8srqome6cko3zw0mu864.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For verification add these CNAME records to the DNS records of your domain. After that your domain or the email address you have configured is shown as verified as shown in the figure above.&lt;br&gt;
You can now use the provided configurations like smtp endpoint , ports , SMTP username and password and set it to the application code and it will work perfectly.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
