One of the most powerful parts of AWS, CloudFormation allows you to take what was once traditional hardware infrastructure and convert it into code.
CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.
You don't need to figure our the order for provisioning AWS services or the subtleties of making those dependencies work. CloudFormation takes care of this for you.
After the AWS resources are deployed, you can modify and update them in a controlled and predictable way, in effect applying version control to your AWS infrastructure the same way you do with your software.
CloudFormation Stack vs. Template
A CloudFormation Template is essentially an architectural diagram and a CloudFormation Stack is the end result of that diagram (i.e. what is actually provisioned).
You create, update, and delete a collection of resources by creating, updating, and deleting stacks using CloudFormation templates.
CloudFormation templates are in the JSON format or YAML.
Elements of A Template
Mandatory Elements
- List of AWS Resources and their associated configuration values
Optional Elements
- The template's file format & version number
- Template Parameters
: The input values that are supplied at stack creation time. Limit of 60
- Output Values
: The output values required once a stack has finished building (such as the public IP address, ELB address, etc.) Limit of 60.
- List of data tables
: Used to look up static configuration values such AMI's etc.
Outputting Data
- You can use Fn:GetAtt to output data
Exam Tips
- By default, the "automatic rollback on error" feature is enabled
- You are charged for errors
- CloudFormation is free
- Stacks can wait for applications to be provisioned using the "WaitCondition"
- You can use Fn:GetAtt to output data
- Route53 is completely supported. This includes creating new hosted zones or updating existing ones.
- You can create A Records, Aliases etc.
- IAM Role Creation and Assignment is also supported.
1~2 questions in Exam
===========================
Cloud Formation Quiz
- The default scripting language for CloudFormation is : JSON
- Cloud Formation itself is free, however the resources it provisions will be charged at the usual rates. : True
- What happens if Cloud Formation encounters an error by default?
: It will terminate and rollback all resources created on failure
- You are creating a virtual data center using cloud formation and you need to output the DNS name of your load balancer. What command would you use to achieve this?
: FN::GetAtt
- What language are cloud formation templates written in? : JSON
======================================
===========================
Shared Responsibility Model Quiz
- You are required to patch OS and Applications in RDS? : False
- In the shared responsibility model, what is AWS's responsibility?
: Restricting access to the data centers, proper destruction of decommissioned disks, patching of firmware for the hardware on which your AWS resources reside
================================
DNS
What is DNS?
If you've used the internet, you've used DNS. DNS is used to convert human friendly domain names (such as http://acloud.guru) into an Internet Protocol (IP) address (such as http://82.124.53.1).
IP addresses are used by computers to identify each other on the network. IP addresses commonly come in 2 different forms, IPv4 and IPv6.
IPv4 vs. IPv6
The IPv4 space is a 32 bit field and has over 4 billion different addresses (4,294,967,296 to be precise).
IPv6 was created to solve this depletion issue and has an address space of 128 bits which in theory is
340,282,366,920,938,463,463,374,607,431,768,211,456 addresses or 340 undecillion addresses
Top Level Domains
If we look at common domain names such as google.com, bbc.co.uk. acloud,guru etc. you will notice a string of characters separated by dots (periods). The last word in a domain name represents the "top level domain". The second word in a domain name is known as a second level domain name (this is optional though and depends on the domain name).
.com, .edu, .gov, .co.uk, .gov.uk, .com.au
These top level domain names are controlled by the Internet Assigned Numbers Authority (IANA) in a root zone database which is essentially a database of all available top level domains. You can view this database by visiting
http://www.iana.org/domains/root/db
Domain Registrars
Because all of the names in a given domain name have to be unique there needs to be a way to organize this all so that domain names aren't duplicated. This is where domain registrars come in. A registrar is an authority that can assign domain names directly under one or more top-level domains. These domains are registered with InterNIC, a service of ICANN, which enforces uniqueness of domain names across the Internet. Each domain name becomes registered in a central database known as the WhoIS database.
Popular domain registrars include GoDaddy.com, 123-reg.co.uk etc.
SOA Records
The SOA record stores information about
- The name of the server that supplied the data for the zone.
- The administrator of the zone.
- The current version of the data file.
- The number of seconds a secondary name server should wait before checking for updates
- The number of seconds a secondary name server should wait before retrying a failed zone transfer
- The maximum number of seconds that a secondary name server can use data before it must either be refreshed or expire.
- The default number of seconds for the time-to-live file on resource records.
NS Records
NS stands for Name Server records and are used by Top Level Domain servers to direct traffic to the Content DNS server which contains the authoritative DNS records.
A Records
An 'A' record is the fundamental type of DNS record and the 'A' in A record stands for 'Address'. The A record is used by a computer to translate the name of the domain to the IP address. For example http://www.acloud.guru might point to http://123.10.10.80
TTL
The length that a DNS record is cached on either the Resolving Server or the users own local PC is equal to the value of the "Time To Live" (TTL) in seconds. The lower the time to live, the faster changes to DNS records take to propagate throughout the internet.
CNAMES
A Canonical Name (CName) can be used to resolve one domain name to another. For example, you may have a mobile website with the domain name http://m.acloud.guru that is used for when users browse to your domain name on their mobile devices. You may also want the name http://mobile.acloud.guru to resolve to this same address.
Alias Records
Alias records are used to map resource record sets in your hosted zone to Elastic Load Balancers, CloudFront distributions, or S3 buckets that are configured as websites.
Alias records work like a CNAME record in that you can map one DNS name (www.example.com) to another 'target' DNS name (elb1234.elb.amazonaws.com).
Key difference - A CNAME can't be used for naked domain names (zone apex record). You can't have a CNAME for http://acloud.guru, it must be either an A record or an Alias.
Alias resource record sets can save you time because Amazon Route 53 automatically recognizes changes in the record sets that the alias resource record set refers to.
For example, suppose an alias resource record set for example.com points to an ELB load balancer at lb1-1234.us-east-1.elb.amazonaws.com. If the IP address of the load balancer changes, Amazon Route 53 will automatically reflect those changes in DNS answers for example.com without any changes to the hosted zone that contains resource record sets for example.com.
Exam Tips
- ELB's do not have pre-defined IPv4 addresses, you resolve to them using a DNS name.
- Understand the difference between an Alias Record and a CNAME.
- Given the choice, always choose an Alias Record over a CNAME
'IoT > AWS Certificate' 카테고리의 다른 글
AWS Cloud Practitioner Essentials (Digital) (Korean) - 01 (0) | 2019.12.29 |
---|---|
AWS Certified developer associate exam samples 2 (0) | 2018.02.15 |
AWS Certified developer associate exam samples (2) | 2018.01.26 |
[AWS Certificate] Developer - VPC memo (1) | 2017.11.29 |
[AWS Certificate] Developer - Route53 memo (0) | 2017.11.25 |
[AWS Certificate] Developer - SNS, SWF and Elastic Beanstalk (0) | 2017.11.17 |
[AWS Certificate] Developer - SQS (Simple Queue Service) (0) | 2017.11.16 |
[AWS Certificate] Developer - DynamoDB Summary & Quiz (0) | 2017.11.15 |
[AWS Certificate] Developer - DynamoDB memo (0) | 2017.11.14 |
[AWS Certificate] Developer - Databases Overview & Concepts (0) | 2017.11.08 |