<?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: rinku1511</title>
    <description>The latest articles on DEV Community by rinku1511 (@rinku1511).</description>
    <link>https://dev.to/rinku1511</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%2F1128462%2F9d819545-3072-420c-882a-db10ec2ea1ce.png</url>
      <title>DEV Community: rinku1511</title>
      <link>https://dev.to/rinku1511</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rinku1511"/>
    <language>en</language>
    <item>
      <title>Importance of UI: A reality SLAP</title>
      <dc:creator>rinku1511</dc:creator>
      <pubDate>Tue, 03 Sep 2024 06:45:35 +0000</pubDate>
      <link>https://dev.to/rinku1511/importance-of-ui-a-reality-slap-53hd</link>
      <guid>https://dev.to/rinku1511/importance-of-ui-a-reality-slap-53hd</guid>
      <description>&lt;p&gt;I am adding this blog as a sweet SLAP on the face of all the people who think that UI is merely a superficial layer of software development, overshadowed by the grandeur of backend coding. For too long, the misconception has persisted that user interface (UI) is secondary to backend development. But let's set the record straight.&lt;/p&gt;

&lt;p&gt;UI is not just about making things look pretty; it's about creating an intuitive experience for users. One of my favourite is that of &lt;a href="https://fireflyz.tech/" rel="noopener noreferrer"&gt;Fireflyz tech&lt;/a&gt;, a It services company based in Ahmedabad. And contrary to popular belief, it can make or break the success of a product. It is like ignoring the effects of first impression with firm handshake and warm smile which can lead to a fruitful conversation. Let us walk through a few illustrations. &lt;/p&gt;

&lt;p&gt;Slack initially struggled with user adoption due to its cluttered and complex interface. While the functionality was robust, navigating the platform and managing conversations proved challenging for users. Users reported difficulty in finding and organizing conversations, leading to frustration and low engagement. Slack started with a comprehensive redesign effort in 2015. The primary goals were to simplify navigation, streamline communication, and enhance overall usability. The UI/UX improvements had a profound impact on Slack's user engagement and retention. Within weeks of the redesign, Slack experienced a significant increase in daily active users almost by 10% and user satisfaction metrics.&lt;/p&gt;

&lt;p&gt;Another great example, Amazon faced a significant challenge when many users abandoned their shopping carts at the checkout stage due to form prompting users to either log in or register. This step led to frustration and cart abandonment, costing Amazon millions in potential revenue. To tackle this problem, Amazon made a simple yet impactful change. They replaced the "Register" button with "Continue" and a message reassuring users that they didn't need to create an account to make purchases. Instead, they could proceed directly to checkout. This small adjustment resulted in a remarkable 45% increase in completed purchases and generated an additional $300 million in revenue within the first year alone. &lt;/p&gt;

&lt;p&gt;Some might think that while a good UI can boost sales, there aren't any real downsides to a mediocre one. But here's another sweet slap in their faces to set things straight.&lt;/p&gt;

&lt;p&gt;Taking the most well-known example of Windows 8 failure, Despite its innovative features, Windows 8 faced backlash primarily due to its radical departure well-designed UI. When you introduce an entire UI overhaul and force it on people, then you get a lot of negative pushback. Windows 8 did just that and got hate overall.&lt;/p&gt;

&lt;p&gt;With these examples in mind and a good example of &lt;a href="https://fireflyz.tech/" rel="noopener noreferrer"&gt;Fireflyz Tech &lt;/a&gt;website, let's not just slap UI on as an afterthought but give it the high-five it deserves. Cheers to better interfaces and brighter futures!&lt;/p&gt;

