<?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: SteveJin</title>
    <description>The latest articles on DEV Community by SteveJin (@stevewebservice).</description>
    <link>https://dev.to/stevewebservice</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%2F1284696%2Ff3295e2d-a7a3-4ef7-81ba-f560be43ef04.jpg</url>
      <title>DEV Community: SteveJin</title>
      <link>https://dev.to/stevewebservice</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stevewebservice"/>
    <language>en</language>
    <item>
      <title>SWS Console: Creating an SPA project and connecting it to S3 web hosting, CloudFront, and Route53 domain in 5 minutes.</title>
      <dc:creator>SteveJin</dc:creator>
      <pubDate>Fri, 01 Mar 2024 12:40:14 +0000</pubDate>
      <link>https://dev.to/stevewebservice/sws-console-creating-an-spa-project-and-connecting-it-to-s3-web-hosting-cloudfront-and-route53-domain-in-5-minutes-4dib</link>
      <guid>https://dev.to/stevewebservice/sws-console-creating-an-spa-project-and-connecting-it-to-s3-web-hosting-cloudfront-and-route53-domain-in-5-minutes-4dib</guid>
      <description>&lt;p&gt;To deploy an SPA (React.js, Vue.js, Angular.js, etc.) project on AWS Cloud, there are several options available.&lt;/p&gt;

&lt;p&gt;The first option is to set up an EC2 instance with Nginx or a local Node server to serve the SPA project's build artifacts such as index.html and bundle.js.&lt;/p&gt;

&lt;p&gt;→ To implement the first method, you need to first create an EC2 instance and set up either a Node environment or upload the SPA build files to EC2. Then, configure Nginx or Apache server to serve the index.html of the SPA build artifacts. Afterward, you would need to connect it to ALB or Elastic IP for hosting.&lt;/p&gt;

&lt;p&gt;The second option is to Dockerize the SPA project, upload it to AWS ECR, set it up on AWS ECS, and then host it through ALB.&lt;/p&gt;

&lt;p&gt;→ For the second method, you need to learn about Dockerizing the SPA project, setting up scripts to upload to AWS ECR, running Docker images from ECR on ECS, creating ALB, and configuring the target group to point to ECS.&lt;/p&gt;

&lt;p&gt;The third option is to upload the SPA build artifacts to an S3 bucket, enable static website hosting, and host it through CloudFront.&lt;/p&gt;

&lt;p&gt;→ For the third method, you need to upload the SPA build artifacts (including index.html, bundle.js, and other files) to S3, configure static website hosting on the S3 bucket, and then connect the S3 bucket endpoint to CloudFront.&lt;/p&gt;

&lt;p&gt;Why choose the third option? The reasons are as follows:&lt;/p&gt;

&lt;p&gt;The first method incurs costs as EC2 instances are billed for the duration they are running, making it expensive to maintain over a month. Additionally, EC2 instances require direct management.&lt;/p&gt;

&lt;p&gt;The second method also incurs costs as ECS instances are billed for the duration they are running, making it expensive to maintain over a month.&lt;/p&gt;

&lt;p&gt;On the other hand, the third method incurs minimal costs as S3 charges per GB stored, and CloudFront costs are generally low unless there is very high traffic.&lt;/p&gt;

