<?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: Anson Ly</title>
    <description>The latest articles on DEV Community by Anson Ly (@anson_ly).</description>
    <link>https://dev.to/anson_ly</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%2F1541742%2Fed727e31-8b07-46fc-a66d-f9785a647b4b.jpg</url>
      <title>DEV Community: Anson Ly</title>
      <link>https://dev.to/anson_ly</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anson_ly"/>
    <language>en</language>
    <item>
      <title>Build Serverless Application In AWS</title>
      <dc:creator>Anson Ly</dc:creator>
      <pubDate>Fri, 31 May 2024 00:47:21 +0000</pubDate>
      <link>https://dev.to/anson_ly/build-serverless-application-in-aws-4b2i</link>
      <guid>https://dev.to/anson_ly/build-serverless-application-in-aws-4b2i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The LinkedIn Learning course "Building a Serverless Application in AWS" by Lucy Wang is an in-depth, hands-on guide designed to equip learners with the skills and knowledge needed to develop and deploy serverless applications using AWS services. The course covers the fundamental concepts of serverless architecture, the benefits of using serverless computing, and detailed instructions on how to utilize various AWS services to create a fully functional serverless application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objectives&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the primary objectives of the course is to provide a thorough understanding of serverless architecture principles. It explains the significant differences between serverless and traditional server-based applications, highlighting the advantages of serverless computing such as reduced operational overhead, automatic scaling, and cost efficiency. Real-world use cases are presented to illustrate scenarios where serverless architecture can be particularly beneficial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project also covers API Gateway, which is used to create RESTful APIs that interface with Lambda functions. Learners are shown how to set up API Gateway, define resources and methods, and secure APIs using authentication and authorization mechanisms. This section is crucial for understanding how to expose serverless applications to the web and handle client requests securely.&lt;/p&gt;

&lt;p&gt;Integration with AWS DynamoDB is another essential part of the course. DynamoDB is a key-value and document database that is fully managed and serverless. The course teaches how to design and set up DynamoDB tables, perform CRUD operations, and integrate these operations with Lambda functions. It ensures that learners understand the importance of data modeling and query optimization in DynamoDB to achieve efficient data retrieval and storage.&lt;/p&gt;

&lt;p&gt;AWS S3, a service for object storage, is also covered extensively. The course details how to set up S3 buckets, manage data uploads and downloads, and configure event triggers to initiate Lambda functions. Security best practices for S3 buckets are discussed to ensure data protection and compliance with industry standards.&lt;/p&gt;

&lt;p&gt;The practical project component of the course involves building a serverless application using the aforementioned AWS services. The application architecture includes API Gateway for API management, AWS Lambda for business logic, DynamoDB for data persistence, and S3 for storage of static assets. This hands-on project enables learners to apply theoretical knowledge in a real-world scenario, enhancing their understanding and skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Challenges&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Throughout the project, several challenges were encountered and addressed. For instance, initial latency issues with Lambda functions were resolved by optimizing the code and adjusting memory allocation. Ensuring API security was achieved through implementing IAM roles and API Gateway authorization mechanisms. Data consistency in DynamoDB was managed by properly configuring read/write capacity units and handling errors gracefully within Lambda functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project offered by Lucy Wang provided a comprehensive and practical guide to building serverless applications using AWS. It emphasized the importance of hands-on learning, allowing participants to understand and implement key AWS services effectively. By the end of the course, learners were able to deploy robust, scalable, and cost-efficient serverless applications, adhering to best practices in security and performance optimization.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>beginners</category>
      <category>serverless</category>
      <category>linkedin</category>
    </item>
    <item>
      <title>Deploying A Static Website with AWS S3</title>
      <dc:creator>Anson Ly</dc:creator>
      <pubDate>Wed, 29 May 2024 21:02:29 +0000</pubDate>
      <link>https://dev.to/anson_ly/deploying-a-static-website-with-aws-s3-52fj</link>
      <guid>https://dev.to/anson_ly/deploying-a-static-website-with-aws-s3-52fj</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Deploying a static website using Amazon S3 is a cost-effective and efficient way to host web content. In this guide, I’ll walk you through the steps to set up and deploy a static website on AWS S3. This process is ideal for hosting simple HTML, CSS, and JavaScript files without the need for server-side processing. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 Create a S3 Bucket&lt;/strong&gt;&lt;br&gt;
