Skip to content

Commit 40372dc

Browse files
committed
add latest changes
1 parent 0fd18ce commit 40372dc

File tree

260 files changed

+62347
-3390
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

260 files changed

+62347
-3390
lines changed

.gitignore

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
**/*.js
2-
**/!jest.config.js
3-
**/*.d.ts
41
**/node_modules
52

6-
# CDK asset staging directory
7-
**/cdk.staging
8-
**/cdk.out
3+
.DS_Store

README.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
# Statista AWS Workshop 2024-02
1+
# AWS Workshop
22

3-
## Start the workshop
3+
This is a hands-on workshop about some of the most common AWS services.
44

5-
```sh
6-
cd docs
7-
npm install
8-
npm run start
9-
```
5+
The recommended way to start this workshop is to visit the published Github Pages site for it.
6+
7+
If you want to run it locally, or make changes to it, check the [docs/README.md](docs/README.md) for more information.

docs/0_welcome.md

Lines changed: 35 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1-
# AWS Advanced Workshop: Container Orchestration and Delivery
1+
# AWS Workshop
2+
3+
![Welcome to this AWS Workshop](media/welcome.png)
24

3-
![Welcome to AWS Advanced Workshop](media/welcome.png)
45

56
## Introduction
67

7-
Welcome to the AWS Advanced Workshop! This workshop is designed for developers who want to learn about container orchestration, load balancing, and content delivery on AWS. Through hands-on labs, you'll build a containerized application infrastructure using Pulumi.
8+
Welcome to this AWS Workshop! It is designed for developers who want to learn about container orchestration, load balancing, databases, lambdas
9+
<!-- TODO update this later -->
10+
and content delivery on AWS. Through the included hands-on labs, you'll build a containerized application infrastructure using aws-cdk.
11+
12+
13+
## Target Audience
814

915
## How to Use This Guide
1016

@@ -17,127 +23,36 @@ This workshop is structured into several labs, each focusing on a specific AWS s
1723

1824
Navigate through the labs in order, as each builds upon the previous one. Use the sidebar to move between sections.
1925

26+
27+
<!-- TODO change or remove this
2028
## Project Overview
2129
22-
This guide takes you beyond the basics of AWS, focusing on building modern containerized applications. Through the hands-on labs, you'll create a sophisticated cloud infrastructure using Amazon ECS, Application Load Balancers, and CloudFront, all orchestrated with Pulumi's infrastructure as code. You'll learn how to deploy containerized applications, manage container registries, implement load balancing, and optimize content delivery. This workshop builds upon fundamental AWS knowledge, guiding you through the practical implementation of container orchestration, high availability patterns, and scalable architectures. By the end of this workshop, you'll have hands-on experience building and deploying containerized applications on AWS, preparing you for real-world cloud architecture challenges.
30+
This guide takes you beyond the basics of AWS, focusing on building modern containerized applications. Through the hands-on labs, you'll create a sophisticated cloud infrastructure using Amazon ECS, Application Load Balancers, and CloudFront, all orchestrated with Pulumi's infrastructure as code. You'll learn how to deploy containerized applications, manage container registries, implement load balancing, and optimize content delivery. This workshop builds upon fundamental AWS knowledge, guiding you through the practical implementation of container orchestration, high availability patterns, and scalable architectures. By the end of this workshop, you'll have hands-on experience building and deploying containerized applications on AWS, preparing you for real-world cloud architecture challenges. -->
31+
2332

2433
## Prerequisites
2534

