Skip to content

Instantly share code, notes, and snippets.

@sbeliakou
Created May 11, 2017 09:50
Show Gist options
  • Save sbeliakou/bd09744adc3250f2f2cd08b589885272 to your computer and use it in GitHub Desktop.
Save sbeliakou/bd09744adc3250f2f2cd08b589885272 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:

      • SuperAdministrator:
        • "arn:aws:iam::aws:policy/AdministratorAccess"
      • Administrator:
        • { Effect: "Allow", Resource: "", NotAction: [ "aws-portal:", "iam:CreateUser", "iam:DeleteUser"]}
      • 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;

    Note: 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