&lt;p&gt;Now, if you've chosen the third method, let's first open the project for deployment, which is the main page of the Steve Web Service (SWS) project, in an editor.&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%2Fn2jbgm1yv13i2egfr5z3.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%2Fn2jbgm1yv13i2egfr5z3.png" alt="Image description" width="800" height="632"&gt;&lt;/a&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%2Fr7epram64yxqi8lt8vuv.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%2Fr7epram64yxqi8lt8vuv.png" alt="Image description" width="562" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project mentioned above is an SPA project implemented in React.js. When you execute the build script in the project (in the example provided, npm run build), it generates a build folder. You then compress this build folder into a zip file.&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%2Fsmp1mwe690euyz2jalj8.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%2Fsmp1mwe690euyz2jalj8.png" alt="Image description" width="800" height="551"&gt;&lt;/a&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%2Fpem1b1n39ytdsruarwsv.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%2Fpem1b1n39ytdsruarwsv.png" alt="Image description" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, go to the SWS Console, enter AWS Frontend DMS, input the Project Name, upload the compressed zip file of the build folder, and then press Create Project. In just 5 minutes, everything from S3 static web hosting to CloudFront will be set up at once.&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%2F0kl9k382iikl5e7iny90.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%2F0kl9k382iikl5e7iny90.png" alt="Image description" width="800" height="803"&gt;&lt;/a&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%2F6zbscxtlos3ghnv3g64r.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%2F6zbscxtlos3ghnv3g64r.png" alt="Image description" width="800" height="821"&gt;&lt;/a&gt;&lt;br&gt;
Upon entering the detailed view of the created project, you'll notice the CloudFront Domain. Clicking on it and navigating will confirm that the page displays correctly. Isn't it remarkably straightforward?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Go to the Steve Web Service Page&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/frontend-dms/create-frontend-dms-project/"&gt;Go to see how to create a project in Steve Web Service AWS Frontend DMS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that S3 and CloudFront are set up, the last task for us is domain linking.&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%2F6qioxsw8tpi0lvulkb27.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%2F6qioxsw8tpi0lvulkb27.png" alt="Image description" width="672" height="210"&gt;&lt;/a&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%2Fqiypua1bnv5uxbov9fk0.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%2Fqiypua1bnv5uxbov9fk0.png" alt="Image description" width="374" height="316"&gt;&lt;/a&gt;&lt;br&gt;
First, click on "Go to purchase a domain in Route53" as shown in the image below, then navigate to the page. Next, input the desired domain name in the "Register domain" section. The domain should be entered in the format of abc.com .&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%2F1h8t39sq50y92l5jt54r.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%2F1h8t39sq50y92l5jt54r.png" alt="Image description" width="800" height="428"&gt;&lt;/a&gt;&lt;br&gt;
Next, select the desired domain name to purchase, as shown in the image above, then click "Proceed to checkout." Afterward, click "Next," input your contact information, click "Next" again, and finally, press "Submit" to complete the domain purchase in Route 53.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Go to the Steve Web Service Page&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/how-to-purchase-a-domain-route-53/"&gt;Go to see how to purchase a domain in AWS Route53&lt;/a&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%2Fpybk4ma3ej3nqxtw39sx.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%2Fpybk4ma3ej3nqxtw39sx.png" alt="Image description" width="800" height="309"&gt;&lt;/a&gt;&lt;br&gt;
Next, navigate to Route 53 → Domains → Requests as shown in the image above, and wait until the purchased domain's status becomes "Successful."&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%2Fkk5qwe2o4t1tfohzf6x5.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%2Fkk5qwe2o4t1tfohzf6x5.png" alt="Image description" width="394" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, go back to the detailed view of the created project in the Sws Console, select the purchased Route53 Domain, and then click the "Create SSL Certificate" button to obtain an SSL certificate.&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%2Fkwnts420z3z3or9cwa9y.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%2Fkwnts420z3z3or9cwa9y.png" alt="Image description" width="634" height="670"&gt;&lt;/a&gt;&lt;br&gt;
After refreshing the page and confirming that the SSL/TLS Certificate Status has changed to ISSUED, enter the subdomain name, and click the "Connect Domain" button to complete the domain linking. The above image is an example of connecting to &lt;a href="http://web.swstest.net"&gt;http://web.swstest.net&lt;/a&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%2Fjhwh7pr32v2xk6e11oxb.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%2Fjhwh7pr32v2xk6e11oxb.png" alt="Image description" width="800" height="778"&gt;&lt;/a&gt;&lt;br&gt;
You can verify that it successfully connects by accessing &lt;a href="https://web.swstest.net"&gt;https://web.swstest.net&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this way, without any prior knowledge of AWS Cloud, we have deployed an SPA project through the SWS Console.&lt;/p&gt;

&lt;p&gt;SWS continues to develop tools that assist users in building cloud architectures without the need for extensive AWS Cloud learning. This enables developers to focus more on their business, and further, it provides value by allowing even small teams of developers to leverage a maximum of AWS resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Go to the Steve Web Service Page&lt;/a&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%2Ft5jsf3comiiqy3apkpd2.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%2Ft5jsf3comiiqy3apkpd2.png" alt="Image description" width="205" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SWS Console: Outsourcing development directly with SWS build tool (AWS build).</title>
      <dc:creator>SteveJin</dc:creator>
      <pubDate>Sun, 25 Feb 2024 13:51:22 +0000</pubDate>
      <link>https://dev.to/stevewebservice/using-the-sws-consoles-aws-architecture-builder-tool-develop-an-admin-service-through-outsourced-development-in-a-short-time-2ad5</link>
      <guid>https://dev.to/stevewebservice/using-the-sws-consoles-aws-architecture-builder-tool-develop-an-admin-service-through-outsourced-development-in-a-short-time-2ad5</guid>
      <description>&lt;p&gt;I wanted to see how much productivity could be increased by creating the &lt;a href="https://www.stevewebservice.com/"&gt;SteveWebService Console&lt;/a&gt; and outsourcing development using its features.&lt;/p&gt;

&lt;p&gt;So, I joined a well-known outsourcing platform in Korea and created a product where I requested the development of a simple admin interface.&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%2F94b8zzwl55qnz0yrpvx4.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%2F94b8zzwl55qnz0yrpvx4.png" alt="Image description" width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We wanted to receive projects that could be developed quickly with minimal time investment.&lt;/p&gt;

&lt;p&gt;So, we decided to proceed with a project that required minimal functionality, such as account creation, login, permission management, Excel download, CRUD, etc.&lt;/p&gt;

&lt;p&gt;Thus, we received our first project, which was a simple product and employee performance management ERP project, with the following details:&lt;/p&gt;

&lt;p&gt;The account types included master administrator, intermediate administrator, and regular accounts. Regular accounts could register the number of products and input status (e.g., in progress, completed, terminated). For confidentiality reasons, I'll refer to them as "products."&lt;/p&gt;

&lt;p&gt;Additionally, there were screens for master and intermediate administrators to view logs of product registrations and to check daily and previous day performance statistics.&lt;/p&gt;

&lt;p&gt;We defined the specifications for development and decided to choose the most cost-effective option for the customer. Here's what we decided:&lt;/p&gt;

&lt;p&gt;Frontend development would be done using React.js, with business logic controlled within React.js applications.&lt;/p&gt;

&lt;p&gt;We would create AWS Lambda CRUD APIs &amp;amp; mysql RDS instances on AWS Cloud, avoiding server setup costs and only paying for RDS usage.&lt;/p&gt;

&lt;p&gt;The React project would be deployed using S3 static web hosting + CloudFront, avoiding instance maintenance costs.&lt;/p&gt;

