{"id":7500,"date":"2018-06-01T19:26:15","date_gmt":"2018-06-01T11:26:15","guid":{"rendered":"http:\/\/rmohan.com\/?p=7500"},"modified":"2018-06-01T19:26:27","modified_gmt":"2018-06-01T11:26:27","slug":"aws-amazon-web-service-concepts","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=7500","title":{"rendered":"AWS &#8211; Amazon Web Service &#8211; Concepts"},"content":{"rendered":"<p>AWS : Amazon Web Services is a Cloud Service Provider, AKA &#8211; Infrastructure as a Service (IaaS).<br \/>\n&#8211; Storage, Computing Power, Databases, Networking, Analytics, Developer Tools, Virtualization, Security.<\/p>\n<p>Major Terminology\/Reason\/Advantages:<br \/>\n####################################<br \/>\n&#8211; High Availibility<br \/>\n&#8211; Fault Tolerance<br \/>\n&#8211; Scalability (automatically grow Dynamically)<br \/>\n&#8211; Elasticity (automatically srink Dtynamically)<\/p>\n<p>&#8211; Instance (Server)<\/p>\n<p>Services:<br \/>\n########<\/p>\n<p>VPCs: Virtual Private Cloud<br \/>\n*****************************<br \/>\nIt is your private section of AWS, where you can place AWS Resources, and allow\/restrict access to them.<\/p>\n<p>EC2 (compute power): Elastic Cloud Compute<br \/>\n*******************************************<br \/>\nIt is a virtual instance;\/sever\/computer that you can use for whatever you like.<br \/>\nex: common use, web host<\/p>\n<p>EC2- Part#2:<br \/>\n************<br \/>\nIt is good for any type of &#8220;processing&#8221; activity.<br \/>\nex: in netflix &#8211; video stream encoding and transacoding happens on the EC2 instance (stream loaded from S3)<\/p>\n<p>Amazon RDS:<br \/>\n***********<br \/>\nIt is AWS provisioned database service. Comonly used for things like storing customer account information and cataloging inventory.<\/p>\n<p>AWS S3:<br \/>\n*******<br \/>\nIt is massive\/long-term storage bucket<\/p>\n<p>&nbsp;<\/p>\n<p>AWS &#8211; Essentials:<\/p>\n<p>&nbsp;<\/p>\n<p>IAM: Identity &amp; Access Management<br \/>\n**********************************<br \/>\nIt is where you manage your AWS users and their access to AWS account and services.<\/p>\n<p>Common use:<br \/>\nUsers<br \/>\nGroup<br \/>\nIAM Access policies<br \/>\nRoles<\/p>\n<p>The user created when you created the AWS account is called the &#8220;root&#8221; user.<\/p>\n<p>By default, root user has FULL administrative rights and access to every part of AWS<\/p>\n<p>By default, any newly created user will have no access to any AWS service (except ability to login). permission must be given to grant the access.<\/p>\n<p>Best Practice: Security Status should be green for all configurations.<br \/>\n***********************************************************************<\/p>\n<p>Activate MFA: Multi Factor Authentication &#8211; Same as RSA Token (available virtual and hard fob)<br \/>\n***************************************************************************************<\/p>\n<p>Create individual IAM users:<br \/>\n*****************************<br \/>\n&#8211; As per best practice, we should be not using the root user in day to day job, including administrator<\/p>\n<p>User groups to assign permission:<br \/>\n*********************************<br \/>\n&#8211; Create custom group (we have admin)<\/p>\n<p>VPC &#8211; Virtual Private Clouds<br \/>\n****************************<\/p>\n<p>Global Infrastructure:<br \/>\n*********************<br \/>\nAWS Regions:<br \/>\nAvailibility Zones &#8211; Physical Data Centers (Multiple availibility zone &#8211; multiple backup &#8211; Redundency &#8211; HA Fault Tolerance)<\/p>\n<p>VPC Basics: when you create account with AWS by default VPC have been created, and includes following standard component:<br \/>\n************************************************************************************************************************<br \/>\n(1) Internet Gateway &#8211; VPC can have only one IGW, Once active AWS resource would be there then IGW can&#8217;t be detached.<br \/>\n&#8211; it is horizontally scaled, redundent and highly available VPC component<br \/>\n&#8211; Allow communication between instances in your VPC and the internet<\/p>\n<p>Rules\/Details for Interner Gateway:<br \/>\n&#8211; Only 1 IGW can be attached to a VPC at a time<br \/>\n&#8211; IGW can not be detached from VPC while there are active AWS resources in the VPC (such as EC2 instansaces, RDS databases, etc..)<\/p>\n<p>(2) A Route Table (with predefined routes to the default subnets)<br \/>\n&#8211; It contains set of rules, called routes, that are used to determine where network traffic is directed.<br \/>\n&#8211; Defulat VPC already has a &#8216;main&#8217; route table.<\/p>\n<p>Rules\/Details for Route Tables:<br \/>\n&#8211; Unlike an IGW, you can have multiple route tables in a VPC<br \/>\n&#8211; You can not delete a route table if it has dependencies (associate subnets)<\/p>\n<p>(3) A network access control list (NACL) (with predefined rules for access)<br \/>\n&#8211; it is an optional layer of security for VPC that act as firewall for controlling traffic in and out of one or more subnets.<\/p>\n<p>&#8211; Defulat VPC already has a NACL in place and associated with the default subnets.<\/p>\n<p>Rules\/Details for NACL:<br \/>\n&#8211; Rules are evaluated lowest to highest based on rule number.<br \/>\n&#8211; The first rule found that applies to the traffic type immediatly applied, regardless of any highest number of rule come after<br \/>\n&#8211; Default NACL allows all the traffic to the default subnets<br \/>\n&#8211; Any newly created NACL, deny all traffic by default<br \/>\n&#8211; A subnet can be only associated with ONE NACL at a time.<\/p>\n<p>(4) Subnet to provision AWS resources in (such as EC2 instances)<br \/>\n&#8211; it is like subnetworks, is sub-section of the network.<\/p>\n<p>Rules\/Details for subnets:<br \/>\n&#8211; it must be associated with Route table<br \/>\n&#8211; Public subnet has route to the internet<br \/>\n&#8211; Private subnet does not have a route to the internet<br \/>\n&#8211; A subnet is located in specific availibility zone.<\/p>\n<p>Simple Storage Service (S3)<br \/>\n***************************<br \/>\n&#8211; An online, bulk storage service that you can access from almost any device<\/p>\n<p>&#8211; It has simple webservice interface that you can use to store and retrive any amount of data, at any time, from anywhere on the web.<br \/>\nit gives any user access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that amazon uses to run<br \/>\nits own globle network of websites. the service aim to maximize benefits of scale and to pass those benefis to users.<\/p>\n<p>&#8211; Default 5 GB of storage free<\/p>\n<p>(1) S3 Storage Classes:<br \/>\nThese classes are defined based on object\/file availability ( and the durability (corrupt\/lost)<\/p>\n<p>Standard: Default Storage Options<br \/>\n&#8211; General all purpose storage<br \/>\n&#8211; 99.999999999999% Object durability (&#8220;eleven nines&#8221;)<br \/>\n&#8211; 99.99% Object availability<br \/>\n&#8211; Most expensive<\/p>\n<p>Reduce Redundancy Storage (RSS) &#8211; Backup<br \/>\n&#8211; Designed for non-critical, reproducible objects<br \/>\n&#8211; 99.99% object durability<br \/>\n&#8211; 99.99% object availability<br \/>\n&#8211; less expensive than Standard<\/p>\n<p>Infrequent Access (S3-IA) &#8211; Not accessed day to day base &#8211; May be weekly or monthly<br \/>\n&#8211; Designed for objects that you do not access frequently but must be immediately available when accessed<br \/>\n&#8211; 99.999999999999% Object durability (&#8220;eleven nines&#8221;)<br \/>\n&#8211; 99.90% Object livability<br \/>\n&#8211; less expensive than Standard\/RSS<\/p>\n<p>Glacier<br \/>\n&#8211; Designed for long-term archival storage<br \/>\n&#8211; May take several hours for objects stored in Glacier to be retrieved<br \/>\n&#8211; 99.999999999999% Object durability (&#8220;eleven nines&#8221;)<br \/>\n&#8211; cheapest S3 Storage (very low cost)<\/p>\n<p>(2) Object Lifecycle:<\/p>\n<p>&#8211; It is located on the bucket level<\/p>\n<p>&#8211; However, it can be applied to<br \/>\n&#8211; The entire bucket (applied all the objects in the Bucket)<br \/>\n&#8211; One specific folder within a bucket (applied all the objects in that folder)<br \/>\n&#8211; one specified object within a bucket<\/p>\n<p>&#8211; you can always delete lifecycle policy or manually change the storage class back to whatever you like<\/p>\n<p>(3) Permissions:<\/p>\n<p>&#8211; It can be found on\u00a0 bucket or object level<\/p>\n<p>&#8211; On bucket level you can control<br \/>\nList: who can see the backet name<br \/>\nUpload\/Delete: Objects to (upload) or in the bucket (delete)<br \/>\nView Permission<br \/>\nEdit Permission<\/p>\n<p>Bucket level permission are generally used for &#8220;internal&#8221; access control<\/p>\n<p>&#8211; On the object level, you can control (for each object individually)<br \/>\nOpen\/download<br \/>\nView permissions<br \/>\nEdit Permissions<\/p>\n<p>You can share specific objects via a link with the anyone in the world.<\/p>\n<p>(4) Object Versioning<\/p>\n<p>&#8211; S3 Versioning is a feature that keeps track of and stores all old\/new versions of an object so that you can access and use an older version you like<\/p>\n<p>&#8211; Versioning is either ON or OFF<br \/>\n&#8211; Once it is turned ON, you can only &#8220;suspend&#8221; versioning. It can not be fully turned OFF.<br \/>\n&#8211; Suspending versioning only prevents versioning going forward. All previous object with versions will still maintain their older versions.<br \/>\n&#8211; Versioning can only be set on the bucket level and applies to ALL objects in the bucket<\/p>\n<p>Elastic Compute Cloud (EC2)<br \/>\n***************************<\/p>\n<p>&#8211; Think of EC2 as your basic computer (which has OS, cpu, hard drive, network card, firewall, ram)<\/p>\n<p>&#8211; EC2 provides scalable computing capacity in AWS Cloud<br \/>\n&#8211; It can be used to launch as many or as few virtual servers as you need, configure security and networking, and manage storage<\/p>\n<p>(1) AMI&#8217;s &#8211; Amazon Machine Images<br \/>\n&#8211; A preconfigured package required to launch an EC2 instance<br \/>\nincludes OS, software packages and other required settings.<\/p>\n<p>&#8211; you specify an AMI when you launch an instance, and you can launch as many instances from the AMI as you need.<br \/>\nyou can also launch instances from as many different AMIs as you need.<\/p>\n<p>(2) Instance Types:<br \/>\n&#8211; it is the CPU\/Core<br \/>\n&#8211; Each instance offers different compute, memory and storage capabilities<\/p>\n<p>(3) Elastic Block Store (EBS)<br \/>\n&#8211; Storage volume for an EC2 instance (like hard drive)<\/p>\n<p>&#8211; IOPS &#8211; input\/output operations per second &#8211; More IOPS means better volume performance<\/p>\n<p>(4) Security Groups<br \/>\n&#8211; are similar to NACLs in that they allow\/deny traffic.<br \/>\n&#8211; security groups are found on the instance level (as opposed to subnet level)<\/p>\n<p>&#8211; Virtual firewall that controls the traffic for one or more instances<br \/>\n&#8211; when you launch instances, you associate one or more security groups with the instance<\/p>\n<p>(5) IP Addressing:<br \/>\n&#8211; Private IP addressing for EC2 instance<br \/>\n&#8211; By default all EC2 instances created with private IP address,<br \/>\n&#8211; It allow for instances to communicate with each other as long as they are located in the same VPC<\/p>\n<p>Public IP addressing for EC2 instance<br \/>\n&#8211; Instances can be launched with or without a public IP Address (by default) depending on VPC\/Subnet settings.<br \/>\n&#8211; Public IP Address REQUIRED for the instance to communicate with the internet.<\/p>\n<p>RDS and DynamoDB<br \/>\n******************<\/p>\n<p>RDS &#8211; Relational SQL databases (Amazon Aurora, SQL Server, ORACLE, PostgreSQL, MySQL)<br \/>\nDynamoDB &#8211; Non-Relational, No-SQL Database (DynamoDB only available, we can install\/download the mongoDB, Cassandra, Oracle noSQL<\/p>\n<p>Simple Notification Service (SNS): In other word it is alert service<br \/>\n***********************************<\/p>\n<p>AWS service that allows you to automate the sending of email or text message notification based on events that happens in your AWS account<br \/>\nTopic &#8211; Like EC2 crashed<br \/>\nSubscriber &#8211; Person\/Group who gets the notification<br \/>\nPublisher &#8211; Cloudwatch\/human\/alarm<\/p>\n<p>AWS CloudWatch: in Other word it is monitoring service..<br \/>\n****************<\/p>\n<p>It is service that allows you to monitor various elements of your AWS account.<\/p>\n<p>This alerts will be distribution using SNS service&#8230;<\/p>\n<p>example&#8230;<br \/>\n&#8211; setup the alerts for the mothly billing exceeding certain amounts.<br \/>\n&#8211; setup the alerts for the EC2 instance CPU utilizations..<\/p>\n<p>Elastic Load Balancer (ELB) (Classic) :<br \/>\n*************************************<br \/>\nAn ELB evenly distributes traffic between EC2 instances that are associated with it.<\/p>\n<p>AutoScalling:<br \/>\n**************<br \/>\n&#8211; Auto Scalling is the process of adding (scalling up) OR removing (scalling down) EC2 instances based on traffic demand for you application.<\/p>\n<p>&#8211; Handle the load for your application and Auto Scalling Groups<\/p>\n<p>&#8211; It is a service and not the physical part of the infrastructure<\/p>\n<p>Lambda &#8211; Serverless Computing<br \/>\n******************************<\/p>\n<p>&nbsp;<\/p>\n<p>AWS &#8211; Cloud Computing<\/p>\n<p>&nbsp;<\/p>\n<p>AWS Cloud Platform Devided into following categories:<\/p>\n<p>&#8211; Compute and Networking (ex: virtual server and vpc)<br \/>\nEC2 &#8211; RHEL, CentOS, Ubuntu, Debian, Fedora, Amazon Linux, Oracle Linux, Microsoft Windows Server<br \/>\nRoute53 &#8211; DNS system which we configure on AWS<br \/>\nVPC &#8211; Virtual Private Cloud<br \/>\n&#8211; Storage and CDN (ex: various storage services, also content which leaves in network)<br \/>\nAmazon S3 (store your images, contents and even static websites)<br \/>\nAmazon Glacier (Archival system &#8211; economical compare to S3)<br \/>\nAmazon CloudFront<br \/>\n&#8211; Databases<br \/>\nAmazon RDS:<br \/>\n&#8211; MySQL<br \/>\n&#8211; MS SQL Server<br \/>\n&#8211; Oracle<br \/>\n&#8211; Application Services (notification services, emial services.. etc)<br \/>\n&#8211; Amazon SES (mass emailing as e-advertisement)<br \/>\n&#8211; Amazon SNS (Monitoring email).<br \/>\n&#8211; Deployment and Management (CI-CD)<br \/>\n&#8211; Amazon CloudWatch (monitoring service for resources such as servers, storage, even billings, DNS, RDS Database)<br \/>\n&#8211; Amazone IAM (Manage Users and Groups using Identity and Access management)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AWS : Amazon Web Services is a Cloud Service Provider, AKA &#8211; Infrastructure as a Service (IaaS). &#8211; Storage, Computing Power, Databases, Networking, Analytics, Developer Tools, Virtualization, Security.<\/p>\n<p>Major Terminology\/Reason\/Advantages: #################################### &#8211; High Availibility &#8211; Fault Tolerance &#8211; Scalability (automatically grow Dynamically) &#8211; Elasticity (automatically srink Dtynamically)<\/p>\n<p>&#8211; Instance (Server)<\/p>\n<p>Services: ########<\/p>\n<p>VPCs: Virtual Private [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7500"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7500"}],"version-history":[{"count":1,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7500\/revisions"}],"predecessor-version":[{"id":7501,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7500\/revisions\/7501"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}