AWS re:Invent 2018 - DAY 4

Today, there was also Keynote but it was a bit more technical than yesterday's one. I share the atmosphere / information of it and report one of sessions in DAY 4.

Keynote

img

The same as yesterday, DAY 4 started with Keynote featured by Dr. Werner Vogels, CTO at Amazon.com and several representatives. In advance of beginning the keynote session, the final match in AWS DeepRacer League 2018 Season which is the tournament just announced yesterday for hackers programming AWS DeepRacer was on air.

img

It was contested among 3 people; Mr. Grant, Mr. Rick, and Mr. Saketh. Time trial was conducted after their introduction.

img

As a result, Mr. Rick won the champion. Though AWS DeepRacer was just announced yesterday, it was fabulous that they all considered the good learning model and completed a full race. I congratulate all of them.

img

After the race, the keynote session started with Dr. Werner Vogels's talk.

img img img img

At the first half, the presentators including him described details of present services so we could hear about enthusiastic talks such as behind-the-scenes of the birth of Amazon Aurora, a background structure and culture of Amazon S3, and so on.

img img img img img

At the last half, continuing from yesterday, new services were announced. Ruby support for Lambda was excited for me because I usually use Ruby, I would get along with it.

  • AWS Lambda Layer
  • AWS Lambda Runtime API
  • Ruby support for Lambda
  • ALB support for Lambda
  • AWS Nested Applications using Serverless Application Repository
  • Step Functions service integrations
  • WebSocket support for API Gateway
  • Amazon Managed Streaming for Kafka
  • Amazon Redshift concurrency scaling
  • AWS toolkit for VScode, IntelliJ and yCharm
  • AWS Well-Architected Tools

Scaling Up to Your First 10 Million Users

img

This session presented by Ben Thurgood, Principal Solution Architect at AWS, talked about well-architected structures in a variety of cases.

img

First, he introduced Amazon Lightsail which is VPS service offers ease to construct our infrastructure. I have never used it but it may be useful if you are a newbie for AWS or the operations of the infrastructure are not complicated.

Note that, you can not operate elaborately in AWS Lightsail such as using your own VPC, setting IPs of Firewall, etc.

img

Next, we dived into main topic which was what we have to do when user count is greater than 1.

img img

He taught us have to use SQL server and it might be better to use Amazon Cognito for authentication as well.

img

Moreover, we really need to concern about Security, it is also better to use some services above.

img

When user count is greater than 1,000, we have to use Load Balancer (*1) and establish Master / Slave databases. Also, separating Availability Zone is better.

*1 It was said that Application Load Balancer (ALB) is better than Elastic Load Balancer (ELB) because ELB sometimes does not work well.

img

Both horizontally and vertically scale are fine for this number of user count.

img img

When user count is greater than 10,000, we have to scale out Web / APP servers horizontally and it might be better to introduce Read Replica databases.

img

In addition, we should use Amazon CloudFront / Amazon S3 on demand of large files or something.

img img

Nevertheless, if the performance is not enough, we have to use Amazon ElastiCache / Amazon DynamoDB for caches.

img

When user count is greater than 500,000, we have to establish an auto scale structure just in case of the spike access.

img img

At this stage, the infrastructure seems a bit complicated so we might need to use some management tools in AWS above.

img img img img img

In terms of the structure of the application, we should re-design it such as SOA, Microservices and have to think about using several AWS services for that. (Loose coupling - Amazon SQS and Amazon SNS, Event-driven - AWS Lambda)

img img

In addition, if we need to examine the performance, AWS X-Ray would help us to identify bottlenecks.

img img

When user count is greater than 1,000,000, it is required some bit of all the previous things including under consideration.

img

When user count is greater than 5,000,000, we might need to introduce Federation / Sharding structure and move functionalities to other types of DBs (NoSQL, Graph).

img

When user count is greater than 10,000,000, we need to re-consider to go from multi-AZ to multi-region.

Related Blogs