&lt;p&gt;After deciding on these steps, we first provided the customer with documentation on how to sign up for AWS Cloud and register their card. Once they signed up, we requested their account ID and password, &lt;a href="https://docs.stevewebservice.com/aws/set-up-aws-turn-key-console/iam-account-creation-permission-setting"&gt;created an IAM user for them, and set permissions for using the SteveWebService Console&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Next, we had to set up the VPC using the SteveWebService Console, which was remarkably straightforward.&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%2Fcfwqpt9pbi5yvl8ukzsp.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%2Fcfwqpt9pbi5yvl8ukzsp.png" alt="Image description" width="800" height="402"&gt;&lt;/a&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%2Fj67c078rg1ttlciqr5i7.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%2Fj67c078rg1ttlciqr5i7.png" alt="Image description" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By simply creating a Sws Project (VPC &amp;amp; API GW Turn Key) on the SteveWebService Console, everything from VPC, subnet, security group to Api Gateway is set up in just 10 minutes.&lt;/p&gt;

&lt;p&gt;Visit the Steve Web Service Page to check&lt;/p&gt;

&lt;p&gt;Go to see Steve Web Service AWS VPC Turn Key functionality&lt;/p&gt;

&lt;p&gt;Next, setting up the RDS DB instance didn't take much time either.&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%2F1cwesgvg10sswawrf35h.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%2F1cwesgvg10sswawrf35h.png" alt="Image description" width="800" height="819"&gt;&lt;/a&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%2Fii53l4ismfv5zw4uz8kg.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%2Fii53l4ismfv5zw4uz8kg.png" alt="Image description" width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By utilizing the DB &amp;amp; Bastion EC2 Turn Key on the SteveWebService Console, you can configure Private RDS &amp;amp; Bastion EC2 in just 10 minutes.&lt;/p&gt;

&lt;p&gt;Isn't it incredibly easy?&lt;/p&gt;

&lt;p&gt;Visit the Steve Web Service Page to check&lt;/p&gt;

&lt;p&gt;Go to see Steve Web Service AWS DB &amp;amp; Bastion EC2 Turn Key functionality&lt;/p&gt;

&lt;p&gt;Next, after creating the RDS on the SWS Console, I accessed the RDS Detail screen, downloaded the PEM Key, and followed the commands provided in the Access Guide. By connecting to the Bastion EC2 via terminal and accessing the RDS DB, I then created tables according to the designed DB table structure.&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%2F8p241d9je8xakyd8xdhz.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%2F8p241d9je8xakyd8xdhz.png" alt="Image description" width="800" height="873"&gt;&lt;/a&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%2F27yvlhuru078gelod4ez.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%2F27yvlhuru078gelod4ez.png" alt="Image description" width="800" height="516"&gt;&lt;/a&gt;&lt;br&gt;
After completing the above steps, the final stage was to create CRUD APIs for each table.&lt;/p&gt;

&lt;p&gt;This, too, was remarkably straightforward, as I simply used the AWS Lambda CRUD API Turn Key feature to generate CRUD APIs for each table, as shown below.&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%2Flmknfkb3s2orli76z4c1.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%2Flmknfkb3s2orli76z4c1.png" alt="Image description" width="800" height="1037"&gt;&lt;/a&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%2Ft2irp229hswpfjr07y7v.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%2Ft2irp229hswpfjr07y7v.png" alt="Image description" width="800" height="973"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isn't it incredibly easy? We managed to shorten the process of creating CRUD APIs, which usually involves building an API server, implementing CRUD operations, deploying it to instances, all within 10 minutes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service Page to check&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/lambda-crud-api-turn-key/"&gt;Explore Steve Web Service AWS Lambda CRUD Turn Key functionality&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After generating CRUD APIs in this manner, I navigated to the SWS Project Detail to verify the endpoints and request paths. Then, as shown below, I set up functions in the React code to use them immediately.&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%2Fr7suhlr4lnz1iruk6urc.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%2Fr7suhlr4lnz1iruk6urc.png" alt="Image description" width="800" height="822"&gt;&lt;/a&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%2F2dhyyz04j94u8we46iy5.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%2F2dhyyz04j94u8we46iy5.png" alt="Image description" width="800" height="853"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After setting up like this, we proceeded to develop the business logic in the React app according to the customer's requirements.&lt;/p&gt;

&lt;p&gt;While creating the admin web, we encountered additional requirements from the customer. They needed statistical data extracted from their data to be displayed on the screen.&lt;/p&gt;

&lt;p&gt;We were able to address this by providing the data via the API generated with Lambda CRUD Turn Key, enabling a simple solution.&lt;/p&gt;

&lt;p&gt;All we needed to do was to create the additional logic to include in the query, as shown below.&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%2Fgn23syrsqmw7xqaqm3cq.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%2Fgn23syrsqmw7xqaqm3cq.png" alt="Image description" width="800" height="35"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Having completed the application development, only the deployment phase remained.&lt;/p&gt;

