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.
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.
It was contested among 3 people; Mr. Grant, Mr. Rick, and Mr. Saketh. Time trial was conducted after their introduction.
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.
After the race, the keynote session started with Dr. Werner Vogels's talk.
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.
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.
This session presented by Ben Thurgood, Principal Solution Architect at AWS, talked about well-architected structures in a variety of cases.
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.
Next, we dived into main topic which was what we have to do when user count is greater than 1.
He taught us have to use SQL server and it might be better to use Amazon Cognito for authentication as well.
Moreover, we really need to concern about Security, it is also better to use some services above.
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.
Both horizontally and vertically scale are fine for this number of user count.
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.
In addition, we should use Amazon CloudFront / Amazon S3 on demand of large files or something.
Nevertheless, if the performance is not enough, we have to use Amazon ElastiCache / Amazon DynamoDB for caches.
When user count is greater than 500,000, we have to establish an auto scale structure just in case of the spike access.
At this stage, the infrastructure seems a bit complicated so we might need to use some management tools in AWS above.
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)
In addition, if we need to examine the performance, AWS X-Ray would help us to identify bottlenecks.
When user count is greater than 1,000,000, it is required some bit of all the previous things including under consideration.
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).
When user count is greater than 10,000,000, we need to re-consider to go from multi-AZ to multi-region.
We’re a software design and development consultancy that builds custom web and mobile applications. For more detail, please refer to our Official Website .