</description>
      <category>ui</category>
      <category>ux</category>
      <category>design</category>
      <category>graphic</category>
    </item>
    <item>
      <title>Hosting a WordPress Website on AWS LightSail with SSL</title>
      <dc:creator>rinku1511</dc:creator>
      <pubDate>Tue, 09 Apr 2024 18:46:06 +0000</pubDate>
      <link>https://dev.to/rinku1511/hosting-a-wordpress-website-on-aws-lightsail-with-ssl-4lha</link>
      <guid>https://dev.to/rinku1511/hosting-a-wordpress-website-on-aws-lightsail-with-ssl-4lha</guid>
      <description>&lt;p&gt;In today's "&lt;strong&gt;oh where is my mobile phone&lt;/strong&gt;" age, having an online presence is like having ice-cream in summers. Whether you're a blogger, entrepreneur, or small business owner, creating a website can help you reach a wider audience and establish your brand. Hence, comes in Wordpress, being the easiest and most accessible tool for the matter. Now, development aside, the question comes in about hosting the website. Where to host it so that it remain the safest yet accessible plus easy to manage, plus cheap, plus all-in-one management. There comes AWS in picture.  With the power of &lt;strong&gt;AWS Lightsail&lt;/strong&gt;, launching a WordPress site has never been easier. AWS Lightsail is a simplified cloud service that offers virtual private servers (VPS) with a user-friendly interface and predictable pricing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6iju7ypoh99s3cahmn4l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6iju7ypoh99s3cahmn4l.jpg" alt=" " width="450" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  First thing: Why choose lightsail above other hosting?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplicity:&lt;/strong&gt; Lightsail offers a simplified user interface and easy-to-use tools that make it straightforward to deploy and manage virtual private servers (VPS) and applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Predictable Pricing:&lt;/strong&gt; One of the standout features of Lightsail is its predictable pricing model. Unlike some other cloud services that charge based on usage or complex pricing structures, Lightsail offers flat-rate pricing with transparent billing. Plus there is always AWS pricing calculator for that. Visit &lt;a href="https://aws.amazon.com/lightsail/pricing/?gclid=Cj0KCQjwztOwBhD7ARIsAPDKnkCv3xqGVoSqLI1_JWNOAZDTQBnRQ6UYufRr7fLQtsp3ysWiaxt_SgYaApEiEALw_wcB&amp;amp;trk=507b4414-55b0-4543-aece-488381229e4e&amp;amp;sc_channel=ps&amp;amp;ef_id=Cj0KCQjwztOwBhD7ARIsAPDKnkCv3xqGVoSqLI1_JWNOAZDTQBnRQ6UYufRr7fLQtsp3ysWiaxt_SgYaApEiEALw_wcB:G:s&amp;amp;s_kwcid=AL!4422!3!536451955673!e!!g!!aws%20lightsail%20pricing!11542872454!112556718156" rel="noopener noreferrer"&gt;this Link&lt;/a&gt; to see the pricing. Also, Lightsail offers a free tier for around first 3 months, allowing you to explore the platform without incurring any charges.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability:&lt;/strong&gt; While Lightsail is designed to be simple and easy to use, it still offers scalability for growing websites and applications. Users can easily upgrade their instances to larger sizes or add additional resources such as storage, RAM, or CPU as needed, ensuring that their hosting environment can scale with their business.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with AWS Services:&lt;/strong&gt; Lightsail is part of the larger AWS ecosystem, which means it integrates seamlessly with other AWS services such as Route 53 for DNS management, S3 for storage, and CloudWatch for monitoring. This makes it easy to leverage additional AWS services to enhance the functionality and performance of your website or application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; As a service provided by AWS, Lightsail benefits from the security of the AWS infrastructure. AWS data centers are highly secure and adhere to industry-leading standards for data protection and compliance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reliability:&lt;/strong&gt; Lightsail includes features such as automated backups and snapshots to help users protect their data and recover from any potential disasters.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Overall, AWS Lightsail offers a compelling combination of various metrics making it a top choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lauching Virtual Server with Wordpress(Instance)
&lt;/h2&gt;