&lt;p&gt;At this stage, we decided to deploy the React app using S3 static web hosting and CloudFront. To set this up traditionally, we would need to configure these two services separately and upload the build files. However, I expedited the process by deploying it in no time using the AWS Frontend DMS feature in the SteveWebService Console.&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%2F24b9m60q00cbvh55u4sd.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%2F24b9m60q00cbvh55u4sd.png" alt="Image description" width="504" height="376"&gt;&lt;/a&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%2Folg0lb1cjsw6v70d9shr.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%2Folg0lb1cjsw6v70d9shr.png" alt="Image description" width="800" height="356"&gt;&lt;/a&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%2Ftj0fwzwantn21uc407q4.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%2Ftj0fwzwantn21uc407q4.png" alt="Image description" width="212" height="244"&gt;&lt;/a&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%2Fhwx6bazevvyakjxrkhbq.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%2Fhwx6bazevvyakjxrkhbq.png" alt="Image description" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The deployment process was remarkably straightforward. Simply compressing the folder containing bundle.js and index.html into a zip file, uploading it in the Frontend DMS, and creating it completes the deployment.&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%2Fiuw8rw7y5ka1bvox5dvs.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%2Fiuw8rw7y5ka1bvox5dvs.png" alt="Image description" width="800" height="614"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if providing a Cloudfront Domain or a custom domain is needed, it's as simple as purchasing a domain from Route53, generating an SSL certificate, and connecting the domain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service Page to check&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/frontend-dms/"&gt;Explore Steve Web Service AWS Frontend DMS functionality&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Successfully delivering our first outsourced development project was a significant and meaningful experience for us.&lt;/p&gt;

&lt;p&gt;Through configuring VPCs, setting up RDS, building APIs, and deploying resources, we learned that SteveWebService helps streamline these activities, typically requiring extensive learning and setup time in AWS Cloud, within 40-50 minutes, without the need for AWS Cloud expertise.&lt;/p&gt;

&lt;p&gt;We will continue to develop tools that assist users in building cloud architectures without the need for extensive AWS Cloud knowledge, enabling developers to focus more on their business. Furthermore, we aim to provide value by allowing even small teams of developers to make the most of AWS resources.&lt;/p&gt;

&lt;p&gt;The next article will delve into the history of solving different problems. End.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service Page to check&lt;/a&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%2Fc35a0dc1t7ry1ylg7152.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%2Fc35a0dc1t7ry1ylg7152.png" alt="Image description" width="205" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SWS Console: Creating AWS Lambda CRUD APIs for DynamoDB and RDS DB tables.</title>
      <dc:creator>SteveJin</dc:creator>
      <pubDate>Sat, 24 Feb 2024 14:06:17 +0000</pubDate>
      <link>https://dev.to/stevewebservice/created-a-tool-that-creates-aws-lambda-crud-apis-for-dynamodb-and-rds-db-tables-on-aws-cloudstevewebservice-55g9</link>
      <guid>https://dev.to/stevewebservice/created-a-tool-that-creates-aws-lambda-crud-apis-for-dynamodb-and-rds-db-tables-on-aws-cloudstevewebservice-55g9</guid>
      <description>&lt;p&gt;My first developer career started as a Node.js full-stack developer. However, diving into full-stack development as a first career path often resulted in shallow learning, making it challenging to grasp all aspects thoroughly in practice.&lt;/p&gt;

&lt;p&gt;Especially early on, I primarily focused on studying React and JavaScript, so before starting my developer career, I had mostly focused on frontend development.&lt;/p&gt;

&lt;p&gt;Consequently, understanding API servers and databases was even more challenging for me, and it took a long time to study and comprehend them.&lt;/p&gt;

&lt;p&gt;I believed that the above process wasn't unique to me alone. Therefore, while creating the SteveWebService console service, I aimed to provide features that would make it easier for developers facing similar challenges to build and handle APIs and databases. That's where the Lambda CRUD API Turn Key feature comes in. The idea is illustrated in the image below.&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%2Fqbs8fxhuuabhcxaq2204.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%2Fqbs8fxhuuabhcxaq2204.png" alt="Image description" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Through the Lambda CRUD API Turn Key feature on SteveWebService, users can select an SWS Project, choose either DynamoDB or RDS instance name, input the table or collection name, and generate CRUD APIs for the specified table or collection in AWS Lambda. These APIs are then connected to the API Gateway of the selected SWS Project, enabling immediate usage of CRUD APIs.&lt;/p&gt;

&lt;p&gt;The reason for directly connecting Lambda Functions to API Gateway is that when creating an SWS Project (VPC Turn Key), the API Gateway is automatically generated.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/sws-project/"&gt;Explore Steve Web Service AWS VPC Turn Key functionality&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We implemented the above idea and designed the input process as follows.&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%2F2x12ibudlwygj2bnia06.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%2F2x12ibudlwygj2bnia06.png" alt="Image description" width="800" height="964"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isn't it incredibly easy? By creating it as described above, CRUD APIs for the selected database table are generated instantly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/lambda-crud-api-turn-key/"&gt;Explore Steve Web Service Lambda CRUD API Turn Key functionality&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The benefits of being able to create CRUD APIs are as follows:&lt;/p&gt;

&lt;p&gt;Elimination of the need for a dedicated CRUD API server, resulting in reduced server instance costs as AWS Lambda operates on a per-request pricing model.&lt;/p&gt;

&lt;p&gt;Saving time by eliminating the need to develop a CRUD API server.&lt;/p&gt;

&lt;p&gt;When developing simple microservices, placing business logic in the frontend removes the need for separate backend development, enabling rapid prototyping.&lt;/p&gt;

&lt;p&gt;Now, after creating CRUD APIs using Lambda CRUD API Turn Key, how can you determine the endpoint and usage specifications?&lt;/p&gt;

