๐Ÿ“š AWS 1x1 - ๐—ฉ๐—ฃ๐—– & ๐—ก๐—ฒ๐˜๐˜„๐—ผ๐—ฟ๐—ธ๐—ถ๐—ป๐—ด

Your logically isolated virtual network in the cloud.

From Security Groups, over Route Tables to VPC Peering โ†“
๐—ง๐—ต๐—ฟ๐—ฒ๐—ฎ๐—ฑ ๐—ข๐˜ƒ๐—ฒ๐—ฟ๐˜ƒ๐—ถ๐—ฒ๐˜„ ๐Ÿงต

โ€ข VPCs & Subnets
โ€ข Route Tables
โ€ข Internet Gateway
โ€ข NAT Gateways & Instances
โ€ข Security Groups
โ€ข Network Access Control Lists
โ€ข VPC Peering

{ 1/14 }
Maybe you didn't know, but Amazon ๐—ฉirtual ๐—ฃrivate ๐—กetwork is the networking layer for EC2.

This virtual network imitates your local data center, but with all the benefits of the cloud's scalable infrastructure.

Knowing about VPC & networking is crucial.

{ 2/14 }
๐—ฉ๐—ฃ๐—–๐˜€ & ๐—ฆ๐˜‚๐—ฏ๐—ป๐—ฒ๐˜๐˜€

A VPC is a logically isolated network where you can launch resources like Lambda functions or EC2 instances into.

You can also:
โ€ข specify IP ranges
โ€ข add subnets
โ€ข associate security groups
โ€ข configure route tables

{ 3/14 }
For subnets, we separate ๐—ฝ๐˜‚๐—ฏ๐—น๐—ถ๐—ฐ & ๐—ฝ๐—ฟ๐—ถ๐˜ƒ๐—ฎ๐˜๐—ฒ subnets. Public subnets are for resources that need access to the internet - private subnets are for resources that only need internal access.

๐Ÿ’ก Some resources can only live in private subnets (e.g. ElastiCache)

{ 4/14 }
Resources in each subnet can be protected with ๐—บ๐˜‚๐—น๐˜๐—ถ๐—ฝ๐—น๐—ฒ ๐—น๐—ฎ๐˜†๐—ฒ๐—ฟ๐˜€ ๐—ผ๐—ณ ๐˜€๐—ฒ๐—ฐ๐˜‚๐—ฟ๐—ถ๐˜๐˜†.

For example:
โ€ข ๐—ฆecurity ๐—šroups (SGs)
โ€ข Network ๐—”ccess ๐—–ontrol ๐—Ÿists (ACLs)

๐Ÿ’ก Your AWS account (created after the end of 2013) comes with a ๐—ฑ๐—ฒ๐—ณ๐—ฎ๐˜‚๐—น๐˜ VPC!

{ 5/14 }
๐—ฅ๐—ผ๐˜‚๐˜๐—ฒ ๐—ง๐—ฎ๐—ฏ๐—น๐—ฒ๐˜€

Traffic inside your VPC needs direction. That's what Route Tables are for.

Those are sets of rules which you can associate with a subnet. Each Route Table needs a ๐—ฑ๐—ฒ๐˜€๐˜๐—ถ๐—ป๐—ฎ๐˜๐—ถ๐—ผ๐—ป and ๐˜๐—ฎ๐—ฟ๐—ด๐—ฒ๐˜ which defines how traffic is routed.

{ 6/14 }
The ๐—ฑ๐—ฒ๐˜€๐˜๐—ถ๐—ป๐—ฎ๐˜๐—ถ๐—ผ๐—ป is a set of IP addresses to where you want to direct your traffic, defined as a Classless Inter-Domain Routing (CIDR) block.

The ๐˜๐—ฎ๐—ฟ๐—ด๐—ฒ๐˜ is either a gateway, network interface, or connection that your subnet should send the traffic to.

{ 7/14 }
If you didn't assign your own route table to a subnet, is implicitly assigned to the ๐—บ๐—ฎ๐—ถ๐—ป ๐—ฟ๐—ผ๐˜‚๐˜๐—ฒ ๐˜๐—ฎ๐—ฏ๐—น๐—ฒ.

