Hosting a Static Website on AWS S3 with Route 53 (HTTP) & CloudFront (HTTPS)


This document outlines the steps to host a static website on Amazon S3 and configure it with a custom domain using Route 53. Important: This configuration serves your website over HTTP (not secure). For HTTPS, you’ll need to use CloudFront, which is covered in a separate document.

Prerequisites

  • An AWS account.
  • A registered domain name (if you want to use a custom domain).

Steps

  1. Create an S3 Bucket:

    • In the AWS Management Console, navigate to the S3 service.
    • Click “Create bucket.”
    • Choose a bucket name that ideally matches your domain name (e.g., yourdomain.com). This simplifies configuration later.
    • Select the desired AWS region.
    • Under “Block all public access,” uncheck all the boxes. This is necessary for static website hosting. A more secure approach using bucket policies is used later.
    • Click “Create bucket.”
  2. Enable Static Website Hosting:

SOLID Design Principles


A quick reference to writing Scalable, Maintainable, and Flexible OO Code

My Image

When building large-scale applications that need to stand the test of time, having a flexible and adaptable codebase is essential. A well-structured architecture helps ensure that the software remains scalable and easy to maintain as it grows. SOLID is a set of five core design principles in object-oriented programming that guide developers in writing cleaner, more maintainable, and flexible code. By following these principles, you can make smarter architectural decisions that lead to more robust and efficient software.

AI & ML Made Simple: A Beginner’s Guide - Prerequisite

My Image

Before diving into machine learning, it’s important to get familiar with the basic concepts and key terms often used in this field. As you go deeper into the subject, one of the biggest challenges will be remembering what certain terms mean. Without a solid understanding of these basics, learning advanced topics can feel much harder than it needs to be.

This introduction covers the essential high-level concepts you should know — many of which are concepts from high school / engineering days. Taking a moment to revisit them now will make your learning journey much smoother later on.

Introduction to API

My Image

An API (Application Programming Interface) is a well-defined set of rules that enables different software applications to communicate seamlessly. It acts as a bridge that facilitates the exchange of data and functionalities between systems, ensuring they work together efficiently.

In this context, an application refers to any software that either provides or consumes functionality, while the interface serves as a contract that defines how these applications interact. At its core, API architecture follows a client-server model, where the client is the application making a request, and the server is the system processing the request and returning a response. This structured communication allows developers to build scalable, modular, and interoperable software solutions.

Machine Learning — Supervised and Unsupervised

My Image

Machine learning (ML) is a branch of artificial intelligence (AI) that empowers systems to learn from data and make predictions or decisions without explicit programming. ML algorithms analyze data patterns to generate informed predictions or classifications.

ML is broadly categorized into Supervised learning, Unsupervised learning, and Reinforcement learning. Common applications include recommendation systems, predictive analytics, fraud detection, speech recognition, sentiment analysis, machine translation, self-driving cars, and healthcare diagnostics. ML plays a crucial role in automating tasks and extracting insights from massive datasets.