&lt;p&gt;By accessing the Detail screen of the SWS Project mentioned earlier, you'll find the API request endpoint and example code provided as shown in the image below.&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%2Fnsgz70n4d2t0w1kt2xip.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%2Fnsgz70n4d2t0w1kt2xip.png" alt="Image description" width="800" height="1034"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Assuming that the image depicts an example scenario where a Lambda CRUD API was generated targeting a table named "test".&lt;/p&gt;

&lt;p&gt;In the "Crud RDS Request Code" image:&lt;/p&gt;

&lt;p&gt;The first select box represents selecting the method (e.g., GET, POST, PUT, DELETE).&lt;/p&gt;

&lt;p&gt;The second select box allows choosing the technology stack to provide the request example code.&lt;/p&gt;

&lt;p&gt;For the Route Path indicated by the second arrow, you should insert the path corresponding to "1번" (the first part) and preceding it is the API Gateway path.&lt;/p&gt;

&lt;p&gt;With this, users can create APIs using the SteveWebService tool without the need to learn about AWS Cloud's API Gateway, Lambda, or CRUD API design, saving on server setup and operational costs, development time, and more! Isn't it amazing?&lt;/p&gt;

&lt;p&gt;Continuing in this vein, we will keep developing tools that assist users in building cloud architectures without the need for extensive AWS Cloud knowledge, enabling developers to focus more on their business. Furthermore, we aim to provide value by allowing even small teams of developers to make the most of AWS resources.&lt;/p&gt;

&lt;p&gt;The next article will delve into the history of solving different problems. End.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service homepage&lt;/a&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%2Fnijxw9i5m2f3qgfocsk0.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%2Fnijxw9i5m2f3qgfocsk0.png" alt="Image description" width="205" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SWS Console: Creating Private RDS instances and Bastion EC2 resources.</title>
      <dc:creator>SteveJin</dc:creator>
      <pubDate>Fri, 23 Feb 2024 14:45:20 +0000</pubDate>
      <link>https://dev.to/stevewebservice/creating-a-tool-that-makes-it-easy-to-create-private-rds-and-bastion-ec2-on-aws-cloud-without-the-need-for-learningsws-4a9h</link>
      <guid>https://dev.to/stevewebservice/creating-a-tool-that-makes-it-easy-to-create-private-rds-and-bastion-ec2-on-aws-cloud-without-the-need-for-learningsws-4a9h</guid>
      <description>&lt;p&gt;After creating the &lt;a href="https://docs.stevewebservice.com/aws/feature-guide/ec2-dms/"&gt;AWS EC2 DMS service&lt;/a&gt; on the SteveWebService Console, we pondered another issue. Typically, to launch a service, one needs to configure client web, API servers, and a database.&lt;/p&gt;

&lt;p&gt;Considering this flow, we naturally thought that configuring RDS instances is necessary in AWS Cloud.&lt;/p&gt;

&lt;p&gt;So, we decided to create the service following the flow depicted in the image below, and named it DB &amp;amp; Bastion EC2 Turn Key.&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%2F2ggrqgqe1oe0q5m87zc0.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%2F2ggrqgqe1oe0q5m87zc0.png" alt="Image description" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First, when creating an RDS with DB &amp;amp; Bastion EC2 Turn Key, the creation begins with setting up the Bastion EC2. If a Bastion EC2 already exists within the VPC (SWS Project), it won't be created separately.&lt;/p&gt;

&lt;p&gt;Additionally, the RDS instance is created privately. The reason for creating it privately is that when you create a VPC using the Sws Console's VPC Turn Key (SWS Project), the Security Group of the RDS is configured so that it can only be accessed via the Bastion EC2.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/sws-project/"&gt;Visit Steve Web Service AWS VPC Turn Key feature&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, in the creation process outlined above, we've minimized the elements users need to input to the extent possible, so that with just project selection, database name, and engine type (mysql, mariadb, etc.), the RDS instance can be created in just 10 minutes, as depicted in the image below.&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%2Fv7y366n6njxyiz756ioo.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%2Fv7y366n6njxyiz756ioo.png" alt="Image description" width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isn't it incredibly easy? Users can configure RDS with just simple inputs and clicks, even without any prior learning about AWS Cloud.&lt;/p&gt;

&lt;p&gt;But we didn't stop there; we've structured the interface to provide detailed screens on how users can access RDS instances via the Bastion EC2.&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%2F57vxaekdpagri9tcjp4u.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%2F57vxaekdpagri9tcjp4u.png" alt="Image description" width="800" height="971"&gt;&lt;/a&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%2Fadln0ly3pqiy1vz0a137.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%2Fadln0ly3pqiy1vz0a137.png" alt="Image description" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Through the console, users can download a PEM key and access guidance on how to connect to the Bastion EC2, enabling them to access and utilize the RDS from there. With the SteveWebService tool, users can configure an architecture to access Bastion EC2 and RDS instances privately on AWS Cloud without learning about EC2 or RDS. Isn't it remarkably easy?&lt;/p&gt;

&lt;p&gt;Continuing in this vein, we aim to develop tools that assist users in building cloud architectures without the need for learning AWS Cloud, allowing developers to focus more on business. Furthermore, we strive to provide value by enabling even small teams of developers to make the most of AWS resources.&lt;/p&gt;

