Skip to content

Commit 11bab54

Browse files
committed
Add to README About Route53 and DNS propagation
1 parent 913d2e3 commit 11bab54

1 file changed

Lines changed: 38 additions & 15 deletions

File tree

README.md

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
# Iporaitech's web site
1+
# iporaitech.com
22

3-
This is the static website for iporaitech.com
3+
This is the static website for [iporaitech.com](https://iporaitech.com), styled with TailwindCSS and bundled with Webpack.
44

5-
It's built with Webpack and styled with TailwindCSS.
5+
> **NOTICE**: Iporaitech is currently out-of-service, but this is a _very simple_ example of how to build an static website _without a framework_, and deploy it to AWS.
66
7-
See webpack.\* files for bundling info.
7+
It features English/Spanish content by using the `HtmlWebpackPlugin` to generate the `index.html` and the `es/index.html` files based on a [template file](./src/template.html) and [partial content](./src/partials/) embedded in the template for each language.
8+
9+
Caveat: this example does not include tests nor code quality checks.
810

911
## Scripts
1012

@@ -14,21 +16,42 @@ Start development server with `yarn dev`
1416

1517
Build for production with `yarn build:prod`
1618

17-
## Deployment
19+
## AWS Infrastructure
1820

19-
The deploy process is encoded in the [deploy-all](.github/workflows/deploy-all.yml) GitHub Actions workflow, basically:
21+
This is an static website hosted in a private S3 bucket and distributed by CloudFront. These and other related resources are provided by the following Terraform modules:
2022

21-
- Deploy the AWS infra with Terraform
22-
- Build for production
23-
- Upload the build output to its S3 bucket
24-
- Invalidate CloudFront cache
23+
- [terraform-aws-route53-cert](https://github.com/hisapy/terraform-aws-acm-route53-cert)
24+
- [terraform-aws-cloudfront-s3-hosting](https://github.com/hisapy/terraform-aws-cloudfront-s3-hosting)
2525

26-
## AWS Infrastructure
27-
28-
This is and static website hosted in a private S3 bucket and distributed by CloudFront.
26+
The AWS account where these resources live is part of an AWS Control Tower landing zone, and it was provisioned using the [aws-afc-terraform-s3-backend-blueprint](https://github.com/hisapy/aws-afc-terraform-s3-backend-blueprint).
2927

30-
For info about the exact resources check the [terraform](./terraform/) directory.
28+
For convenience, the **Route53 hosted zone** for the `iporaitech.com` domain name as well as the Google site-verification and Gmail related DNS records are also defined in this repository and are created in the **same AWS account** as the rest of the resources in this repo.
3129

32-
**NOTICE:** The Route53 hosted zone for the `iporaitech.com` domain name is created in this project.
30+
Check the [terraform](./terraform/) directory for more info.
3331

3432
**TODO:** add terraform-docs
33+
34+
### About Route53 and DNS propagation
35+
36+
When you create a Route53 hosted zone for your domain, you have to update the name servers (NS) on the domain's registrar with the NS records assigned to the hosted zone by Route53.
37+
38+
You can use the `dig` command to verify the name servers have been propagated (at least to your location). For example, the following command should return the same NS as the ones shown in the Route53 hosted zone:
39+
40+
`dig NS iporaitech.com +short`
41+
42+
Operations that require Route53 DNS records will timeout if the NS records returned by the DNS query are not the same as the ones in the hosted zone, for example, the ACM certificate validation from the terraform-aws-route53-cert module.
43+
44+
> In my experience, with US and PY based DNS registrars, ACM (us-east-1) was able to validate certificates ~1 hour or so after updating the NS in the registrar ... maybe affected by me running `dig` from my side to get the expected CNAME answer (?) 🤔.
45+
46+
### About the DomainKeys Identified Mail (DKIM) DNS record
47+
48+
## Deployment
49+
50+
The deploy process is encoded in the [Build and deploy](.github/workflows/deploy.yml) GitHub Actions workflow, basically:
51+
52+
TODOOOO: Link deploy.yml to the blueprint repo's README
53+
54+
- Deploy the AWS infra with Terraform
55+
- Build for production
56+
- Upload the build output to its S3 bucket
57+
- Invalidate CloudFront cache

0 commit comments

Comments
 (0)