First I created an S3 bucket that will hold my website files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Upload Website Files&lt;/strong&gt;&lt;br&gt;
Next, you need to upload your website files to the S3 bucket. Select your bucket from the list and click the “Upload” button. Add your HTML, CSS, and JavaScript files. Once you’ve added the files, click “Upload” to add them to your bucket.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Configure the Bucket for Static Website Hosting&lt;/strong&gt;&lt;br&gt;
Now, you need to configure the bucket to host your website. Navigate to the bucket’s properties by clicking on the “Properties” tab and scrolling down to the “Static website hosting” section. Enable static website hosting by selecting “Use this bucket to host a website”. Specify the index document (e.g., index.html) and optionally specify an error document (e.g., error.html). Finally, click “Save”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Access Your Static Website&lt;/strong&gt;&lt;br&gt;
Now, your static website is ready to be accessed. Go back to the “Properties” tab and in the “Static website hosting” section, you’ll find the URL of your website. Open this URL in your browser to see your static website live.&lt;/p&gt;

&lt;p&gt;Here is the website using Github. &lt;a href="https://ansonly15.github.io/Anson_Ly/"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Deploying a static website with AWS S3 is straightforward and offers a scalable, cost-effective solution for hosting web content. By following the steps outlined above, you can have your static site up and running in no time. For enhanced security and performance, consider integrating AWS CloudFront and using a custom domain with Route 53. Happy hosting!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>s3</category>
      <category>webdev</category>
    </item>
    <item>
      <title>AWS Cloud Resume Challenge</title>
      <dc:creator>Anson Ly</dc:creator>
      <pubDate>Wed, 29 May 2024 20:35:36 +0000</pubDate>
      <link>https://dev.to/anson_ly/aws-cloud-resume-challenge-h2g</link>
      <guid>https://dev.to/anson_ly/aws-cloud-resume-challenge-h2g</guid>
      <description>&lt;p&gt;I came across the Cloud Resume Challenge by my mentor as I am trying to build a career in AWS. I am a recent Masters' graduate majoring in Cloud Computing Systems. Up until this program I don't have much exposure to the cloud since I majored in Psychology for undergrad. &lt;a href="https://ansonly15.github.io/Anson_Ly/"&gt;Here is my github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Did&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Front-End&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With experience from a full-stack program I coded my resume using basic HTML and CSS. Then I uploaded my file to an S3 Bucket which then connects to a CloudFront.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Back-End&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started by deploying my backend services using the AWS Management Console. I began with Amazon DynamoDB, setting up a table with an ID and a value of 1. Then, I created a Lambda function to increment this value each time it was triggered. Initially, I deployed two Lambda functions—one for reading the value and another for writing (incrementing) the value. However, this approach made my architecture unnecessarily complicated and caused multiple issues with API Gateway integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure as Code with Terraform&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While the challenge suggested using AWS SAM, I decided to use Terraform because it is more widely used in the industry and has excellent documentation. Coding my entire backend in Terraform presented its own set of challenges, particularly with CORS issues in API Gateway. Unlike the AWS Console, Terraform does not have a simple "Turn on CORS" button, which made this part of the project the most time-consuming. I spent approximately 25-30 hours resolving these issues. Despite the frustration, this was also the most exciting part of the challenge, as it significantly deepened my understanding of infrastructure as code (IaC).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementing CI/CD Pipelines&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I uploaded my front-end and back-end code to separate GitHub repositories and used GitHub Actions to build CI/CD pipelines. This setup ensures that my site updates automatically upon a push from my IDE. I also utilized branches to test new code for compatibility with the main branch. For security, I stored my credentials as GitHub secrets for the front-end and used Terraform Cloud to manage credentials for the back-end.&lt;/p&gt;

&lt;p&gt;After more than 100 hours of work, I finally completed the Cloud Resume Challenge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project has significantly expanded my knowledge of cloud services and enhanced my JavaScript skills. It is now a standout addition to my resume and a compelling example to present during job interviews. Moving forward, I plan to further develop my CI/CD pipelines by integrating Docker, Jenkins, and Kubernetes, and continue refining my project. Additionally, I aim to obtain the AWS Solutions Architect - Associate certification.&lt;/p&gt;

&lt;p&gt;I highly recommend this challenge to anyone seeking hands-on experience with cloud technologies. It is particularly beneficial for college students looking to gain practical project experience. Whether you are a novice or a seasoned professional, you will find this challenge both rewarding and educational.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awschallenge</category>
      <category>beginners</category>
      <category>serverless</category>
    </item>
  </channel>
</rss>