&lt;p&gt;Our next article will delve into the history of solving different problems. End.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service homepage&lt;/a&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%2F2a3aylo7al680lkkfr1k.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%2F2a3aylo7al680lkkfr1k.png" alt="Image description" width="205" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SWS Console: Routing multiple private EC2 instances to AWS ALB.</title>
      <dc:creator>SteveJin</dc:creator>
      <pubDate>Fri, 23 Feb 2024 09:33:27 +0000</pubDate>
      <link>https://dev.to/stevewebservice/creating-a-tool-for-easily-routing-multiple-private-ec2-instances-to-a-single-alb-in-aws-cloudstevewebservice-325</link>
      <guid>https://dev.to/stevewebservice/creating-a-tool-for-easily-routing-multiple-private-ec2-instances-to-a-single-alb-in-aws-cloudstevewebservice-325</guid>
      <description>&lt;p&gt;In a previous &lt;a href="https://medium.com/@steve_45946/creating-a-tool-to-build-architecture-for-deploying-my-project-on-a-private-ec2-in-aws-cloud-in-397a6ceccdea"&gt;post related to EC2 DMS&lt;/a&gt;, I created a feature that I had discussed with a colleague. As I began exploring technical discussions in online communities, I noticed that people deploying projects on EC2 instances were grappling with similar concerns. One of the challenging concepts that emerged was the configuration of a single ALB to route traffic to multiple instances.&lt;/p&gt;

&lt;p&gt;To make this clearer, I'll explain using the image below.&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%2F8pi850sqs9cjiuq1zblo.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%2F8pi850sqs9cjiuq1zblo.png" alt="Image description" width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The scenario is as follows: Let's assume we are implementing Microservices Architecture (MSA) by deploying payment, logging, and product servers on separate EC2 instances. The crucial aspect here is to route traffic to the appropriate server when a request comes to a single ALB, ensuring that requests reach the intended server.&lt;/p&gt;

&lt;p&gt;The limitation of the existing EC2 DMS setup was that it was implemented with a one-to-one mapping of API servers to ALBs. Consequently, the target group rules were broadly defined, directing all requests to a single EC2 instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/ec2-dms/"&gt;Visit EC2 DMS Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To address this issue with EC2 DMS, we devised the following flow, as depicted in the image below:&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%2Fylp4e5taqkphbnzq8rt3.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%2Fylp4e5taqkphbnzq8rt3.png" alt="Image description" width="800" height="836"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;SWS Project (VPC) is selected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select NEW ALB.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose CUSTOM for Target Path Pattern and input rules. In this case, users set the prefix path for each server's controller, and specify the rule accordingly. For example, if a request starts with /api/payment, it will be routed to the payment EC2 instance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter the Target Health Check Path. For instance, if the path /api/payment/health is requested, a simple text such as "OK" should be displayed without any authentication or authorization checks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Target Priority determines the priority, ranging from 1 to 999. Higher numbers indicate lower priority.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The rest follows the creation process of EC2 DMS. → &lt;a href="https://docs.stevewebservice.com/aws/feature-guide/ec2-dms/create-ec2-dms-project"&gt;Go directly to EC2 DMS creation method.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We implemented the above idea, ultimately assisting people in routing traffic to multiple instances on a single ALB through EC2 DMS. By simply selecting the target ALB and following the same process, we could help route traffic to multiple instances on a single ALB.&lt;/p&gt;

&lt;p&gt;If users were to set up the above process manually, they would need to learn various aspects, from creating ALBs to setting path patterns in target groups.&lt;/p&gt;

&lt;p&gt;However, achieving our goal with just these settings seems straightforward, doesn't it?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/ec2-dms/how-to-route-multiple-ec2-single-alb"&gt;Go to the documentation on routing multiple instances to an ALB with EC2 DMS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will continue to create tools that enable users to build cloud architectures without extensive AWS Cloud knowledge, allowing developers to focus more on business needs. Furthermore, we aim to provide value so that even small development teams can make the most of AWS resources.&lt;/p&gt;

&lt;p&gt;Our next article will address another problem-solving history. End.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service homepage&lt;/a&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%2Ff8mmgzjitoow7th8mt2q.jpg" 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%2Ff8mmgzjitoow7th8mt2q.jpg" alt="Image description" width="600" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SWS Console: Deploying my service to Private EC2 within 10 minutes.</title>
      <dc:creator>SteveJin</dc:creator>
      <pubDate>Thu, 22 Feb 2024 16:36:49 +0000</pubDate>
      <link>https://dev.to/stevewebservice/creating-a-tool-for-deploying-my-project-on-a-private-ec2-in-aws-cloud-in-just-10-minutesstevewebservice-1095</link>
      <guid>https://dev.to/stevewebservice/creating-a-tool-for-deploying-my-project-on-a-private-ec2-in-aws-cloud-in-just-10-minutesstevewebservice-1095</guid>
      <description>&lt;p&gt;As I began my journey in development, I encountered numerous developers. As I delved into development tasks, I naturally learned about setting up instances and deploying them in the cloud. I thought anyone would eventually start this way, as deploying is a crucial step regardless of whether you're developing API servers or clients. I believed this process would be learned gradually as one gained experience.&lt;/p&gt;

&lt;p&gt;However, I discovered that both junior and senior developers, like myself, faced difficulties in this process. This realization led me to ponder if there was a way to alleviate these challenges, and thus, I created EC2 DMS.&lt;/p&gt;

&lt;p&gt;The idea was conceived as illustrated in the image below.&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%2Fjyxbzzhp8xn9y5q77g9k.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%2Fjyxbzzhp8xn9y5q77g9k.png" alt="Image description" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's assume you want to deploy a Java JAR build project to a Private EC2. According to the diagram, using SWS EC2 DMS functionality, you would upload the JAR build file to Bastion EC2, then transfer the file from Bastion EC2 to Private EC2. Following that, you would configure the environment on Private EC2 based on the build stack, execute the project, and connect the instance to the ALB target group.&lt;/p&gt;

