1. AWS NextJS SSR Authentication
This note is about three options doing Authentication with AWS Amplify which I tried, not sure which is a best practice. I went through it when moving from AWS Amplify an React to Amplify SSR hosting and Cognito Federated Authentication. At this moment, I am not able to use Amplify to do SSR authenticaion so need to use a bit low level Cognito Hosted UI. Click the link for details.
2. Create a API with API Gateway, Lambda with S3 and EFS
This goes through how to setup a API endpoint using AWS API Gateway and Lambda. In addition, since dependencies for the Lambda is several GB, I load them from EFS in a VPC. Then, a VPC endopint for S3 is added so the Lambda can access S3 as well. Data is processed by the Lambda python code without traverse the internet, no IP, no port. Several things for next step 1) WAF to secure API Gateway, 2) Multiple Lambda, 3) Optimize code form Lambda wityh multithread, leveraging the Graviton ARM, and 4) route 53 with API Gateway.
3. Host a static web with S3
This is a very basic one, but good to review 1) CORS 2) Bucket policy 2) Public Access Block and 3) Bucket Policy
4. Cognito Hosted UI with Google Auth Provider
This note goes through how to setup cognito hosted ui with Google auth provider. Step 1. create clientID and clientSecret from Google Credential. Step 2. setup domain and redirectSignIn and redirectSignOut in the AWS Cognito console. Step 3. Setup redirectSignIn and redirectSignOut in aws-config.json as the same as in Step 3.
5. Route 53 EC2 multiple region routing
This note shows a simple example of using AWS Route 53 to route users traffic based on geolocation to different backend.
6. Run a web on port 80 by port forwarding
Just take note some simple commands to redirect traffic to port 80 in linux. I do this because later on I setup simple routes from Route 53 to different EC2 running http on port 80.
7. CloudFormation to create a simple s3 bucket for static web hosting
Getting started with cloudformation to create a S3 bucket and policy to enable static web hosting
8. CodePipeline for a Lambda Based API Endpoint
This note goes through how to create a AWS Codepipeline for a Lambda based API endpoint. There are few key things 1) We need write buildspec.yml to tell instruct CodeBuild. 2) CodeBuild run tests and package template.yaml to a S3 bucket for CodeDeploy. 3) CodeDeploy will create stacks from the template.yaml. There are many features with CodeBuild and CodeDeploy will be checked in next notes.
9. CloudFront Deliver S3 Static Web Content
This notes further deliver the S3 hosted static web by using CloudFront. There are some simpel steps: 1) Create a CloudFront distribution with the S3 bucket as an origin 2) Request a SSL certificate with the custom domain 3) Create an alternate domain and 4) Create an Route 53 alias record with the CloudFront auto-gen domain
10. Setup AWS SES and Workmail with Custom Domain
This note goes through how to setup AWS Simple Email Service (SES) and Workmail with custom domain. It needs some steps 1) verify domain and emails for testing 2) create MX record in DNS provider, in this case, it is AWS route 53 and 3) setup a S3 bucket and policy to store receiving email and 4) setup receiving rules
11. Getting started with apache web server and php
Before into cloudformation, this is a simple setup apache web server (LAMP) stack on EC2, then a very simple PHP to handle uploading files. Next note would be a cloudformation and codepiple for this one, because AWS document has a good guide on this old apache thing. Later on, we will build cloudformation tempaltes and codepipeline for NextJS, ReactJS, etc.
12. Setup ReactJS AWS Amplify and Federated Cognito Hosted UI
This note goes through how to setup bare project with ReactJS, AWS Amplify, Federated Cognito UI with Google Auth provider, and also TS, Eslint, Prettier
13. Setup AWS ECS Fargate with ALB and Flask Python App
This note goes through how to setup AWS ECS Fargate and ALB to run, host an Flask Python App. Basically, the python app will be hosted in two task each 1CPU and 2048MB RAM behind an ALB.