There are a lot more key concepts to know for route tables that are well-documented at AWS.

docs.aws.amazon.com/vpc/latest/useโ€ฆ

{ 8/14 }
Some more facts about the default VPC:

โ€ข it comes with an internet gateway
โ€ข the default subnet is ๐—ฝ๐˜‚๐—ฏ๐—น๐—ถ๐—ฐ - resources there use the internet gateway for accessing the internet
โ€ข your default subnets resources have a private & public IPv4 address

{ 9/14 }
An internet gateway is not the only way of enabling access to the world

You can also use a ๐—กetwork ๐—”ddress ๐—งranslations (๐—ก๐—”๐—ง) device. It maps multiple of your private IPv4 addresses to a single public IPv4.

๐Ÿ’ก It also prevents unsolicited inbound connections.

{ 10/14 }
There are two different types of NAT devices at AWS:

โ€ข NAT ๐—š๐—ฎ๐˜๐—ฒ๐˜„๐—ฎ๐˜†* - an AWS managed gateway
โ€ข NAT ๐—œ๐—ป๐˜€๐˜๐—ฎ๐—ป๐—ฐ๐—ฒ - your own NAT device, running on an EC2 instance

* You're paying for each running ๐—ต๐—ผ๐˜‚๐—ฟ & ๐—ฒ๐—ฎ๐—ฐ๐—ต ๐—š๐—• ๐—ผ๐—ณ ๐—ฑ๐—ฎ๐˜๐—ฎ that is processed!

{ 11/14 }
๐—ฆ๐—ฒ๐—ฐ๐˜‚๐—ฟ๐—ถ๐˜๐˜† ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ๐˜€ (SGs)

SGs define ๐—ฎ๐—น๐—น๐—ผ๐˜„ rules for your traffic - inbound or outbound. It enables traffic filtering based on protocols & port numbers.

๐Ÿ’ก Security Groups operate on instance level & are stateful. A must-know fact for exams.

{ 12/14 }
๐—ก๐—ฒ๐˜๐˜„๐—ผ๐—ฟ๐—ธ ๐—”๐—ฐ๐—ฐ๐—ฒ๐˜€๐˜€ ๐—–๐—ผ๐—ป๐˜๐—ฟ๐—ผ๐—น ๐—Ÿ๐—ถ๐˜€๐˜๐˜€ (ACLs)

ACLs define ๐—ฎ๐—น๐—น๐—ผ๐˜„ and/or ๐—ฑ๐—ฒ๐—ป๐˜† rules. Evaluation starts with the lowest rule number - the first match is used.

๐Ÿ’ก ACLs are stateless => return traffic must be ๐—ฒ๐˜…๐—ฝ๐—น๐—ถ๐—ฐ๐—ถ๐˜๐—น๐˜† allowed by rules.

{ 13/14 }
๐—ฉ๐—ฃ๐—– ๐—ฃ๐—ฒ๐—ฒ๐—ฟ๐—ถ๐—ป๐—ด

Peering connections allow you to route traffic between two VPCs as if they were in the same VPC. It also allows you to not only connect to VPCs in other regions but also in other AWS accounts.

๐Ÿ’ก CIDR blocks for your VPCs can't overlap!

{ 14/14 }
VPC & networking are huge topics and this was just an introduction to some important parts ๐Ÿ‘‹
Learn more by exploring the docs and more important by getting hands-on practice! ๐Ÿ‘จโ€๐Ÿ’ป

Retweet & like the initial post if you enjoyed reading this & follow me for more cloud content ๐ŸŒค

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with Tobias Schmidt

Tobias Schmidt Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @tpschmidt_

4 Nov
๐Ÿ“š AWS 1x1 - ๐— ๐—ผ๐—ป๐—ถ๐˜๐—ผ๐—ฟ๐—ถ๐—ป๐—ด & ๐—”๐˜‚๐—ฑ๐—ถ๐˜๐—ถ๐—ป๐—ด ๐—Ÿ๐—ฎ๐—บ๐—ฏ๐—ฑ๐—ฎ