&lt;p&gt;Go to the lightsail dashboard and from the left hand side navigation, choose "Instances". Click on create instance. This will open a screen with various choices. First is to select the region where you wish to launch the instance and the availability zone as well. Choose the region nearest to your customer base so as to decrease latency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3q4o14zpt3xu1ov0intp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3q4o14zpt3xu1ov0intp.png" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, choose the "WordPress" blueprint, which is a pre-configured image optimized for running WordPress sites. Choose linux/unix as operating system. If you are not comfortable with linux, you can choose windows OS as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjr75ig8gx3gp7j08ykpa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjr75ig8gx3gp7j08ykpa.png" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, for additional security, create a new SSH key-pair. Note: you'll need this to connect to the instance. Before that, there is option to enable automated snapshots. If you enable this, LightSail will take automatic snapshots of your instance everyday. The snapshots for the last 7 days will retain and the older snapshots will be deleted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbyi20uyc60irxfrn6qwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbyi20uyc60irxfrn6qwg.png" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk37qhz1xjwqyu8i3azp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk37qhz1xjwqyu8i3azp.png" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next is to select the size of the instance. Select the instance plan that best suits your needs – the smallest plan should be sufficient for most personal or small business websites.&lt;/p&gt;

&lt;p&gt;Give name to your instance. Add necessary tags as per your requirement. Click on "create instance."&lt;/p&gt;

&lt;p&gt;Now, once the instance is created, open the instance. TO access the Wordpress Admin Panel, click on the "Access WordPress Admin" on the top right corner. You will get the link with the IP on the pop-up. Click on that and you will be redirected to the access page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26s32kxsh4b4r1yzqrov.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26s32kxsh4b4r1yzqrov.png" alt=" " width="800" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The default username of the login is"&lt;strong&gt;user&lt;/strong&gt;". For password, go back to your instance and select "retrieve default password" option. Now, this will give you steps to retrieve the default password. Copy that and you can access the wordpress admin panel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqexyr7wiskn6udu7x3py.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqexyr7wiskn6udu7x3py.png" alt=" " width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The screen for password will look something like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjumiemci421cepsbjhr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjumiemci421cepsbjhr.png" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, you are in officially in business. Now, apply all the knowledge you have of wordpress and build a website like never before. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5lex4eegx7a9d6b635g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5lex4eegx7a9d6b635g.png" alt=" " width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting to DNS
&lt;/h2&gt;

&lt;p&gt;Now, go to the instance. You will see the public IP for you instance. Copy that. Go to your DNS provider and add A record pointing to that IP. Now, anyone going to the URL will see the amazing wordpress website you created. &lt;/p&gt;

&lt;h2&gt;
  
  
  SSL
&lt;/h2&gt;

&lt;p&gt;Now comes the important part. How to add SSL to the website. Don't worry, I got you covered (I mean AWS got you covered).&lt;/p&gt;

&lt;p&gt;For this, open the instance page. Select the connect tab and scroll down till you see "connect using SSH" option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4qblnz1jkf0hheyl14f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4qblnz1jkf0hheyl14f.png" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we will use the bncert tool to request an SSL/TLS certificate from Let's Encrypt. Note that using this toll will make the process simpler but is valid only for the domains and subdomains you mention while creating the SSL certificate. Enter the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo /opt/bitnami/bncert-tool
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this, you may be asked to whether you want to download update. Proceed as per your preference. Next is to insert the domain list that you want the certificate to be valid for. Enter those.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4jadmhh5pozrrionf78.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4jadmhh5pozrrionf78.png" alt=" " width="800" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next options depend on the domains you add. If you are adding www domain, you will be asked a few preferences for redirections. If not, you will be warned you for the absence of www domain. Then the action steps will be displayed and your consent to proceed will be asked.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8y1ku5ahwk73chg4o6k5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8y1ku5ahwk73chg4o6k5.png" alt=" " width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, enter a valid email address to associate the certificate with.&lt;/p&gt;

&lt;p&gt;Once the process is completed, your site will have SSL certificate attached and your site will be redirected for http to hppts. &lt;/p&gt;

&lt;p&gt;Launching a WordPress site on AWS Lightsail is a straightforward process that can be completed in just a few easy steps. By following this guide, you can quickly deploy your site to the cloud and start reaching your audience online. With the power and flexibility of AWS Lightsail, the possibilities for your website are endless. Happy Wordpressing or AWSing or LightSailing ... Whatever you like!&lt;/p&gt;

