{"componentChunkName":"component---src-pages-markdown-remark-fields-slug-js","path":"/engineering/a-journey-with-aws/","result":{"data":{"markdownRemark":{"id":"175d2299-56b6-56ed-9f75-f47a43ad5c77","excerpt":"Amazon Web Services offers scalable, reliable, and inexpensive cloud computing services. Below are some salient features provided by AWS. Secure cloud services…","html":"<p>Amazon Web Services offers scalable, reliable, and inexpensive cloud computing services. Below are some salient features provided by AWS.</p>\n<ol>\n<li>Secure cloud services platform</li>\n<li>Compute power</li>\n<li>Database storage</li>\n<li>Content delivery </li>\n<li><strong>Pay for what you use</strong></li>\n</ol>\n<p>Prerequisites:</p>\n<ul>\n<li>AWS Account</li>\n<li>Active internet connection</li>\n<li>CLI usage</li>\n</ul>\n<h2 id=\"aws-ec2elastic-compute-cloud\" style=\"position:relative;\"><a href=\"#aws-ec2elastic-compute-cloud\" aria-label=\"aws ec2elastic compute cloud permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>AWS EC2(Elastic Compute Cloud)</h2>\n<p>It is the most commonly used service of AWS and catered deployment of various applications as per AMI configured before creating an EC2 Instance.\nAmazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure and resizable compute capacity in the cloud.\nIt is designed to make web-scale cloud computing easier for developers. <br>\n<strong>Here are some of the important steps while setting up new EC2 Instance-></strong> <br></p>\n<p>Choose an Amazon AMI.\n<img src=\"/6b52e56f919744985b3f92a8eda96aae/AWS_EC21.webp\" alt=\"AWS\"></p>\n<p>Choose the instance type.\n<img src=\"/2124d67a037bc991dad3b1303dd0d6cf/AWS_EC22.webp\" alt=\"AWS\"></p>\n<p>Configure security group(It allows specific IP's that user will give permission to specific ports as per requirement.)\n<img src=\"/6fa466a29f1a919fb2da28166c03938a/AWS_EC23.webp\" alt=\"AWS\"></p>\n<p>Login to EC2 via CLI</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">$ ssh -i ec2-key.pem ec2-user@11.11.11.111</span></code></pre>\n<p>Switch to ROOT</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">sudo su</span></code></pre>\n<h2 id=\"aws-rdsrelational-database-service\" style=\"position:relative;\"><a href=\"#aws-rdsrelational-database-service\" aria-label=\"aws rdsrelational database service permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>AWS RDS(Relational Database Service)</h2>\n<p>Amazon Relational Database Service is a web service that makes it easier to set up, operate, and scale a relational database in the AWS Cloud. It provides a resizable,  cost-efficient capacity for an industry-standard relational database and manages everyday database administration tasks.\nAfter setting up RDS, you can be logged in to the local tool(SQL Developer/ MY SQL Workbench) and copy RDS's endpoint with Username/Password configured while setting RDS.</p>\n<p><img src=\"/39e0cf055612574822ed7d30ac838534/AWS_RDS.webp\" alt=\"Available Databases\"></p>\n<h2 id=\"aws-elasticache\" style=\"position:relative;\"><a href=\"#aws-elasticache\" aria-label=\"aws elasticache permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>AWS ElastiCache</h2>\n<p>Amazon ElastiCache allows you to seamlessly set up, run, and scale popular open-Source compatible in-memory data stores in the cloud. This service is commonly used to avoid unnecessary calls to RDS and improve the user experience by displaying the data faster.</p>\n<p>There are two types of cluster engine supported by AWS ElastiCache</p>\n<ul>\n<li>Redis</li>\n<li>Memcached</li>\n</ul>\n<p><img src=\"/c6841f2f22b01b8cc2dbe1770592b3a0/AWS_EC.webp\" alt=\"AWS Elasti Cache\"></p>\n<p>Login to Redis locally via this command (First port can be anything except 6379 as it will direct AWS Redis to local Redis installed on the machine) and after first port, just paste the endpoint of Redis.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">ssh -f -i ec2-key.pem -N -L 6378:demo-redis.xxxx.xx.0001.xxxx.cache.amazonaws.com:6379 ec2-user@11.11.11.111</span></code></pre>\n<h2 id=\"aws-lex\" style=\"position:relative;\"><a href=\"#aws-lex\" aria-label=\"aws lex permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>AWS Lex</h2>\n<p>Amazon Lex provides advanced deep learning functionalities of ASR(Automatic Speech Recognition) &#x26; NLU(Natural Language Understanding). With the use of Lex, we can build chatbots that can converse using speech and text as mediums.\nThere are a few components of BOT that need to be understood to build it.</p>\n<ul>\n<li>Intent:- It is a particular goal that the user wants to achieve.</li>\n<li>Utterances:-These are spoken/typed phrases that invoke content.</li>\n<li>Slots:- Data provided by the user to fulfill the intent.</li>\n<li>Prompts:-These are queries/questions asked by the user to input the data.</li>\n</ul>\n<p><img src=\"/c1243e5996dcca9944ee6252c85d6360/AWS_Lex.webp\" alt=\"AWS Lex\"></p>\n<p>Moreover, there are VERSIONS linked with bots, intents, and custom slots. With the help of versions, we can make changes in the dev version without any impact occurring in PROD; hence it helps to make Immutable versions of bot that is created using AWS Lex.</p>\n<p><img src=\"/f9ba2b9e5877382f2d0600a912b2fe2c/AWS_LexV.webp\" alt=\"AWS Lex Versions\"></p>\n<h2 id=\"aws-api-gateway\" style=\"position:relative;\"><a href=\"#aws-api-gateway\" aria-label=\"aws api gateway permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>AWS API Gateway</h2>\n<p>This AWS service is used to Create, Publish, Maintain, and Monitor secure Application Programming Interfaces(<strong>API</strong>). Moreover, it provides an easy interface for code running on AWS Lambda.\nHere are some of the pointers that explain the need for this service.</p>\n<ul>\n<li>Efficient API Development.</li>\n<li>Performance at Scale.</li>\n<li>Cost-saving at scale.</li>\n<li>Flexible Security Controls.</li>\n</ul>\n<p>This service enables us to make APIs on the go with a few clicks; also, we can use the Mocking approach to make dummy routes without any original data. In this faking data is used and bouncing back to without any activity.</p>\n<p><img src=\"/ac41c7ffa5a3f3722f2fe662d1c7c55d/AWS_API.webp\" alt=\"AWS API Gateway\"></p>\n<h2 id=\"aws-dynamodb\" style=\"position:relative;\"><a href=\"#aws-dynamodb\" aria-label=\"aws dynamodb permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>AWS DynamoDB</h2>\n<p>Dynamo DB is a NO SQL database provided by Amazon Web Services. The main job of Dynamo DB is to Store &#x26; Retrieve any amount of data and serve any level requests of traffic.\nIn this, there are different terminologies as that of a regular database. Secondary Indexes is a Data Structure that contains a subset of attributes from a table.</p>\n<ul>\n<li>Partition &#x26; Sort Keys (Partition key is single primary key composed of one attribute only)</li>\n<li>\n<p>Local &#x26; Global Secondary Indexes</p>\n<ul>\n<li>Local Index: Index with same partition key as of base table but different sort key</li>\n<li>Global Index: In the global index, both the partition key and sort key can differ from that of the base table.  </li>\n</ul>\n</li>\n</ul>\n<p><img src=\"/ab68ecc7af42f7662d490b7696839a54/AWS_Dynammo.webp\" alt=\"AWS Dynammo\"></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n</style>","headings":[{"value":"AWS EC2(Elastic Compute Cloud)","depth":2},{"value":"AWS RDS(Relational Database Service)","depth":2},{"value":"AWS ElastiCache","depth":2},{"value":"AWS Lex","depth":2},{"value":"AWS API Gateway","depth":2},{"value":"AWS DynamoDB","depth":2}],"fields":{"slug":"/engineering/a-journey-with-aws/"},"frontmatter":{"metatitle":null,"metadescription":null,"description":"Learn about various AWS services and how to set up in a step by step tutorial.","title":"AWS Services-Walkthrough","canonical":null,"date":"November 03, 2020","updated_date":null,"tags":["AWS","Serverless"],"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/78050f048f7ab8ee8ffbdfdb9cfbee1a/2ad7f/aws.webp","srcSet":"/static/78050f048f7ab8ee8ffbdfdb9cfbee1a/1c9b5/aws.webp 200w,\n/static/78050f048f7ab8ee8ffbdfdb9cfbee1a/f1752/aws.webp 400w,\n/static/78050f048f7ab8ee8ffbdfdb9cfbee1a/2ad7f/aws.webp 800w,\n/static/78050f048f7ab8ee8ffbdfdb9cfbee1a/b13b4/aws.webp 900w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Nitin Gupta","github":"ng29","bio":"Software Engineer in Fintech organization and loves to code","avatar":null}}}},"pageContext":{"id":"175d2299-56b6-56ed-9f75-f47a43ad5c77","fields__slug":"/engineering/a-journey-with-aws/","__params":{"fields__slug":"engineering"}}},"staticQueryHashes":["1171199041","1384082988","1711371485","1753898100","2100481360","229320306","23180105","528864852"]}