&lt;p&gt;However, the process doesn't end there. You also need to configure Security Groups for Bastion EC2, Private EC2, and the Public ALB as shown in the image.&lt;/p&gt;

&lt;p&gt;In this process, there are numerous AWS Cloud concepts to learn, which can be overwhelming and headache-inducing. But using the SteveWebService Console, you can build this architecture with minimal input, ensuring it's set up in your AWS Cloud environment as depicted.&lt;/p&gt;

&lt;p&gt;The process is as follows:&lt;/p&gt;

&lt;p&gt;First, create an AWS VPC Turn Key (SWS Project). When you create an AWS VPC Turn Key (SWS Project), it generates Security Groups structured as shown below. (While various resources are created, the crucial aspect for this scenario is Security Groups, so only the image related to them is shared.)&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%2F2vxfgihlp4wiz9ipsvlk.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%2F2vxfgihlp4wiz9ipsvlk.png" alt="Image description" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once created according to the above structure, users no longer need to design Security Groups. Isn't that easy?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Go to Steve Web Service Page to check&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/sws-project/"&gt;Go to see Steve Web Service AWS VPC Turn Key functionality&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, through EC2 DMS, you only need to make minimal inputs and selections as shown in the image below. Refer to the image below:&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%2Fz9h889p33j57hs8zwa7h.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%2Fz9h889p33j57hs8zwa7h.png" alt="Image description" width="800" height="1163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First, select the previously created SWS Project and enter the Project Name. Then, choose the Stack, upload the Java project's JAR build file, and if it's a custom port, change the port number accordingly. Simply click "Create Project".&lt;/p&gt;

&lt;p&gt;By doing so, Bastion EC2, Private EC2, a new ALB to connect to the instances, and the target group connected to the Private EC2, as depicted in the initially shared image structure, will be created in just 10 minutes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Go to Steve Web Service Page to check&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/ec2-dms/"&gt;Go to see Steve Web Service AWS EC2 DMS functionality&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isn't it easy?&lt;/p&gt;

&lt;p&gt;We don't stop at just creating; we also provide management capabilities for these instances. Functions include resizing instance sizes, managing Bastion EC2 IP, issuing SSL certificates for domains purchased through Route 53, and connecting them to ALB, as shown in the image below.&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%2F0fjyv8nbd2ftghdxerkb.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%2F0fjyv8nbd2ftghdxerkb.png" alt="Image description" width="800" height="1094"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the provided image, selecting the domain purchased through Route 53 as in step 6 and clicking the "Create SSL Certificate" button completes the SSL certificate setup for that domain.&lt;/p&gt;

&lt;p&gt;Next, in step 9, the user only needs to input the Subdomain name, and upon clicking the "Connect Domain" button, the connection to Route 53 with HTTPS:// for the respective subdomain is established.&lt;/p&gt;

&lt;p&gt;Isn't it incredibly easy? Users can deploy projects to the cloud and deliver them to users without any knowledge of AWS Cloud.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Go to Steve Web Service Page to check&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/ec2-dms/how-to-use-ec2-dms-project"&gt;Go to see Steve Web Service AWS EC2 DMS usage guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We continue to develop tools that enable users to build cloud architectures without the need for learning AWS Cloud. This helps developers focus more on their business, and further provides value by allowing even small teams of developers to utilize AWS resources to the fullest.&lt;/p&gt;

&lt;p&gt;The next article will delve into solving the issue of connecting multiple instances to a single ALB and routing based on paths. End.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Go to Steve Web Service Page to check&lt;/a&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%2F75dr5vcebbdghwpasej5.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%2F75dr5vcebbdghwpasej5.png" alt="Image description" width="205" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SWS Console: Developing a tool to quickly build AWS cloud architectures.</title>
      <dc:creator>SteveJin</dc:creator>
      <pubDate>Mon, 19 Feb 2024 13:11:50 +0000</pubDate>
      <link>https://dev.to/stevewebservice/building-a-tool-to-quickly-construct-and-manage-aws-cloud-architectures-steve-web-service-3d46</link>
      <guid>https://dev.to/stevewebservice/building-a-tool-to-quickly-construct-and-manage-aws-cloud-architectures-steve-web-service-3d46</guid>
      <description>&lt;p&gt;The architecture of AWS Cloud is becoming increasingly complex. As the salary of Cloud DevOps Engineers has risen to between $147,220 and $156,348 in the US, the importance of cloud engineers has increased. Consequently, the cost of hiring developers that companies need to employ has skyrocketed geometrically, and cloud technology is rapidly advancing.&lt;/p&gt;

&lt;p&gt;Moreover, as the cloud structures become more complex, junior developers and newcomers need to adapt to increasingly challenging learning curves. Companies are spending significant time and resources training their employees to adapt to these complexities.&lt;/p&gt;

&lt;p&gt;Observing these trends led me to the following idea: while everyone is developing in their own way, creating a platform that defines specific cloud architecture templates and allows users to quickly and easily generate resources in their AWS Cloud environment according to these templates with minimal input could potentially save businesses considerable time and money spent on studying, understanding, and applying cloud architectures.&lt;/p&gt;

&lt;p&gt;That idea gave birth to the Steve Web Service Console.&lt;/p&gt;