&lt;p&gt;Credit to: &lt;a href="https://fireflyz.tech/" rel="noopener noreferrer"&gt;Fireflyz Tech&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>wordpress</category>
      <category>hosting</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Hosting web application on AWS- Step to Step guide</title>
      <dc:creator>rinku1511</dc:creator>
      <pubDate>Wed, 13 Mar 2024 14:17:27 +0000</pubDate>
      <link>https://dev.to/rinku1511/hosting-web-application-on-aws-step-to-step-guide-1fc9</link>
      <guid>https://dev.to/rinku1511/hosting-web-application-on-aws-step-to-step-guide-1fc9</guid>
      <description>&lt;p&gt;Welcome to the ultimate guide for hosting your web application on Amazon Web Services (AWS). In this comprehensive walkthrough, we'll cover every aspect of deploying a fully functional web app, from setting up the frontend and backend to managing databases, all while ensuring automation for a seamless development workflow.&lt;/p&gt;

&lt;p&gt;Whether you're a seasoned developer looking to migrate to AWS or a newcomer exploring cloud hosting options, this guide is tailored to assist you in navigating the AWS ecosystem. By the end of this journey, you'll have a robust and scalable architecture that incorporates the best AWS practices, including automation with AWS CodePipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Managing Access with IAM
&lt;/h2&gt;

&lt;p&gt;Before diving into the technical details, let's establish a secure foundation for your web app by managing access permissions effectively. AWS Identity and Access Management (IAM) is the key to ensuring a secure environment. Follow these steps to set up IAM for your project:&lt;/p&gt;

&lt;h3&gt;
  
  
  1.1 Create IAM Groups
&lt;/h3&gt;

&lt;p&gt;IAM groups allow you to organize users with similar access requirements. Let's start by creating groups for different teams:&lt;br&gt;
Billing Team: Team with billing access and permissions&lt;br&gt;
Development Team: Team with full developer permissions&lt;br&gt;
DevOps Team: Team with DevOps permissions &lt;br&gt;
Read-Only Access Team: Team with read-only access &lt;br&gt;
Dev Limited Permission Team: Team with limited developer permissions (for future use)&lt;br&gt;
Associate users with their respective groups. IAM groups simplify permission management, ensuring that users have the appropriate access levels for their roles. This structured approach enhances security and streamlines user administration.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 2: Building a Robust Network Infrastructure with Amazon VPC
&lt;/h2&gt;

&lt;p&gt;Now that you've secured access to your AWS environment using IAM, let's focus on creating a resilient and well-organized network using Amazon Virtual Private Cloud (VPC). Amazon VPC allows you to launch AWS resources in a logically isolated section of the cloud, providing you with full control over your virtual networking environment.&lt;/p&gt;
&lt;h3&gt;
  
  
  2.1 Establish VPCs for Development and Production
&lt;/h3&gt;

&lt;p&gt;Begin by creating dedicated VPCs for your webapp. Here we are making a VPC in us-east-1 region.&lt;/p&gt;
&lt;h3&gt;
  
  
  2.2 Subnetting
&lt;/h3&gt;

&lt;p&gt;Next, divide each VPC into subnets across different Availability Zones for increased fault tolerance. Divide subnets as public, private and RDS subnets each of them for dedicated purpose.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;two Public Subnets for network connectivity.&lt;/li&gt;
&lt;li&gt;two Private subnets for backend.&lt;/li&gt;
&lt;li&gt;two Private subnets for database.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  2.3 Enable Internet Connectivity with Internet Gateways
&lt;/h3&gt;

&lt;p&gt;To allow communication between your VPCs and the internet, create and attach Internet Gateway to the VPC.&lt;/p&gt;
&lt;h3&gt;
  
  
  2.4 Configure Route Tables
&lt;/h3&gt;

