You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+59-33Lines changed: 59 additions & 33 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Resume Website Deployment on AWS
2
2
3
-
This project demonstrates how to deploy a static resume website using **AWS services**, including **Amazon S3**, **CloudFront**, **Route 53**, **AWS Lambda**, **DynamoDB** and **API Gateway** with a focus on security, performance, and automation. The deployment process is fully automated using **GitHub Actions**, ensuring seamless updates with every code push.
3
+
This project demonstrates how to deploy a static resume website using **AWS services**, including **Amazon S3**, **CloudFront**, **Route 53**, **AWS Lambda**, **DynamoDB**, and **API Gateway** with a focus on security, performance, and automation. The deployment process is fully automated using **GitHub Actions**, ensuring seamless updates with every code push.
4
4
5
5
---
6
6
@@ -22,32 +22,36 @@ This project demonstrates how to deploy a static resume website using **AWS serv
22
22
-**HTML**: For content structure.
23
23
-**CSS**: For styling and layout.
24
24
-**JavaScript**: For interactivity.
25
-
26
-
- Organized the project files into:
27
-
img/icons/ # Social media icons img/ # Images for the website index.html # Main HTML file /js # JavaScript files for interactions styles.css/ # Stylesheet files
25
+
- Organized the project files into:
26
+
-`img/icons/`: Social media icons
27
+
-`img/`: Images for the website
28
+
-`index.html`: Main HTML file
29
+
-`js/`: JavaScript files for interactions
30
+
-`css/`: Stylesheet files
28
31
29
32
---
30
33
31
34
### 2. **Amazon S3: Hosting the Static Website**
32
35
33
36
-**Created an S3 bucket**:
34
-
- Bucket Name: `vivek-resume-bucket`.
35
-
- Enabled **Static Website Hosting** in S3.
36
-
- Uploaded all website files (HTML, CSS, JS, images) to the bucket.
37
+
38
+
- Bucket Name: `vivek-resume-bucket`.
39
+
- Enabled **Static Website Hosting** in S3.
40
+
- Uploaded all website files (HTML, CSS, JS, images) to the bucket.
37
41
38
42
-**Configured Bucket Permissions**:
39
-
- Ensured the bucket is private and accessible only via **CloudFront**.
40
-
- Used **IAM policies** and **Origin Access Identity (OAI)** for secure access.
43
+
- Ensured the bucket is private and accessible only via **CloudFront**.
44
+
- Used **IAM policies** and **Origin Access Identity (OAI)** for secure access.
41
45
42
46
---
43
47
44
48
### 3. **AWS CloudFront: Securing and Accelerating Content Delivery**
45
49
46
50
-**Created a CloudFront Distribution**:
47
-
- Configured the S3 bucket as the origin.
48
-
- Set up **Alternate Domain Names (CNAMEs)** for `viveksati.online` and `www.viveksati.online`.
49
-
- Used **AWS Certificate Manager (ACM)** to issue an SSL certificate for HTTPS.
50
-
- Configured **Caching** to improve performance and reduce load on the S3 bucket.
51
+
- Configured the S3 bucket as the origin.
52
+
- Set up **Alternate Domain Names (CNAMEs)** for `viveksati.online` and `www.viveksati.online`.
53
+
- Used **AWS Certificate Manager (ACM)** to issue an SSL certificate for HTTPS.
54
+
- Configured **Caching** to improve performance and reduce load on the S3 bucket.
51
55
52
56
---
53
57
@@ -61,9 +65,9 @@ This project demonstrates how to deploy a static resume website using **AWS serv
61
65
### 5. **Amazon Route 53: Domain Configuration**
62
66
63
67
-**Created a Hosted Zone**:
64
-
- Added DNS records to Route 53:
65
68
66
-
-**A (Alias) Record**: Pointed `resume.viveksati.online` to the CloudFront distribution.
69
+
- Added DNS records to Route 53:
70
+
-**A (Alias) Record**: Pointed `resume.viveksati.online` to the CloudFront distribution.
67
71
68
72
- Validated DNS propagation and verified the domain's accessibility.
69
73
@@ -72,12 +76,15 @@ This project demonstrates how to deploy a static resume website using **AWS serv
72
76
### 6. **GitHub Actions: Automating Deployment**
73
77
74
78
-**Set up a GitHub Repository**:
75
-
- Added all website files (`index.html`, `styles.css`, `script.js`, etc.).
79
+
80
+
- Added all website files (`index.html`, `styles.css`, `script.js`, etc.).
76
81
77
82
-**Configured a Workflow**:
78
-
- Created `.github/workflows/deploy.yml` to automate the following tasks:
79
-
1. Sync updated files to the S3 bucket.
80
-
2. Invalidate CloudFront cache for immediate updates.
83
+
84
+
- Created `.github/workflows/deploy.yml` to automate the following tasks:
85
+
1. Sync updated files to the S3 bucket.
86
+
2. Invalidate CloudFront cache for immediate updates.
87
+
81
88
- Sample GitHub Actions Workflow:
82
89
83
90
```yaml
@@ -115,31 +122,50 @@ This project demonstrates how to deploy a static resume website using **AWS serv
115
122
### 7. **Testing and Validation**
116
123
117
124
- **Tested the website**:
118
-
- Accessed the website via `https://viveksati.online`.
119
-
- Verified global availability and HTTPS functionality.
125
+
126
+
- Accessed the website via `https://viveksati.online`.
127
+
- Verified global availability and HTTPS functionality.
120
128
121
129
- **Validated Automation**:
122
-
- Pushed updates to the GitHub repository and confirmed automatic deployment via GitHub Actions.
130
+
- Pushed updates to the GitHub repository and confirmed automatic deployment via GitHub Actions.
131
+
132
+
---
133
+
134
+
### 8. **Visitor Count Tracking**
135
+
136
+
- **Set up AWS Lambda**:
137
+
138
+
- Created a Lambda function to handle visitor count logic.
139
+
- Configured the function to be triggered by API Gateway.
140
+
141
+
- **Configured DynamoDB**:
142
+
143
+
- Created a DynamoDB table to store visitor count data.
144
+
- Defined the necessary read/write permissions for the Lambda function.
145
+
146
+
- **API Gateway Integration**:
147
+
- Set up an API Gateway to expose an endpoint for the Lambda function.
148
+
- Configured the endpoint to trigger the Lambda function and update the visitor count.
0 commit comments