In previous article, we have discussed how important of a stable web application. Also, we recommend to store static assets in S3. If the object is frequently accessible, we may consider to use CloudFront. When it is suitable, we prefer to use DynamoDB due to the zero administration. Today, we will talk more about well-architected framework.
Even though RDS is not like DynamoDB that full managed by AWS, we can still outsource many things to AWS e.g. scaling, HA, database backups and so on. We can only focus on query construction and query optimization.
One of the most popular RDS brand is Aurora. It is a relational database delivered using service-oriented architectures. And it can drop-in compatible with MySQL 5.6 and compatible with PostgreSQL as well. In addition, Aurora is integrated with Amazon S3 for continuous backup.
To summarize the web-accessible content, we can follow the below points:
- Store static assets in Amazon S3.
- Serve frequently accessed assets from Amazon CloudFront.
- Store non-relational data in a NoSQL database such as Amazon DynamoDB.
- Store relational data in Amazon RDS.
General Design Principles
If we want to have a good architect design, please bear in mind the below things:
- Stop guessing capacity needs – scale up and down if possible.
- Test system at production scale – create a duplicate environment on demand.
- Lower the risk of architectural change – automate creation of test environments that emulate production configurations.
- Automate to make experimentation easier – track changes, audit impact, revert if necessary.
- Allow for evolutionary architectures.
AWS Well-Architected Framework
What we want is to enable customers to assess and improve the architectures. Let them better understand the business impact of design decisions.
If we can fulfill both security, reliability, performance efficiency and cost optimization requirement, then we can say the architecture is good enough.
In part 2, we have discussed the whole design mind of choosing where to store the web-accessible content. Also, we provide some guidelines to know what is good architecture.