&lt;p&gt;Create route tables to define how traffic should flow between subnets. You need to create 3 route tables:&lt;br&gt;
   1.For Public Subnets: Attach the public subnets to this route table.&lt;br&gt;
   2.For backend Subnets: Associate 2 private subnets created for backend to this route table.&lt;br&gt;
   3.For Database Subnets: Associate 2 subnets dedicated to database here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public Subnet Routes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwe8z8qungkyhtuuyq373.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwe8z8qungkyhtuuyq373.png" alt=" " width="800" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Private Subnet Routes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fru3cpn9od5u1ehc3zpfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fru3cpn9od5u1ehc3zpfe.png" alt=" " width="800" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RDS Private Subnets Routes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqc3rn777wu06mynxcel8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqc3rn777wu06mynxcel8.png" alt=" " width="800" height="63"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By strategically associating route tables with corresponding subnets, you establish a well-organized and secure network infrastructure, laying the foundation for a robust and scalable web application hosting environment on AWS.&lt;/p&gt;
&lt;h3&gt;
  
  
  2.5 NAT Gateway
&lt;/h3&gt;

&lt;p&gt;We need NAT gateway for giving our backend access to the internet for downloading and installing necessary packages. Go to the NAT console and create NAT Gateway in public subnet. Add the route to private route table directing all the traffic to NAT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6olvf6wkd8rdd05uw2v7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6olvf6wkd8rdd05uw2v7.png" alt=" " width="800" height="106"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 3 Set Up Repository
&lt;/h2&gt;
&lt;h3&gt;
  
  
  3.1 Creating and Cloning Repository
&lt;/h3&gt;

&lt;p&gt;Create AWS CodeCommit repositories each for frontend and backend and copy the clone URL from the Console. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftj3snpkfxr4cyc23xodp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftj3snpkfxr4cyc23xodp.png" alt=" " width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, clone the repository to your local development environment for both frontend and backend using the following Git command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone Link-of-the-repo-copied
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make code changes, and commit using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "Your descriptive commit message here"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Push the committed changes to the CodeCommit repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Frontend Setup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4.1 Amplify
&lt;/h3&gt;

&lt;p&gt;Deploy your frontend application using AWS Amplify, a managed service. The deployment process is automated through built-in CI/CD pipelines connected to the CodeCommit repository.&lt;/p&gt;

&lt;p&gt;Start with choosing option of hosting a web-app in Amplify console.&lt;br&gt;
Then choose AWS CodeCommit as a source. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06efvbsmvewdho3mw6ky.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06efvbsmvewdho3mw6ky.png" alt=" " width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choose the repository created earlier as a source. and select the branch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltmaxs2iw8h46pcva8vi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltmaxs2iw8h46pcva8vi.png" alt=" " width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Add the environment variables needed in you application. Make sure to add the API of backend once its setup is done. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2fsjyvqec2mp48szz75.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2fsjyvqec2mp48szz75.png" alt=" " width="799" height="69"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you don't have any environment variables to add then keep other settings as they are and select Save and Deploy after checking the configurations once. Now the frontend on our WebApp is ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5 Backend Setup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1 Elastic Beanstalk Setup
&lt;/h3&gt;

&lt;p&gt;AWS Elastic Beanstalk is a fully managed service designed to simplify the deployment and management of applications in the cloud. Offering built-in support for various programming languages, databases, and frameworks, Elastic Beanstalk streamlines web application deployment while providing robust capabilities for load balancing, autoscaling, and launching EC2 instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beanstalk Application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An Elastic Beanstalk application acts as a container for deploying and managing related web application resources. It serves as a logical grouping for components such as application versions, environments, and configurations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beanstalk Environment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An Elastic Beanstalk environment represents the runtime configuration for your web application. This includes resources like Amazon EC2 instances, databases, load balancers, and auto-scaling settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components Managed by Beanstalk&lt;/strong&gt;&lt;br&gt;
Elastic Beanstalk takes care of several essential components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Load Balancer&lt;/li&gt;
&lt;li&gt;Autoscaling Groups&lt;/li&gt;
&lt;li&gt;EC2 Instances&lt;/li&gt;
&lt;li&gt;Security Groups&lt;/li&gt;
&lt;li&gt;Service Roles (IAM)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Logging in Beanstalk&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Logs from the EC2 instances can be collected using the Beanstalk log feature, providing comprehensive details from instance launching to the present date.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.2 Creating Application
&lt;/h3&gt;

