an insight into sesromania.amazon.com/academy/pdf/day3_1.pdfdeveloping on top of aws an insight into...

77
Developing on top of AWS An insight into SES Iulian Tanasescu Vlad

Upload: others

Post on 04-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

Developing on top of AWS

An insight into SES

Iulian Tanasescu Vlad

Page 2: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

Simple Email Service

Page 3: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -
Page 4: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -
Page 5: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -
Page 6: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

a brief context

Page 7: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

ARPANET - 1971

Page 8: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

RFC 561 Standardizing Mail Headers

RFC 680 Transmission Protocol

RFC 724 Official Standard for the format of ARPA Network Messages

RFC 733 Standard for the format of ARPA Network Text Messages

Page 9: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

working system - 1977

Page 10: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

email message format RFC 5322

Page 11: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

MIME content

RFC 2045 - 2049

Page 12: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

SMTP

RFC 5321

Page 13: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

extension for i18n

RFC 6531

Page 14: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

extension for DSN

RFC 3461

Page 15: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

extension for feedback

RFC 5965

Page 16: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

DKIM Signature

RFC 6376

Page 17: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

Client Server Establish connection 220 EHLO <hostname> 250 MAIL FROM: <sender> 250 RCPT TO: <dest1> 250 RCPT TO: <dest2> 250 DATA 354 From: <from> To: <dest1> Subject: Example This is an example . 250

Page 18: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -
Page 19: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

high rps

Page 20: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

low latency

Page 21: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

upto 10MB emails

Page 22: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

high availability

Page 23: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

impersonation

Page 24: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

shared IP space

Page 25: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

deliverability

Page 26: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

0.10 USD / 1000 emails

Page 27: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

2000 emails / day free from EC2

Page 28: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

check sending limits

Page 29: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

check the sender

Page 30: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

check blacklist, formatting, headers and MIME types

Page 31: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

persist

Page 32: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

scan

Page 33: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

deliver

Page 34: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

meter

Page 35: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

handle feedback

Page 36: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -
Page 37: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

concurrency

welcome to Future

Page 38: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

public Boolean isUserAllowed(…)

public Future<Boolean> isUserAllowed(…)

Page 39: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

asynchronous

Page 40: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -
Page 41: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

DynamoDB

Page 42: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

tables

Page 43: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

items

Page 44: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

CreateTable

Page 45: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

PutItem

Page 46: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

GetItem

Page 47: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

UpdateItem

Page 48: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

DeleteItem

Page 49: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

Query

Page 50: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

Scan

Page 51: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

Simple Storage Service

a.k.a S3

Page 52: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

buckets

Page 53: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

objects

Page 54: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

key

Page 55: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

value

Page 56: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

version ID

Page 57: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

metadata

Page 58: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

access control

Page 59: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

CreateBucket

Page 60: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

ListBucket

Page 61: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

PutObject

Page 62: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

GetObject

Page 63: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

DeleteObject

Page 64: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

Simple Queue Service

Page 65: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

CreateQueue

Page 66: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

SendMessage

Page 67: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

ReceiveMessage

Page 68: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

DeleteMessage

Page 69: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

putting it all together

Page 70: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

SendEmail

Source

Destination

Message

(Return-Path)

(ReplyToAddresses)

Page 71: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

SendRawEmail

RawMessage

(Source)

(Destinations)

Page 72: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

SMTP interface

Page 73: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

+ control APIs http://docs.aws.amazon.com/ses/latest/APIReference/API_Operations.html

https://console.aws.amazon.com/ses/

Page 74: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -
Page 75: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

http://status.aws.amazon.com

Page 76: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -
Page 77: An insight into SESromania.amazon.com/academy/pdf/day3_1.pdfDeveloping on top of AWS An insight into SES Iulian Tanasescu Vlad . Simple Email Service . a brief context . ARPANET -

Q&A