There's a lot that comes out of the box to gain insights into how well your serverless app is performing

A quick overview to get you started โ†“
1๏ธโƒฃ Amazon CloudWatch

CloudWatch automatically monitors your functions on your behalf. It reports a lot of useful metrics:

โ€ข number of invocations
โ€ข execution durations
โ€ข occurred errors
โ€ข function throttles

Everything is exposed on a function level!
2๏ธโƒฃ Amazon CloudTrail

CloudTrail offers you governance, compliance & auditing features for several services, including Lambda.
It enables you to log all (encryption supported!) actions taken regarding your infrastructure, regardless if it's via the console UI or AWS SDK!
Read 6 tweets
3 Nov
๐Ÿ“š ๐—”๐—ช๐—ฆ ๐Ÿญ๐˜…๐Ÿญ - ๐—ฆ๐—ค๐—ฆ

Your fully managed message queue service & a serverless fan's best friend.

From queue types, over visibility timeouts to message groups โ†“
๐—ง๐—ต๐—ฟ๐—ฒ๐—ฎ๐—ฑ ๐—ข๐˜ƒ๐—ฒ๐—ฟ๐˜ƒ๐—ถ๐—ฒ๐˜„ ๐Ÿงต

โ€ข Introduction
โ€ข Importance of Messaging Systems
โ€ข Fundamentals
โ€ข Queue Types
โ€ข Visibility Timeouts
โ€ข Retention Periods
โ€ข Limitations

{ 1/22 }
๐—œ๐—ป๐˜๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜๐—ถ๐—ผ๐—ป

Believe it or not: SQS was the ๐—ณ๐—ถ๐—ฟ๐˜€๐˜ publicly launched service by AWS!

Quoting Jeff Bar:
"We launched the Simple Queue Service in ๐—น๐—ฎ๐˜๐—ฒ ๐Ÿฎ๐Ÿฌ๐Ÿฌ๐Ÿฐ, Amazon S3 in early 2006, and Amazon EC2 later that summer."

jeff-barr.com/2014/08/19/my-โ€ฆ

{ 2/22 }
Read 24 tweets
2 Nov
Thanks for all your interest in my AWS 1x1 threads! ๐Ÿ“š ๐Ÿ‘‹

The good news: ๐˜๐—ต๐—ฒ๐—ฟ๐—ฒ'๐˜€ ๐—ฎ ๐—น๐—ผ๐˜ ๐—บ๐—ผ๐—ฟ๐—ฒ ๐—ถ๐—ป ๐˜๐—ต๐—ฒ ๐—ฝ๐—ถ๐—ฝ๐—ฒ๐—น๐—ถ๐—ป๐—ฒ!
... also for Azure ๐Ÿ’™

Didn't see the previous ones yet?
๐—Ÿ๐—ถ๐—ป๐—ธ๐˜€ ๐˜๐—ผ ๐—ฎ๐—น๐—น ๐—บ๐˜† ๐—ฟ๐—ฒ๐—ฐ๐—ฒ๐—ป๐˜ ๐—ฝ๐—ผ๐˜€๐˜๐˜€ ๐—ฎ๐—ฟ๐—ฒ ๐—ฏ๐—ฒ๐—น๐—ผ๐˜„ โ†“
1๏ธโƒฃ ๐—›๐—ผ๐˜„ ๐˜๐—ผ ๐—ด๐—ฒ๐˜ ๐˜€๐˜๐—ฎ๐—ฟ๐˜๐—ฒ๐—ฑ ๐˜„๐—ถ๐˜๐—ต ๐—”๐—ช๐—ฆ

2๏ธโƒฃ ๐—ก๐—ผ๐˜ ๐—ณ๐—ฒ๐—ฎ๐—ฟ๐—ถ๐—ป๐—ด ๐—–๐—ผ๐˜€๐˜๐˜€ ๐—ผ๐—ณ ๐˜๐—ต๐—ฒ ๐—–๐—น๐—ผ๐˜‚๐—ฑ