&lt;p&gt;Click on "Create Application" to start the process. Enter a unique and descriptive Application name. Optionally, provide a "Description" for your application. Click "Create" to proceed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74e3pcbbnrifng29sg99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74e3pcbbnrifng29sg99.png" alt=" " width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After creating the application, click on "Create Environment" within the application dashboard. Select "Web server environment" as the environment tier. For "Environment name," use a naming convention as per your requirement. Choose a "Platform" that aligns with your backend technology. In this case, we are using Node.js 18 running on 64bit Amazon Linux 2023. Under the "Application code," choose the option of sample code as of now. We will get back to this with AWS CodePipeline. &lt;/p&gt;

&lt;p&gt;Choose the appropriate option for Presents as per your need. Note that the Single instance presets are primarily recommended for development use cases and will save costs. The High availability presets are recommended for production environments. &lt;/p&gt;

&lt;p&gt;Next is to configure service access. Choose the default service role. If you don't already have key-pair, go to EC2 console and create one. Use that here. Make an EC2 instance profile with "AWSElasticBeanstalkWebTier" permission.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e1m01o213tl48fbuwlu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e1m01o213tl48fbuwlu.png" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5.3 Network Setup in Beanstalk
&lt;/h3&gt;

&lt;p&gt;Choose the VPC and the subnets that you have created for the backend. Similarly, choose the subnets for database.  Also, click on enable database option to allow beanstalk to manage the database as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4m4aykdfy0d15yia2rs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4m4aykdfy0d15yia2rs.png" alt=" " width="800" height="932"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5.4 Database Creation
&lt;/h3&gt;

&lt;p&gt;Choose the appropriate database settings for your application. Here we are using mysql database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ve3osvq3rk1i4564ped.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ve3osvq3rk1i4564ped.png" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5.5 Backend Traffic and Scaling
&lt;/h3&gt;

&lt;p&gt;This step essentially revolves around the configurations of backend instance and the way you want it to scale. Select appropriate configurations pertaining to instance for your application. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxa9u3ukvb9us2t1zueh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxa9u3ukvb9us2t1zueh.png" alt=" " width="800" height="578"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we are going to enable autoscaling and load balancing. Change the environment type to "load balanced" and choose the minimum and maximum capacity- the minimum number of backend instances and the maximum number that you want to scale.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wkpj4tdze2vwyb0eyla.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wkpj4tdze2vwyb0eyla.png" alt=" " width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are various things in this step that can be configured ranging from scaling policy to AMI and instance type. Here we will keep all those things default. You can alter then as per your need.&lt;/p&gt;

&lt;p&gt;Moving to load balancer settings, by default the subnets for the backend EC2 will be selected. Make sure to change those to the public subnets we created. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisl107oaftv394n47g41.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisl107oaftv394n47g41.png" alt=" " width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep the other options as they are for load balancer. Note that the security group for load balancer will be created by beanstalk itself. We don't need to worry about it. Also, you can add listeners and listeners rules as per your application need in the beanstalk console itself. We will avoid that here. &lt;/p&gt;

&lt;h3&gt;
  
  
  5.6 Logging and Monitoring
&lt;/h3&gt;

&lt;p&gt;Here we are going to keep all the options as default. You can change them as per your monitoring and updates needs. There is option to put maintenance window as well. All the environment variables needed in the application can be added here. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6ruyw2n4zcut0tnvlhc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6ruyw2n4zcut0tnvlhc.png" alt=" " width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Review the entire environment configurations and then submit. It may take a few minutes for the environment to be up. Check that the status of the environment is OK.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6geax5q70rb8kbppgqs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6geax5q70rb8kbppgqs.png" alt=" " width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6 Pipeline Configuration
&lt;/h2&gt;

