Skip to content

Instantly share code, notes, and snippets.

@sbeliakou
Created May 11, 2017 09:37
Show Gist options
  • Save sbeliakou/7173d266254d781c117a2378ef486aef to your computer and use it in GitHub Desktop.
Save sbeliakou/7173d266254d781c117a2378ef486aef to your computer and use it in GitHub Desktop.

AWS self-study task

  1. Register your own account at https://aws.amazon.com (please note that you will have to attach your credit card to your account)

  2. Create manually base AWS infra which contains the following resources:

    • Create IAM Users and grant privileges: a SuperAdministrator: - "arn:aws:iam::aws:policy/AdministratorAccess" b Administrator: - { Effect: "Allow", Resource: "", NotAction: [ "aws-portal:", "iam:CreateUser", "iam:DeleteUser"]} c Developer: - "arn:aws:iam::aws:policy/AmazonRoute53DomainsFullAccess" - "arn:aws:iam::aws:policy/AmazonSQSFullAccess" - "arn:aws:iam::aws:policy/AWSCertificateManagerFullAccess" - "arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess" - "arn:aws:iam::aws:policy/CloudFrontFullAccess" - "arn:aws:iam::aws:policy/CloudWatchFullAccess" - "arn:aws:iam::aws:policy/IAMReadOnlyAccess" - "arn:aws:iam::aws:policy/AmazonAPIGatewayAdministrator" - "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess" - "arn:aws:iam::aws:policy/AmazonEC2FullAccess"

    • Create resources stack which consists of: - two EC2 instances distributed across Availability Zones; - S3 bucket; - Create IAM Instance Profile and assign it to EC2 instances (allow access to created S3 bucket) - two Elastic IP (attached to each instance); - custom security group attached to every instance; - EBS volumes any size attached as root device (of type magnetic); - Elastic Load Balancer for instances created (ELB port 80 to instance port 80); - install Apache httpd on both servers and customize its welcome page on each server to contain hostname - check and ensure ELB works as expected.

    • Modify configuration in the following way: - make instances autoscaled - for this stop existing static servers and instead create Launch Configuration and Auto Scaling Group (no Elastic IPs needed this time); - place some files into S3 bucket from task 1 and make sure you are able to access these files from your EC2 instances - add Apache httpd installation to User Data section of Launch Configuration;

    • Create stack consists of: - VPC; - Internet Gateway; - Nat Gateway; - three Private and three public Subnets; - Public Route Table and Public Route; - Private Route Table and Private Route;

    Notes: instance type should be t1.micro or t2.micro, AMI - official CentOS 6/7 image(s).

  3. Create the same stack (ELB/EC2) using terraform

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment