AWS Architecture Flashcards
AWS Well-Architected Framework
Helps customers assess and improve their architectures while getting a better understanding of how their design decisions impact their business
Five pillars of the AWS Well-Architected Framework:
- Security
- Reliability
- Performance efficiency
- Cost Optimization
- Operational excellence
Security
- A pillar of the AWS Well-Architected Framework
- Encompasses the ability to protect your information systems and assets while delivering business value through risk assessments and mitigation strategies
Five areas of cloud security:
- Identity and access management (IAM)
- Detective controls
- Infrastructure protection
- Data protection
- Incident response
Identity and access management (IAM)
- An area of ‘cloud security’
- Ensures only authorized and authenticated users are able to access your resources, and only in the manner you intend for them to use such resources
Detective controls
- An area of ‘cloud security’
- Used to identify potential security incidents by considering approaches such as capturing or analyzing logs and integrating auditing controls
Infrastructure protection
- An area of ‘cloud security’
- Ensures systems and services within your architecture are protected against unintended and unauthorized users
- Users can create network boundaries, users/keys/access levels, application firewalls, gateways, etc.
Data protection
- An area of ‘cloud security’ in which numerous approaches and methods are to consider — including data classification, encryption, data backup, etc.
Incident response
- An area of ‘cloud security’
- Involves the process to respond to and mitigate potential security threats
- Ensures your architecture is updated to accommodate a timely investigation in recovery
‘Security’ design principles:
- Implement security at all layers
- Enable traceability
- Apply the principle of least privilege
- Focus on securing your system
- Automate security best practices
Implementing security at all layers
- A ‘security’ design principle
- Ensures you secure your infrastructure everywhere and at every layer
- In a physical data center, security is typically only considered at the perimeter — AWS enables you to implement security at the perimeter as well as within and between your resources; which ensures your environment and components are secured from each other
Enabling traceability
A ‘security’ design principle that’s done through logging and auditing all actions or changes to your environment
Applying the principle of least privilege
- A ‘security’ design principle
- Ensures that authorization in your environment is appropriate and that you are implementing strong logical access controls to your resources
Securing your system
- A ‘security’ design principle
- Has you focus on securing your application data and operating systems while AWS provides a secure infrastructure and services
Automating security best practices
- A ‘security’ design principle
- Includes software-based security mechanisms — which are there to improve your ability to securely scale more rapidly and cost-effective
- Best practice is to automate the response to both routine and anomalous security events
- Example — creating and saving a patched, hardened image of a virtual server so that you can use that same image to create a new instance
Reliability
- A pillar of the AWS Well-Architected Framework
- Encompasses the ability of a system to recover from infrastructure or service failures
- Focuses on the ability to dynamically acquire computing resources to meet demand and mitigate disruptions
Three areas that ‘reliability in the cloud’ is composed of:
- Foundations
- Change management
- Failure management
Foundations
- An area that ‘reliability in the cloud’ is composed of
- Your architecture and system must have a well-planned structure so it can handle changes in demand or with requirements and detect failure and automatically heal itself
- Before architecting any infrastructure, it’s critical to look at its structure before construction of the infrastructure
Change management
- An area that ‘reliability in the cloud’ is composed of
- Fully understanding and being aware of how change affects your system
- Proactively planning and monitoring how your system will accommodate for quick adjustments to change and reliability
Failure management
- An area that ‘reliability in the cloud’ is composed of
- Anticipating, becoming aware, responding, and preventing failures
- Ability to take advantage of automation with monitoring, replacing systems in your environment, and later troubleshooting failed systems at a low cost; all while still being reliable
‘Reliability’ design principles:
- Test recovery procedures
- Automatically recover
- Scale horizontally
- Stop guessing capacity
- Manage change in automation
Testing recovery procedures
- A ‘reliability’ design principle
- The ability to test how systems fail and validate recovery procedures
- Users can simulate and expose different failures and react before real failure occurs
Automatically recover
- A ‘reliability’ design principle
- Users are able to trigger automated responses when thresholds are breached
- Makes it possible to anticipate and remediate failures before they occur
Scaling horizontally
- A ‘reliability’ design principle
- All about increasing aggregate system availability
- If you have one large resource, it’s beneficial to replace that large resource with multiple small resources to reduce impact of a single point of failure on the overall system
Stop guessing capacity
- A ‘reliability’ design principle
- The ability to monitor demand, system utilization, and automate the addition or removal of resources
- Ensures you have the optimal level to satisfy demand without over or under-provisioning
Managing change in automation
- A ‘reliability’ design principle
- Changes to architecture and infrastructure should be done via automation — this way, you’re only needing to manage changes to your automation and not every system or resource
Performance efficiency
- A pillar of the AWS Well-Architected Framework
- The ability to use computing resources efficiently to meet system requirements, and to maintain that efficiency as demand changes and technologies evolve