&lt;p&gt;This is the simplest step. Go to AWS CodePipeline and select the create button. Give appropriate name to your pipeline and to the service role. Keep all the other settings as default in first step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzk03qnipw25x0opmxxhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzk03qnipw25x0opmxxhp.png" alt=" " width="800" height="817"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choose source as AWS CodeCommit as we want to use the backend repository we created earlier. Choose the repository and the branch. Keep other options default.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmh5gtgs34pbdhdcssiw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmh5gtgs34pbdhdcssiw.png" alt=" " width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next step is build. Choose AWS CodeBuild for the build stage of pipeline. Click on create project if you don't have project created. It will open a CodeBuild console in new window. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkfakmc27kw2dmcob418.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkfakmc27kw2dmcob418.png" alt=" " width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep the build project configurations as default. Note that CodeBuild uses an instance in background for creating build. Means you can change the underlying image as well.&lt;/p&gt;

&lt;p&gt;Once the build project is created go back to CodePipeline and choose the project you created. &lt;/p&gt;

&lt;p&gt;Move to the next stage which is deploy. Choose AWS Elastic Beanstalk as the Deploy Provider. Select the application name that we created and environment to which you want to deploy the code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3swfyjnn0mnk9sv1a0bw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3swfyjnn0mnk9sv1a0bw.png" alt=" " width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Review the pipeline configurations and create the pipeline. This will trigger the pipeline and beanstalk build as well. And the code will go to your beanstalk backend instances. &lt;/p&gt;

&lt;p&gt;Congratulations! You have your web-app up and running. Please comment down for any doubts and get them solved!&lt;/p&gt;

&lt;p&gt;Ps: Source: &lt;a href="https://fireflyz.tech/" rel="noopener noreferrer"&gt;Fireflyz Tech&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>tutorial</category>
      <category>devops</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Terraform for IoT: Powering Connected Devices in the Cloud</title>
      <dc:creator>rinku1511</dc:creator>
      <pubDate>Fri, 28 Jul 2023 14:14:02 +0000</pubDate>
      <link>https://dev.to/rinku1511/terraform-for-iot-powering-connected-devices-in-the-cloud-404e</link>
      <guid>https://dev.to/rinku1511/terraform-for-iot-powering-connected-devices-in-the-cloud-404e</guid>
      <description>&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of IoT in the Cloud
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;The way we interact with devices and data has been completely transformed by the Internet of Things (IoT). When it comes to managing huge networks of connected devices, cloud platforms are crucial since they offer the infrastructure and services required. To create and maintain scalable, secure, and effective IoT ecosystems, this blog discusses how Terraform, an Infrastructure as Code (IaC) tool, works in conjunction with cloud platforms. &lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Building and automating IoT Infrastructure with Terraform
&lt;/h2&gt;

&lt;p&gt;** &lt;/p&gt;

&lt;p&gt;Terraform simplifies the process of building and managing cloud resources for IoT deployments. With its declarative syntax and provider ecosystem, terraform empowers developers and operations teams to provision edge devices, gateways, and cloud resources with ease. In this section, we'll walk through the steps of creating an IoT infrastructure using Terraform by considering an example. In this example, we'll see how to use Terraform to build a simple IoT infrastructure with AWS IoT Core.  &lt;/p&gt;

&lt;p&gt;Let's create an AWS IoT thing registry to manage our IoT devices:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_iot_thing_type" "device_type" {
  name = "IoT_Device_Type"
}

resource "aws_iot_thing_group" "device_group" {
  name = "IoT_Device_Group"
  thing_group_properties {
    thing_group_description = "Group for IoT Devices"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let's create two IoT devices and associate them with the IoT thing registry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_iot_thing" "device_1" {
  name             = "IoT_Device_1"
  thing_type_name  = aws_iot_thing_type.device_type.name
  thing_group_name = aws_iot_thing_group.device_group.name
}

resource "aws_iot_thing" "device_2" {
  name             = "IoT_Device_2"
  thing_type_name  = aws_iot_thing_type.device_type.name
  thing_group_name = aws_iot_thing_group.device_group.name
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let's configure AWS IoT rules to process data from the IoT devices and store it in Amazon S3:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_iot_topic_rule" "iot_rule" {
  name          = "IoT_Data_Rule"
  sql           = "SELECT * FROM 'iot/data'"
  description   = "Rule to process IoT data"
  rule_disabled = false
  actions {
    lambda {
      function_arn = "" #url of the lambda function
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To enable communication between the IoT devices and AWS IoT Core, we need to set up an IoT policy and attach it to the devices:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_iot_policy" "iot_device_policy" {
  name        = "IoT_Device_Policy"
  policy      = data.aws_iam_policy_document.device_policy.json
  description = "Policy for IoT devices"
}

data "aws_iam_policy_document" "device_policy" {
  statement {
    actions   = ["iot:*"]
    resources = ["*"]
  }
}

resource "aws_iot_policy_attachment" "device_policy_attachment_1" {
  policy_name = aws_iot_policy.iot_device_policy.name
  target      = aws_iot_thing.device_1.name
}

resource "aws_iot_policy_attachment" "device_policy_attachment_2" {
  policy_name = aws_iot_policy.iot_device_policy.name
  target      = aws_iot_thing.device_2.name
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The IoT devices, item registry, rules, and policies will all be created by Terraform on AWS. We can now handle and analyze data from our IoT devices using AWS IoT Core. &lt;/p&gt;

&lt;p&gt;Please take note that this sample just shows the bare minimum of an IoT infrastructure architecture. You can expand the configuration for data processing and storage, depending on your IoT use case. &lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Ensuring Security and Compliance in IoT
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;In an IoT deployment, security is crucial. Terraform allows us to define security policies, access controls, and encryption settings in our infrastructure code. For instance, we can create AWS IoT policies to restrict device actions, enforce TLS encryption, and manage access using IAM roles. &lt;/p&gt;

&lt;p&gt;To ensure compliance, we can integrate Terraform with AWS Config, enabling continuous monitoring of IoT infrastructure against industry standards and regulations. By using Terraform, we maintain a secure and compliant IoT deployment, reducing risks and adhering to best practices. Also, integrating Terraform with security auditing tools and services enables continuous monitoring of infrastructure configurations for compliance with security best practices and regulatory requirements. &lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoring and Managing IoT with Terraform
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;Terraform integrates seamlessly with cloud providers' monitoring services, such as AWS CloudWatch or Azure Monitor, enabling us to monitor IoT resources in the cloud along with the alerting system that can be set up based on the conclusions from the monitoring services. Also, deploying monitoring agents on IoT edge devices, orchestrated by Terraform, allows us to collect data locally and analyze it without sending everything to the cloud. &lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Case
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart Building Automation&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F30ay6hdjlaij0ru7odi2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F30ay6hdjlaij0ru7odi2.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A commercial real estate company deployed IoT devices such as smart thermostats, occupancy sensors, and lighting controls to optimize energy consumption and enhance occupant comfort. &lt;/p&gt;

&lt;p&gt;To manage the rapidly expanding IoT infrastructure across multiple buildings, they turned to Terraform. They created Terraform modules for each type of IoT device and defined the desired configurations as code. This included specifying temperature setpoints, occupancy thresholds, and lighting schedules. With Terraform, the company automated the provisioning and configuration of IoT devices at scale.  &lt;/p&gt;

&lt;p&gt;Additionally, terraforms state management allowed the company to track changes and maintain consistency across their IoT fleet.  &lt;/p&gt;

&lt;p&gt;Moreover, the company integrated Terraform with their existing monitoring and alerting systems. This enabled them to receive real-time insights on energy consumption patterns, occupancy trends, and potential maintenance issues.  &lt;/p&gt;

&lt;p&gt;By leveraging Terraform for their IoT initiative, the commercial real estate company successfully transformed their buildings into smart, sustainable spaces.  &lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

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

&lt;p&gt;** &lt;/p&gt;

&lt;p&gt;By combining the power of Terraform with cloud platforms, IoT developers and administrators can create flexible, secure, and automated environments to drive innovation and make the most of the Internet of Things. &lt;/p&gt;

</description>
      <category>awsiot</category>
      <category>terraform</category>
      <category>aws</category>
      <category>iot</category>
    </item>
  </channel>
</rss>