Read 7 tweets
27 Oct
๐Ÿ“š AWS 1x1: ๐—ช๐—ต๐—ฎ๐˜ ๐—ฎ๐—ฟ๐—ฒ ๐—Ÿ๐—ฎ๐—บ๐—ฏ๐—ฑ๐—ฎ ๐˜๐—ฟ๐—ถ๐—ด๐—ด๐—ฒ๐—ฟ๐˜€?

For a function to execute, an event must occur.
Most know about API Gateway for REST services as an event source.

But a lot more AWS resources can trigger your Lambda โ†“
Almost anything that happens within your AWS account is an event.

โ€ข writing a record to DynamoDB
โ€ข uploading a file to S3
โ€ข queuing a message in SQS
โ€ข a viewer request to your CloudFront distribution

All of those events can be used to trigger a Lambda function.

{ 1/12 }
There are two different kinds of invocation types: ๐˜€๐˜†๐—ป๐—ฐ๐—ต๐—ฟ๐—ผ๐—ป๐—ผ๐˜‚๐˜€ & ๐—ฎ๐˜€๐˜†๐—ป๐—ฐ๐—ต๐—ฟ๐—ผ๐—ป๐—ผ๐˜‚๐˜€

Synchronous event sources need to wait for your Lambda function to return a response.
Asynchronous don't.

If invoking functions via the SDK, this can be specified!

{ 2/12 }
Read 14 tweets
26 Oct
๐Ÿ“š Cloud 1x1 - ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ๐—น๐—ฒ๐˜€๐˜€ ๐—”๐—ฟ๐—ฐ๐—ต๐—ถ๐˜๐—ฒ๐—ฐ๐˜๐˜‚๐—ฟ๐—ฎ๐—น ๐—ฃ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐—ป๐˜€

You don't need to re-invent the wheel.
You can rely on field-tested patterns.

Let's explore some common ones โ†“
๐—ฃ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐—ป ๐—ข๐˜ƒ๐—ฒ๐—ฟ๐˜ƒ๐—ถ๐—ฒ๐˜„

โ€ข Fan-in & Fan-out
โ€ข Simple Web Service
โ€ข Publish/Subscribe
โ€ข Strangler
โ€ข Aggregator

{ 1/7 }
๐—™๐—ฎ๐—ป-๐—ถ๐—ป & ๐—™๐—ฎ๐—ป-๐—ผ๐˜‚๐˜

Common problem: large tasks that are exceeding Lambda's execution time limit
With Fan-out, you're splitting those large tasks into small ones and delegating those to Lambda workers.
Afterward, results are aggregated (= Fan-in).

{ 2/7 }
Read 11 tweets
25 Oct
๐—Ÿ๐—ฒ๐˜'๐˜€ ๐—ฏ๐—ฒ ๐—ต๐—ผ๐—ป๐—ฒ๐˜€๐˜: generally, debugging is not a fun task ๐Ÿคข

Especially for serverless, event-driven & distributed systems.

From Lambda's logging basics to ๐˜€๐—ฎ๐˜ƒ๐—ถ๐—ป๐—ด ๐˜๐—ถ๐—บ๐—ฒ & ๐—ป๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐˜€ โ†“
Lambda's a serverless technology provided by AWS.
But that ๐—ฑ๐—ผ๐—ฒ๐˜€๐—ป'๐˜ ๐—บ๐—ฒ๐—ฎ๐—ป that there are no servers.

In the background, there are countless micro-containers running on top of the traditional servers.

Where do all the logs of those containers go to?
By default, they will end up in CloudWatch.
Every Lambda will receive its own ๐—น๐—ผ๐—ด ๐—ด๐—ฟ๐—ผ๐˜‚๐—ฝ.
Like a repository for logs.

Not only that, every micro-container will create a new so-called ๐—น๐—ผ๐—ด ๐˜€๐˜๐—ฟ๐—ฒ๐—ฎ๐—บ.
Think of it as a text file where logs are written to.
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(