Skip to content

Commit ba3a191

Browse files
authored
Merge pull request #213 from Lemoncode/feature/aws-web-services
Feature/aws web services
2 parents 1235890 + 30f737e commit ba3a191

165 files changed

Lines changed: 3204 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
2+
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
3+
{
4+
"name": "Ubuntu",
5+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6+
"image": "mcr.microsoft.com/devcontainers/base:jammy",
7+
"features": {
8+
"ghcr.io/devcontainers/features/aws-cli:1": {},
9+
"ghcr.io/devcontainers/features/azure-cli:1": {},
10+
"ghcr.io/devcontainers/features/terraform:1": {}
11+
},
12+
13+
// Features to add to the dev container. More info: https://containers.dev/features.
14+
// "features": {},
15+
16+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
17+
// "forwardPorts": [],
18+
19+
// Use 'postCreateCommand' to run commands after the container is created.
20+
// "postCreateCommand": "uname -a",
21+
22+
// Configure tool-specific properties.
23+
// "customizations": {},
24+
25+
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
26+
"remoteUser": "root"
27+
}

04-cloud/aws/01-introduction/diagrams.drawio

Lines changed: 682 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
# Introduction
2+
3+
## Public Cloud Services
4+
5+
| On-Premises | Infrastructure as a Service | Platform as a Service | Software as a Service |
6+
|:--------------:|:---------------------------:|-----------------------|-----------------------|
7+
| Applications | Applications | Applications | Applications ☁️ |
8+
| Data | Data | Data | Data ☁️ |
9+
| Runtime | Runtime | Runtime ☁️ | Runtime ☁️ |
10+
| Middleware | Middleware | Middleware ☁️ | Middleware ☁️ |
11+
| O/S | O/S | O/S ☁️ | O/S ☁️ |
12+
| Virtualization | Virtualization ☁️ | Virtualization ☁️ | Virtualization ☁️ |
13+
| Servers | Servers ☁️ | Servers ☁️ | Servers ☁️ |
14+
| Storage | Storage ☁️ | Storage ☁️ | Storage ☁️ |
15+
| Networking | Networking ☁️ | Networking ☁️ | Networking ☁️ |
16+
17+
## Regions and Availability Zones
18+
19+
### Regions and Availability Zones
20+
21+
- **What is a region?**
22+
- Geographic Location
23+
- Disaster
24+
- Performance
25+
26+
- **What is and Availability Zone?**
27+
- Isolated set of resources within a region
28+
- Fire or power outage in one AZ should not affect another AZ
29+
- High speed network connection between AZs
30+
31+
32+
#### AWS Regions
33+
34+
- For general use, choose region closest to you
35+
- Not all regions have all AWS services available
36+
- Cost of services can differ from region to region
37+
- Legal or compliance requirements for applications and data
38+
39+
### Compliance and Security
40+
41+
- Data centers
42+
- https://aws.amazon.com/compliance/data-center/
43+
- Certifications, laws, alignments
44+
- ISO, SOC, HIPPA, etc.
45+
- https://aws.amazon.com/compliance/programs/
46+
- General info
47+
- https://aws.amazon.com/compliance
48+
49+
#### Shared Responsability
50+
51+
- [aws.amazon.com/compliance/shared-responsibility-model/](https://aws.amazon.com/compliance/shared-responsibility-model/)
52+
53+
| Security OF cloud | Security IN cloud |
54+
| -------------------: | ----------------- |
55+
| Physical data center | Configuration |
56+
| Hardware | Credentials |
57+
| Software | Application |
58+
| Networking | Customer data |
59+
60+
### Instance Deployment Models
61+
62+
- **Single instance**
63+
- Most basic setup
64+
- Single point of failure
65+
- Used for
66+
- Development
67+
- Proof of concepts
68+
69+
- **Multiple INstances**
70+
- Redundant
71+
- Instances
72+
- Availability Zones
73+
- Live updates
74+
- Used for
75+
- Production where region failure is acceptable risk
76+
77+
- **Multiple Instances & Multiple Regions**
78+
- Most complex
79+
- Highest cost
80+
- Highest level of redundancy
81+
- Consider all pieces of system
82+
- Instances
83+
- Databases
84+
- S3 buckets
85+
86+
### Multi-region: Do you need it?
87+
88+
- [AWS History Outages](https://awsmaniac.com/aws-outages/)
89+
90+
#### When Multi-region?
91+
92+
- Failover
93+
- Transition load to alternate region during regional system failures
94+
- Latency
95+
- Process and serve non-static data closer to source
96+
- Compliance
97+
- Data and services located in certain region to address restrictions
98+
99+
## AWS Networking Services Overview
100+
101+
### VPC
102+
103+
- Logically isolated piece of the AWS cloud
104+
- Foundation for EC2 (compute) instances
105+
- Subnets
106+
- IP address range for instances
107+
- Access control to and from instances
108+
109+
#### VPC Architecture
110+
111+
- VPC belongs to a region
112+
- Spans all availability zones
113+
- Multiple VPCs per region
114+
- VPCs contain subnets
115+
- Subnets are in a single availability zone
116+
- EC2 instances launched into subnets
117+
118+
#### Default VPC
119+
120+
- Created with AWS account
121+
- Each region has a default VPC
122+
- Subnet in each AZ
123+
- Ready to launch instances
124+
- Use for simple applications
125+
- Modify default or build additional VPCs
126+
127+
#### Network Infrastructure
128+
129+
- Redundant high-bandwidth connections
130+
- Private AWS network
131+
- Pulic Internet
132+
- Amazon global network backbone
133+
- Region-to-region connection
134+
- EC2 network speed varies by instance type
135+
136+
### IP Adresses
137+
138+
#### Internal IP Addresses
139+
140+
- IPv4 address range required for VPC
141+
- Classless Inter-Domain Routing (CIDR) block
142+
- Subnet CIDR Block
143+
- Subset of VPC CIDR
144+
- Subnets cannot overlap
145+
- Ensure enough capacity
146+
- Instance Address
147+
- Determined by subnet CIDR
148+
149+
- CIDR Blocks - Allowed block size between /16 and /28
150+
- `10.0.0.0/16` - 65.536 possible addresses (10.0.0.0 - 10.0.255.255)
151+
- `10.0.0.0/28` - 16 possible addresses (10.0.0.0 - 10.0.0.15)
152+
- Subnet block - AWS reserves first 4 and last address of each subnet block
153+
154+
#### External IP Addresses
155+
156+
- Must specify if want public IP
157+
- Instance creation
158+
- Assigned by AWS
159+
- Will change when stop and start instance
160+
- Elastic IP
161+
- Stays assigned
162+
- Better for long term instances
163+
- Can be re-assigned
164+
165+
### Ingress and Egress
166+
167+
- Security groups determine allowed traffic to / from instances by port, protocol, source, and destination
168+
- Network access control lists (NACL) specify allow / deny rules for traffic in and out of a subnet
169+
- VPCs can be peered to allow traffic between VPCs including different regions and AWS accounts - like being on same network
170+
- VPCs can be accessed via virtual private network (VPN)
171+
- Route tables to control traffic in / out of subnets
172+
- Provide access to external internet with an internet gateway
173+
- Use NAT gateway to provide external internet access for _private_ subnets
174+
175+
### VPC Design Patterns
176+
177+
#### Internet-accessible VPC
178+
179+
- VPC with public subnet
180+
- All instances accessed via internet
181+
- Internet gateway
182+
- Router
183+
- Public IP addresses
184+
- Instance protection
185+
- Security Group
186+
- Network ACL
187+
188+
#### VPC with Public and Private Subnets
189+
190+
- Private subnet ingress only from public subnet
191+
- Bastion / jump box
192+
- Internal IP address
193+
- Private instance protection
194+
- Routes
195+
- No public IP address
196+
- Private subnet internet access via NAT gateway
197+
- Maintenance, patches
198+
199+
#### VPC with Public and Private Subnets with VPN connection
200+
201+
- Additional access to private subnet via VPN
202+
- Customer gateway
203+
- VPN connection
204+
- Use internal IP address
205+
- Convenient
206+
- No Bastion needed
207+
- Extension of data center
208+
209+
### Elastic Load Balancing
210+
211+
### Route 53 (DNS)
212+
213+
### API Gateway
214+
215+
### CloudFront (CDN)
216+
217+
### Direct Connect
218+
219+
### Private Link
289 KB
Loading
54.9 KB
Loading
253 KB
Loading
137 KB
Loading
246 KB
Loading
210 KB
Loading
55.6 KB
Loading

0 commit comments

Comments
 (0)