26-
- Basic understanding of AWS and containerization concepts
35+
- Basic understanding of AWS, commandline and containerization concepts
2736
- Familiarity with Docker
2837
- AWS account with appropriate permissions
29-
- Node.js (version 14 or later)
30-
- Docker installed locally
31-
- AWS CLI version 2 installed and configured
32-
- Previous experience with Pulumi (completion of AWS Fundamentals Workshop recommended)
33-
34-
## Workshop Architecture Evolution
35-
36-
Throughout this workshop, we'll build our architecture in stages:
37-
38-
1. **ECS Fargate Setup**: Basic ECS cluster with Fargate launch type
39-
![ECS Setup Architecture](media/lab_1_arch.drawio.svg)
40-
41-
2. **Load Balancer Integration**: Adding ALB and target groups
42-
![ALB Integration Architecture](media/lab_2_arch.drawio.svg)
43-
44-
3. **Container Registry**: Building and pushing custom images to ECR
45-
![ECR Integration Architecture](media/lab_3_arch.drawio.svg)
46-
47-
4. **Autoscaling**: Adding autoscaling to the ECS cluster
48-
![Complete Architecture](media/lab_4_arch.drawio.svg)
49-
50-
5. **Content Delivery**: Adding CloudFront distribution
51-
![Complete Architecture](media/lab_5_arch.drawio.svg)
52-
53-
6. **Message Queuing**: Adding SQS with a lambda consumer
54-
![Complete Architecture](media/lab_6_arch.drawio.svg)
55-
56-
### Labs Overview
57-
58-
#### 1. Container Orchestration with ECS
59-
- **Introduction to containerization and ECS concepts**
60-
- **Understanding Fargate vs EC2 launch types**
61-
- **Container networking and security**
62-
- **Hands-On: Deploy containerized applications using Pulumi**
63-
- Set up ECS cluster and VPC
64-
- Define task definitions and services
65-
- Configure container networking
66-
67-
#### 2. Load Balancing and Service Discovery
68-
- **Application Load Balancer architecture**
69-
- **Target groups and health checks**
70-
- **SSL/TLS termination**
71-
- **Hands-On: Implement load balancing with Pulumi**
72-
- Create ALB and target groups
73-
- Configure listeners and rules
74-
- Integrate with ECS services
75-
76-
#### 3. Container Registry and Image Management
77-
- **Introduction to Amazon ECR**
78-
- **Docker image best practices**
79-
- **Image lifecycle policies**
80-
- **Hands-On: Build and deploy custom containers**
81-
- Create ECR repositories
82-
- Build and tag Docker images
83-
- Push images to ECR
84-
- Update ECS services
85-
86-
#### 4. Auto Scaling and Monitoring
87-
- **Scaling patterns and strategies**
88-
- **CloudWatch metrics and alarms**
89-
- **Capacity planning**
90-
- **Hands-On: Implement auto scaling**
91-
- Configure scaling policies
92-
- Set up CloudWatch alarms
93-
- Monitor application metrics
94-
- Test scaling behavior
95-
96-
#### 5. Content Delivery and Edge Computing
97-
- **CloudFront architecture and concepts**
98-
- **Cache behaviors and policies**
99-
- **Edge computing patterns**
100-
- **Hands-On: Implement CDN with Pulumi**
101-
- Create CloudFront distributions
102-
- Configure origins and behaviors
103-
- Set up cache policies
104-
- Implement SSL/TLS
105-
106-
#### 6. Message Processing
107-
- **Event-driven architecture patterns**
108-
- **Message queue concepts**
109-
- **Dead letter queues**
110-
- **Hands-On: Implement message processing**
111-
- Create SQS queues
112-
- Configure message retention
113-
- Implement Lambda consumers
114-
- Set up monitoring
115-
116-
## Workshop Duration
117-
118-
This is a self-paced workshop. The time ranges provided for each lab are estimates, and you should feel free to spend more time on areas you find challenging or interesting. Remember to take breaks as needed.
119-
120-
Total estimated time: 4-6 hours
121-
122-
- Lab 1: 45-60 minutes
123-
- Lab 2: 30-45 minutes
124-
- Lab 3: 45-60 minutes
125-
- Lab 4: 30-45 minutes
126-
- Lab 5: 45-60 minutes
127-
- Lab 6: 45-60 minutes
128-
129-
Note: Actual duration may vary based on individual pace and prior experience.
130-
131-
## Conclusion
132-
133-
By the end of this workshop, you will have built a production-ready containerized application infrastructure on AWS. You'll understand how to orchestrate containers, implement load balancing, manage container images, and optimize content delivery. The hands-on experience with Pulumi will prepare you for implementing Infrastructure as Code in real-world scenarios.
134-
135-
### Next Steps
136-
137-
To continue your AWS learning journey:
138-
139-
1. Explore the AWS documentation for services covered in this workshop
140-
2. Try applying these concepts to your own projects
141-
3. Consider pursuing AWS certifications, starting with the AWS Certified Cloud Practitioner
142-
143-
Let's begin your journey into advanced AWS services!
38+
- Docker installed
39+
- Node.js (v22 recommended)
40+
- AWS CLI version 2 installed
41+
- curl or Postman installed
42+
- jq installed (optional)
43+
44+
45+
## How to use this workshop
46+
47+
The topics covered by this workshop are the first level chapters.
48+
Each topic has multiple hands-on steps, which are the second level chapters.
49+
Each step contains instructions, and a codebase containing the end-state.
50+
51+
If you get stuck during any of the steps, you can always check the end-state to see what you should have at the end of the particular step.
52+
To see the difference between your current state and the end-state, you can use for example `diff -Nur --exclude=node_modules task-service goal-step-2/task-service`.
53+
54+
To be able to `diff`, you'll need to check out this repository locally.
55+
56+
It's recommended to start with the workshop from the root folder of this repository.
57+
58+
When this workshop describes filepaths, like `cdk/package.json`, they're always relative to that path.

docs/2_next.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
<!-- TODO -->
2+
13
# Next Steps
24

35
Congratulations on completing the AWS Advanced workshop! You've learned about several advanced AWS services and best practices. This guide outlines several paths to further develop your AWS skills and apply your newfound knowledge.

docs/3_conclusion.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
<!-- TODO -->
2+
13
# Conclusion
24

35
Congratulations on completing the AWS Advanced workshop! You've taken a significant step in your journey to understanding and utilizing Amazon Web Services.

docs/README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1-
# Headline
1+
# Docs
22

3-
> An awesome project.
3+
This folder contains a docsify project.
4+
5+
It is published to Github Pages.
6+
7+
To run it locally, run
8+
```sh
9+
npm install
10+
npm run start
11+
```
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)