{"id":20568,"date":"2021-03-21T14:19:53","date_gmt":"2021-03-21T14:19:53","guid":{"rendered":"http:\/\/www.devopsschool.com\/blog\/?p=20568"},"modified":"2021-10-28T10:13:24","modified_gmt":"2021-10-28T10:13:24","slug":"aws-lab-exercise-vpc-virtual-private-cloud-assignment","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/aws-lab-exercise-vpc-virtual-private-cloud-assignment\/","title":{"rendered":"AWS Lab &#038; Exercise: VPC &#8211; Virtual Private Cloud Assignment"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Problem Statement:<\/h2>\n\n\n\n<p>Create a VPC. put 4 subnets into it with 2 private and 2 public in 2 different availability zones add 2 routing tables, 1 public and 1 private and assign to respective subnets. create internet gateway and attach it to public subnet. create NAT gateway attach it to private subnet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Solution:<\/h2>\n\n\n\n<p>VPC &#8211; Virtual Private Cloud CIDR block &#8211; Classless Inter-Domain Routing -&gt; to specify your VPC&#8217;s contiguous IP address range -&gt;for example 10.0.0.0\/26 means 2^(32-26) = 2^6 =64,that means we have 64 ip addresses ranging from 10.0.0.0 to 10.0.0.63 -&gt;cannot create VPC larger than 10.0.0.0\/16.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">\nsubnet<span class=\"hljs-number\">-1<\/span>: name: <span class=\"hljs-keyword\">private<\/span>-a vpc: vpcid availability zone: us-west<span class=\"hljs-number\">-1<\/span>a CIDR block: <span class=\"hljs-number\">10.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>\/<span class=\"hljs-number\">28<\/span>\n\nsubnet<span class=\"hljs-number\">-2<\/span>: name: <span class=\"hljs-keyword\">private<\/span>-c vpc: vpcid availability zone: us-west<span class=\"hljs-number\">-1<\/span>c CIDR block: <span class=\"hljs-number\">10.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.16<\/span>\/<span class=\"hljs-number\">28<\/span>\n\nsubnet<span class=\"hljs-number\">-3<\/span>: name: <span class=\"hljs-keyword\">public<\/span>-a vpc: vpcid availability zone: us-west<span class=\"hljs-number\">-1<\/span>a CIDR block: <span class=\"hljs-number\">10.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.32<\/span>\/<span class=\"hljs-number\">28<\/span>\n\nsubnet<span class=\"hljs-number\">-4<\/span>: name: <span class=\"hljs-keyword\">public<\/span>-c vpc: vpcid availability zone: us-west<span class=\"hljs-number\">-1<\/span>c CIDR block: <span class=\"hljs-number\">10.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.48<\/span>\/<span class=\"hljs-number\">28<\/span>\n\nRoute Table: Every VPC has one <span class=\"hljs-keyword\">default<\/span> route table created which has main attribute <span class=\"hljs-keyword\">as<\/span> <span class=\"hljs-string\">\"YES\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\"><li>name default route table as public-RT -&gt; create a custom route table with name as private-RT -&gt;add private subnets to private-RT route table and public to public-RT -&gt;one subnet can be associated to only one route table<\/li><li>Internet Gateway: It a an entity which allows connectivity from our vpc to outside internet.<\/li><li>Add route to public-RT from 0.0.0.0\/0 to internetgateway-id,so that public subnet will have access to outside internet.<\/li><li>NAT Gateway: As private instances have no public ip,NAT gateway provides internet connection to private instances.<\/li><li>choose one public subnet and create a NAT gateway -&gt;go to private subnet and add route from 0.0.0.0\/0 to natgateway-id<\/li><\/ul>\n\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_48727\"><iframe loading=\"lazy\"  id=\"_ytid_40289\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_48727\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Problem Statement: Create a VPC. put 4 subnets into it with 2 private and 2 public in 2 different availability zones add 2 routing tables, 1 public and 1 private&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[5633],"tags":[],"class_list":["post-20568","post","type-post","status-publish","format-standard","hentry","category-aws"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=20568"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20568\/revisions"}],"predecessor-version":[{"id":24481,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20568\/revisions\/24481"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=20568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=20568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=20568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}