&lt;p&gt;The Steve Web Service Console enables users to set up various architecture configurations needed for project deployment, starting from the initial setup of the first AWS architecture VPC to deploying various architecture configurations required for project deployment, with minimal input and button clicks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/"&gt;Explore Steve Web Service AWS Cloud Quick Builder functionalities&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit Steve Web Service Page for more information&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you first look at the images below,&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%2Foz3poibfsebo14pw8p7f.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%2Foz3poibfsebo14pw8p7f.png" alt="Image description" width="800" height="640"&gt;&lt;/a&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%2Fqw3e0vtytd2ozayyg2d8.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%2Fqw3e0vtytd2ozayyg2d8.png" alt="Image description" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We configure both Public and Private Subnets as shown above, and accordingly, set up Security Groups to allocate instance resources privately. However, this task requires a significant amount of learning, and for those who are not seasoned developers or cloud engineers, understanding and studying the structure of the cloud can be time-consuming and costly.&lt;/p&gt;

&lt;p&gt;With the Steve Web Service Console, this configuration can be accomplished in just 5-10 minutes.&lt;/p&gt;

&lt;p&gt;Moreover, the setup process is very simple. If you have set up the Steve Web Service Console and launched the SWS Console application web locally, simply enter the project name and click one button, as shown in the image below, and the resources will be generated according to the above architecture.&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%2Frqjgyruk5oai27k8has2.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%2Frqjgyruk5oai27k8has2.png" alt="Image description" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isn't it remarkably easy? Although it may appear to impose certain constraints, the crucial aspect is that it saves time and effort spent on studying and manually configuring the resources needed to build the defined architecture. Steve Web Service continued to develop to provide such value.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/sws-project/"&gt;Explore Steve Web Service AWS VPC Turn Key functionalities&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit Steve Web Service Page for more information&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, I thought next. When we develop SPA projects, there are typically three main methods for deploying them to the AWS cloud:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Uploading to EC2 and running SPA projects directly using Nginx, Apache, or startup scripts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dockerizing SPA projects, uploading to ECR, deploying to ECS, and connecting to ELB.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Since SPA projects are ultimately static, exporting them via static web hosting on S3 and CloudFront.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Steve Web Service chose the third option, believing it to be cost-effective and efficient. We oriented the development towards this direction, naming the service Frontend DMS.&lt;/p&gt;

&lt;p&gt;The idea was as follows:&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%2Farg9dv1d78oeixfieddc.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%2Farg9dv1d78oeixfieddc.png" alt="Image description" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Users only need to receive a zip file containing the build folder with bundle.js and index.html of the SPA project. From there, the SWS Console takes care of building the entire architecture.&lt;/p&gt;

&lt;p&gt;To reach the CloudFront endpoint, there's a process involved, including uploading the SPA project's build files to S3, configuring static site hosting, and creating and connecting a CloudFront Distribution.&lt;/p&gt;

&lt;p&gt;However, with the Steve Web Service Console, there's no need to study or ponder over this process anymore.&lt;/p&gt;

&lt;p&gt;This is because the setup is completed with a simple flow as shown below.&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%2F9pcabldq05lwdbzoonoh.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%2F9pcabldq05lwdbzoonoh.png" alt="Image description" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How easy is it? Users no longer need to study; they can deploy and build SPA projects in the structure mentioned above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.stevewebservice.com/aws/feature-guide/frontend-dms/"&gt;Explore the Steve Web Service AWS Frontend DMS feature&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service Page for more information&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We didn't stop there; we also provided an option to re-upload to S3 and invalidate CloudFront simultaneously, as shown below.&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%2F8lhbts2v6dsadcs4pjco.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%2F8lhbts2v6dsadcs4pjco.png" alt="Image description" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we continued to focus on problem-solving, reaching even CloudFront deployment, we pondered what the user might want at the end.&lt;/p&gt;

&lt;p&gt;That's when domain connection and SSL configuration came to mind. At the end, domain access was essential for users, and although AWS Cloud provides this functionality, there was a lot to study. We believed that resolving this issue was crucial for the significance of this solution.&lt;/p&gt;

&lt;p&gt;So, we thought: If users purchase a domain through AWS Route 53 service, the Steve Web Service Console can handle everything thereafter. Users only need to select the domain and enter the subdomain, and the connection is made.&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%2Feoyvpa72kmx1hfktbp3c.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%2Feoyvpa72kmx1hfktbp3c.png" alt="Image description" width="800" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above image, when you select a domain purchased through Route 53, and click the "Create SSL Certificate" button, the SSL certificate setup for that domain is completed.&lt;/p&gt;

&lt;p&gt;Next, by receiving only the subdomain name from the user in step 6 and clicking the "Connect Domain" button, the connection to Route 53 with the corresponding subdomain is established via HTTPS.&lt;/p&gt;

&lt;p&gt;Isn't it incredibly easy? Users can deploy projects to the cloud and export them to users without any knowledge of AWS Cloud.&lt;/p&gt;

&lt;p&gt;We will continue to develop tools that help users build cloud architectures without the need for learning AWS Cloud, allowing developers to focus more on their business. Moreover, we aim to provide value so that even a small team of developers can utilize the maximum AWS resources possible.&lt;/p&gt;

&lt;p&gt;The next article will delve into the history of solving different problems. End.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stevewebservice.com/"&gt;Visit the Steve Web Service Page for more information&lt;/a&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%2F08ti4beg4j4lebgzhqbr.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%2F08ti4beg4j4lebgzhqbr.png" alt="Image description" width="205" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>developer</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
