<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: meera123</title>
    <description>The latest articles on DEV Community by meera123 (@meera123).</description>
    <link>https://dev.to/meera123</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F903683%2F3c15e5ba-bdbf-4ecf-b839-4500ce3eaa57.jpg</url>
      <title>DEV Community: meera123</title>
      <link>https://dev.to/meera123</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/meera123"/>
    <language>en</language>
    <item>
      <title>Understanding Clousers in JavaScript</title>
      <dc:creator>meera123</dc:creator>
      <pubDate>Sun, 13 Aug 2023 15:25:08 +0000</pubDate>
      <link>https://dev.to/meera123/understanding-clousers-in-javascript-30n0</link>
      <guid>https://dev.to/meera123/understanding-clousers-in-javascript-30n0</guid>
      <description>&lt;p&gt;Closures might sound like a complex programming concept, but they're actually quite fascinating and incredibly useful in JavaScript. In this article, we'll break down closures in a way that's easy to understand, using simple language and real-world examples. So, let's dive in and unravel the magic of closures!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Are Closures?&lt;/strong&gt;&lt;br&gt;
Imagine you have a function that's like a box, and inside this box are not just the instructions (code) to execute, but also a special power. This power allows the function to "remember" its surroundings even after it's been used. This combination of the function and its remembered surroundings is what we call a closure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Basics of Closures&lt;/strong&gt;&lt;br&gt;
In JavaScript, we have something called "lexical scoping," which means that functions can access variables from their outer environments. If a function can't find a variable in its own "box" (local scope), it goes up to its parent function's box (lexical scope), and this continues until it reaches the global scope.&lt;/p&gt;

&lt;p&gt;Here's a simple example to help you grasp this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function outer() {
  var outerVar = "I'm from outer!";

  function inner() {
    console.log(outerVar);
  }

  return inner;
}

var closureFunc = outer();
closureFunc(); // Outputs: "I'm from outer!"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this code, the inner function, when returned and assigned to closureFunc, carries its lexical scope along with it. So, when you call closureFunc(), it still remembers the outerVar variable from the outer function, even though outer has already finished executing.&lt;/p&gt;

&lt;p&gt;**Real-World Examples&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Module Design Pattern**
Closures are the backbone of the Module Design Pattern, a way to organize your code and keep variables private. This helps prevent unintended changes to your code's state from outside sources.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var counterModule = (function() {
  var count = 0;

  function increment() {
    count++;
    console.log(count);
  }

  return {
    increment: increment
  };
})();

counterModule.increment(); // Outputs: 1
counterModule.increment(); // Outputs: 2

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Currying&lt;/strong&gt;&lt;br&gt;
Currying is a technique where a function with multiple arguments is transformed into a series of functions that each take a single argument. Closures play a vital role in achieving this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function multiply(x) {
  return function(y) {
    return x * y;
  };
}

var double = multiply(2);
console.log(double(5)); // Outputs: 10

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Data Hiding and Encapsulation&lt;/strong&gt;&lt;br&gt;
Closures allow you to create private variables, which are inaccessible from outside the function, achieving data hiding and encapsulation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function createPerson(name) {
  var privateName = name;

  return {
    getName: function() {
      return privateName;
    }
  };
}

var person = createPerson("Alice");
console.log(person.getName()); // Outputs: "Alice"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Advantages and Disadvantages&lt;br&gt;
Advantages:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Module Design Pattern:&lt;/strong&gt; Closures enable structuring your code into manageable modules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Currying:&lt;/strong&gt; They facilitate creating reusable functions with partially applied arguments.&lt;br&gt;
Data Hiding: Closures help hide implementation details and maintain clean interfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memoization:&lt;/strong&gt; Closures are used in techniques like memoization for optimizing function calls.&lt;br&gt;
Disadvantages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory Consumption:&lt;/strong&gt; Closures can consume memory, especially when they keep references to large objects.&lt;br&gt;
Memory Leaks: Improper use of closures can lead to memory leaks if references aren't properly managed.&lt;br&gt;
Browser Freeze: Misusing closures in certain scenarios, like with event listeners, can cause browser performance issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wrapping Up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Closures might have sounded complex initially, but I hope this article has helped demystify them for you. They are a powerful tool in JavaScript that can make your code more elegant and efficient. Remember, a closure is like a function with a special memory, capable of preserving its surroundings long after its original function has finished running. So go ahead, use closures wisely to create more robust and organized code in your JavaScript projects!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Mastering JavaScript Variable Declarations: A Comprehensive Guide to let, const, and var Usage.</title>
      <dc:creator>meera123</dc:creator>
      <pubDate>Fri, 11 Aug 2023 15:38:40 +0000</pubDate>
      <link>https://dev.to/meera123/mastering-javascript-variable-declarations-a-comprehensive-guide-to-let-const-and-var-usage-19fb</link>
      <guid>https://dev.to/meera123/mastering-javascript-variable-declarations-a-comprehensive-guide-to-let-const-and-var-usage-19fb</guid>
      <description>&lt;p&gt;If you're embarking on your JavaScript journey, you've likely encountered the terms let, const, and var. While they might initially appear as mere keywords, they hold immense significance for writing clean and reliable JavaScript code. This guide will unravel the mysteries behind these declarations, focusing on the crucial differences between let, const, and the somewhat antiquated var. By the end, you'll grasp why the use of var is discouraged, and when to opt for let or const.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;var vs let vs const - A Quick Comparison&lt;/strong&gt;&lt;br&gt;
Before diving into the nuances, let's outline the fundamental distinctions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;var and let enable you to declare variables that can be reassigned.&lt;/strong&gt;&lt;br&gt;
const is for creating variables that hold unchanging values.&lt;br&gt;
var usage is discouraged; prefer let or const.&lt;br&gt;
If a variable won't change, use const to signify its immutability.&lt;br&gt;
Now, let's dissect the why, how, and what of these declarations step by step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scope of Variables&lt;br&gt;
var:&lt;/strong&gt;&lt;br&gt;
Variables declared with var can have global or function-level scope. Global variables are accessible throughout your code, while function-level variables are confined to the scope of the function in which they're declared.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var globalVar = 42;

function demoFunction() {
  var localVar = "Local Variable";
  console.log(globalVar); // Accessible
}

console.log(globalVar); // Accessible
console.log(localVar);  // ReferenceError: localVar is not defined

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;let and const:&lt;/strong&gt;&lt;br&gt;
Variables declared with let and const possess global, local, and block-level scope. Block-level scope refers to variables declared within curly braces, such as within if statements or loops.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let globalLet = 42;
const globalConst = "Constant Value";

function demoFunction() {
  let localLet = "Local Let";
  const localConst = "Local Const";
  if (true) {
    let blockLet = "Block Let"; // Block scope
    const blockConst = "Block Const"; // Block scope
  }
  console.log(localLet); // Accessible
  console.log(localConst); // Accessible
  console.log(blockLet); // ReferenceError: blockLet is not defined
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Redeclaration and Reassignment&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;var:&lt;/strong&gt;&lt;br&gt;
Variables declared with var can be redeclared and reassigned within the same scope.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var num = 10;
var num = 20; // Redeclaration allowed
num = 30; // Reassignment allowed

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;let and const:&lt;/strong&gt;&lt;br&gt;
Variables declared with let and const can be reassigned but not redeclared within the same scope.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numLet = 10;
numLet = 20; // Reassignment allowed

const numConst = 10;
numConst = 20; // TypeError: Assignment to constant variable

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Hoisting and Temporal Dead Zone&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Hoisting:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;var:&lt;/strong&gt;&lt;br&gt;
Variables declared with var are hoisted and initialized with undefined.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log(hoistedVar); // undefined
var hoistedVar = 42;
console.log(hoistedVar); // 42

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;let and const:&lt;/strong&gt;&lt;br&gt;
Variables declared with let and const are hoisted but not initialized. Accessing them before declaration results in a ReferenceError.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log(hoistedLet); // ReferenceError: hoistedLet is not defined
let hoistedLet = 42;
console.log(hoistedLet); // 42
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Temporal Dead Zone (TDZ):&lt;/strong&gt;&lt;br&gt;
Variables declared with let and const are inaccessible within the Temporal Dead Zone (TDZ), which is the period between hoisting and actual declaration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log(tdZoneVar); // ReferenceError: Cannot access 'tdZoneVar' before initialization
let tdZoneVar = 42;
console.log(tdZoneVar); // 42

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In Conclusion&lt;/strong&gt;&lt;br&gt;
Comprehending let, const, and var is pivotal for robust JavaScript coding. Remember:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use var cautiously due to its hoisting quirks; prefer let or const.&lt;/li&gt;
&lt;li&gt;Embrace let for reassignment flexibility, but beware of scope and hoisting.&lt;/li&gt;
&lt;li&gt;Utilize const for variables meant to remain constant.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you navigate the JavaScript landscape, make informed decisions based on your code's context. Armed with your newfound understanding of these declarations, your coding journey will be smoother. Happy coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Hosting a static website on AWS EC2.</title>
      <dc:creator>meera123</dc:creator>
      <pubDate>Wed, 31 Aug 2022 16:59:23 +0000</pubDate>
      <link>https://dev.to/meera123/hosting-a-static-website-on-aws-ec2-5d85</link>
      <guid>https://dev.to/meera123/hosting-a-static-website-on-aws-ec2-5d85</guid>
      <description>&lt;p&gt;Hello everyone.&lt;br&gt;
In this blog, we will be discussing hosting a static website on AWS EC2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I will cover&lt;br&gt;
1:Buying a domain and hosting the domain on AWS ROUTE 53&lt;br&gt;
2:Hosting a website&lt;br&gt;
3:How to configure SSL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1:Buying a domain and hosting the domain on AWS ROUTE 53.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;There are multiple buying options in the market for domain buying and hosting platforms like&lt;br&gt;
1.GoDaddy&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hostinger&lt;/li&gt;
&lt;li&gt;Bluehost&lt;/li&gt;
&lt;li&gt;Freenom(free domains)
But, I would suggest using GoDaddy. And if you want to buy only for practice purposes then you can go for Freenom. In this blog, I will be using GoDaddy.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After buying a domain from Godaddy. Go to manage DNS.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--46nXmbvo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/769h01hocplr3n0cg5j9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--46nXmbvo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/769h01hocplr3n0cg5j9.jpg" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
After clicking u will see the Nameservers as shown below&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zSINJ1hc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fasb5mlqoccis6y0h7o5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zSINJ1hc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fasb5mlqoccis6y0h7o5.jpg" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Then log in to your AWS console and go to ROUTE 53. There we will be hosting our DNS. To do that first create a hosted zone by giving your domain name.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Oj7RmfNl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4a5s6eoizm2gw7hdh1yv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Oj7RmfNl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4a5s6eoizm2gw7hdh1yv.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After that, you will be seeing some nameservers on route 53 you have to copy that and paste that on Godaddy nameserver. Then your DNS hosting will shift from GoDaddy to AWS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WiPshYso--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4n3w7usdp9bgyukcompq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WiPshYso--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4n3w7usdp9bgyukcompq.jpg" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AWceth2Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ohz7eqzsv6vu27vcvlun.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AWceth2Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ohz7eqzsv6vu27vcvlun.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2: Hosting a website&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch an EC2 instance. Here I am using amazon Linux 2. Make sure to allow port 80(HTTP) and port 443(HTTPS) for everyone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eDXs6MoN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u6oosz20knwol48vjdgt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eDXs6MoN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u6oosz20knwol48vjdgt.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;After that connect to the instance using an ssh client.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect to the root by following the below commands.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo su
cd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;After connecting to the root install apache to make a web server by throwing the below commands.
&lt;code&gt;yum install httpd&lt;/code&gt;
Then go to the following directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;cd var/www/html&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here you need to move your website files.&lt;br&gt;
For that, we will be using &lt;em&gt;winscp&lt;/em&gt;&lt;br&gt;
&lt;a href="https://winscp.net/eng/download.php"&gt;&lt;/a&gt; Here is the link to download winscp.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After installing winscp. Open WinSCP and paste your public IP of the ec2 instance in the hostname. Then go to Advance-&amp;gt;Authentication. There you need to give your private key.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--euA-XW6z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yujgf44shf0iwfa5lrhs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--euA-XW6z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yujgf44shf0iwfa5lrhs.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
Then give ec2-user as user-name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AqGvRhPt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iow8x8szawtilkqo4v9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AqGvRhPt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iow8x8szawtilkqo4v9c.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
Then move your file to the /var/www/html directory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fG0wI_Cx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/194sg9e147sare3yip5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fG0wI_Cx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/194sg9e147sare3yip5t.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Come back to your ssh client and check if the files are available in the/var/www/html directory or not by throwing &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;ls &lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If your files are there the throw below commands.&lt;br&gt;
&lt;code&gt;systemctl start httpd&lt;/code&gt;&lt;br&gt;
&lt;code&gt;systemctl enable httpd&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your website is ready for hosting. You can copy your IP in chrome and check whether the website is live or not.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3eTdgutq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rq9agdiwi58qyb3yymf7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3eTdgutq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rq9agdiwi58qyb3yymf7.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
Okay, you successfully hosted your domain and deployed your website on your server.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;After completing the previous steps you need to register your IP with your domain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For that go to hosted zone you have created in ROUTE 53 and click on create record there you have to create a record by giving www as a subdomain(Give names by using those you want your customers to come over to your website) and paste your public IP in the value box.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TBA_EkhO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9wuxfvwgncmpej2fhhi9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TBA_EkhO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9wuxfvwgncmpej2fhhi9.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EsegecIa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/56tyn1uegmf726sj8day.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EsegecIa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/56tyn1uegmf726sj8day.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
There you go. If your website is successfully deployed you can check by hitting your subdomain and domain name on the browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NfSWd4hn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l11otlgvdow3xudafofa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NfSWd4hn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l11otlgvdow3xudafofa.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3:How to configure SSL using Let's Encrypt&lt;/strong&gt;&lt;br&gt;
  1.Download the Extra Packages for Enterprise Linux (EPEL) 7 &lt;br&gt;
  repository packages. These are required to supply dependencies &lt;br&gt;
  needed by Certbot.&lt;br&gt;
     -Navigate to your home directory (/home/ec2-user). Download &lt;br&gt;
     EPEL using the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  sudo wget -r --no-parent -A 'epel-release-*.rpm' 
   https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-Install the repository packages as shown in the following &lt;br&gt;
   command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-Enable EPEL as shown in the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo yum-config-manager --enable epel*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-You can confirm that EPEL is enabled with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo yum repolist all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It should return information similar to the following.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ec2-user ~]$ 
...
epel/x86_64                          Extra Packages for Enterprise Linux 7 - x86_64                               enabled: 12949+175
epel-debuginfo/x86_64                Extra Packages for Enterprise Linux 7 - x86_64 - Debug                       enabled:      2890
epel-source/x86_64                   Extra Packages for Enterprise Linux 7 - x86_64 - Source                      enabled:         0
epel-testing/x86_64                  Extra Packages for Enterprise Linux 7 - Testing - x86_64                     enabled:    778+12
epel-testing-debuginfo/x86_64        Extra Packages for Enterprise Linux 7 - Testing - x86_64 - Debug             enabled:       107
epel-testing-source/x86_64           Extra Packages for Enterprise Linux 7 - Testing - x86_64 - Source            enabled:         0
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.Edit the main Apache configuration file, /etc/httpd/conf/httpd.conf. Locate the "Listen 80" directive and add the following lines after it, replacing the example domain names with the actual Common Name and Subject Alternative Name (SAN).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;VirtualHost *:80&amp;gt;
    DocumentRoot "/var/www/html"
    ServerName "example.com"
    ServerAlias "www.example.com"
&amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save the file and restart Apache.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart httpd

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O9ycikZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pp0lktp77x3oz0eaiywf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O9ycikZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pp0lktp77x3oz0eaiywf.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your website is ready.&lt;br&gt;
I hope you will find this informative.:&amp;gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>host</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to connect to a private instance using VPN.</title>
      <dc:creator>meera123</dc:creator>
      <pubDate>Sat, 20 Aug 2022 11:15:00 +0000</pubDate>
      <link>https://dev.to/meera123/how-to-connect-to-a-private-instance-using-vpn-52l2</link>
      <guid>https://dev.to/meera123/how-to-connect-to-a-private-instance-using-vpn-52l2</guid>
      <description>&lt;p&gt;In a previous blog, I explained how to connect to an instance with private IP. This blog explains how to connect to the private instance using a VPN.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step 1:&lt;/strong&gt;&lt;br&gt;
First, create an instance that does not have a public IP.&lt;br&gt;
&lt;strong&gt;step 2:&lt;/strong&gt;&lt;br&gt;
Go to Amazon AMI-&amp;gt;Market Place search OpenVPN and click on select-&amp;gt;continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KMWXmVag--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8l8w3fih4v44bxvhevs4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KMWXmVag--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8l8w3fih4v44bxvhevs4.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JXe_O0pS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9gv2mnqi9h9o3g2z72nj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JXe_O0pS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9gv2mnqi9h9o3g2z72nj.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step 3:&lt;/strong&gt;&lt;br&gt;
After this configure the instance and make sure to give it a public IP.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--saB_Asj1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9rqcxno9sipczq7i2bme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--saB_Asj1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9rqcxno9sipczq7i2bme.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;step 4:&lt;/strong&gt;&lt;br&gt;
Then connect to the instance using the ssh client then click yes to agree on agreements and click enter to every option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dnyI2vkw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m93ntcpjws64jj49xxyx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dnyI2vkw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m93ntcpjws64jj49xxyx.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;step 5:&lt;/strong&gt;&lt;br&gt;
It won't connect because we have to change the name root to openvpnas. Copy the Admin UI and Client UI to the notepad. Then connect by giving username openvpnas. Because we are trying to connect to the vpn, not the root.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PfRE24Ns--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hhul4y2g9h7jcy8ah27a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PfRE24Ns--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hhul4y2g9h7jcy8ah27a.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--524OQlJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iywegi12u3m7f6ubvk9p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--524OQlJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iywegi12u3m7f6ubvk9p.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step 6:&lt;/strong&gt;&lt;br&gt;
After it will get connect give the password to the vpn by providing the following commands.&lt;br&gt;
&lt;code&gt;sudo passwd openvpn&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yi7nMy5Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h5wim5xiz1cmk9o15qt8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yi7nMy5Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h5wim5xiz1cmk9o15qt8.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;step 7:&lt;/strong&gt;&lt;br&gt;
After that go to notepad where you pasted the Admin UI and client UI. Again copy the Admin UI then paste it on google search. Then it will ask you for the id and password. Provide the id as OpenVPN and give the password you have created and log into that VPN. There you can manage who can access the server and other permissions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c8zN1QgI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93has60pe1d1ug2ga1bh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c8zN1QgI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93has60pe1d1ug2ga1bh.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mt0FZoQV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrtzyznifhs9bjxlaq60.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mt0FZoQV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrtzyznifhs9bjxlaq60.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8:&lt;/strong&gt;&lt;br&gt;
After that go to openvpn website and install OpenVPN in the client's system so they also can connect to the private server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M_3S97Ln--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b2adlth3wqxiekjtepzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M_3S97Ln--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b2adlth3wqxiekjtepzv.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OXENv3kN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mmit6bx6lskf0bn7cpgl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OXENv3kN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mmit6bx6lskf0bn7cpgl.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Step 9:&lt;/strong&gt;&lt;br&gt;
After the installation, copy the client UI, paste it into the URL, and give the password you created and on the VPN so that the client can access the private server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ie9P7YNT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/529saj9ikmbexhy4pb7a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ie9P7YNT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/529saj9ikmbexhy4pb7a.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NCpf6Fap--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i85mw5ek2amcmv1ig779.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NCpf6Fap--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i85mw5ek2amcmv1ig779.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oT8w27V7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ffff41ecb6yvx1z1sg8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oT8w27V7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ffff41ecb6yvx1z1sg8o.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it. After these steps, both you and your clients will be able to connect to the private server.&lt;/p&gt;

&lt;p&gt;Hope you all find it informative!!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>devops</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to connect to a EC2 instance having only private IP using a jump server.</title>
      <dc:creator>meera123</dc:creator>
      <pubDate>Wed, 17 Aug 2022 11:58:45 +0000</pubDate>
      <link>https://dev.to/meera123/how-to-connect-to-a-ec2-instance-having-only-private-ip-using-a-jump-server-pom</link>
      <guid>https://dev.to/meera123/how-to-connect-to-a-ec2-instance-having-only-private-ip-using-a-jump-server-pom</guid>
      <description>&lt;p&gt;The following article explains how to connect to an ECS instance using only a private IP address.&lt;br&gt;
The first thing I would like to do is introduce some key terminologies, where we will first try to understand a few things, and then move on to the implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key terminologies:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ec2 instances:&lt;/strong&gt; EC2 instance is like a  computer or laptop where you can run your os like Linux, windows, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AMI(Amazon Machine Image):&lt;/strong&gt; It contains the operating system like windows ,amazonLinux, sushelinux which we use to launch our ec2 instance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;vpc(virtual private cloud):&lt;/strong&gt; vpc is an isolated network within aws where we deploy our resources so that they can communicate with each other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private IP:&lt;/strong&gt; Using private IP we can not connect to the internet directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Public IP:&lt;/strong&gt; Using public IP we can connect to the internet directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key pair:&lt;/strong&gt;  A key pair has a public key and a private key. So basically this is a  set of security credentials that we use to prove our identity while connecting to an ec2 instance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bastion host:&lt;/strong&gt; The ec2 instance which is having a public IP from which we try to connect to an instance present in a private subnet is called a Bastion host.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;EC2 Instance Connect allows you to connect to EC2 instances using three different methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A browser-based client accessible via the AWS Management Console.&lt;/li&gt;
&lt;li&gt;Your own key and SSH client.&lt;/li&gt;
&lt;li&gt;EC2 Instance Connect command line interface (CLI).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this article we only discuss about connecting ec2 instance using key and SSH client.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start by creating an EC2 instance that has a low configuration. Ensure that this EC2 instance and the instance with the private IP are in the same VPC. And this instance must have a public IP.&lt;/li&gt;
&lt;li&gt;Connect the instance by giving key pair to SSH client. And connect to the root.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo su
cd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Now try to connect to the private EC2 instance. You will notice it is not connecting because the private key pair is not there.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step 2:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now login to vi editors with a file name the same name as the private key pair file. In my case, the key name is example.pem.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vi example.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yuyp9qkI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/osgh8mb7ey09z0nua5fk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yuyp9qkI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/osgh8mb7ey09z0nua5fk.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy-paste the key into the editor. Save and exit to the editor. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LcPGeApK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/86ktfcsbd57y7k7iv16h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LcPGeApK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/86ktfcsbd57y7k7iv16h.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now give permission to the owner by using the following command.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod 600 example.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_8o8DLVM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4cc382yhcf4tyh84s3wj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_8o8DLVM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4cc382yhcf4tyh84s3wj.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are good to go.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Now trying to connect to the ec2 instance having private IP. It will be connected.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>cloud</category>
    </item>
    <item>
      <title>How to create an Elastic IP in AWS.</title>
      <dc:creator>meera123</dc:creator>
      <pubDate>Thu, 11 Aug 2022 13:02:00 +0000</pubDate>
      <link>https://dev.to/meera123/how-to-create-an-elastic-ip-in-aws-3k1l</link>
      <guid>https://dev.to/meera123/how-to-create-an-elastic-ip-in-aws-3k1l</guid>
      <description>&lt;p&gt;In this post, we will discuss different types of IPs used by AWS. And how to create an Elastic IP in AWS.&lt;/p&gt;

&lt;p&gt;AWS offers three types of IP addresses.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Public IP&lt;/li&gt;
&lt;li&gt;Private IP&lt;/li&gt;
&lt;li&gt;Elastic IP&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By using public IP we can access our instance from anywhere on the internet.&lt;br&gt;
By using private IP we can only access our instance within the same VPC.&lt;/p&gt;




&lt;p&gt;Public IPs, however, change if an instance is restarted, so we cannot use them. Therefore, the website may be unavailable. Your instance can no longer be accessed using your old IP address.&lt;/p&gt;

&lt;p&gt;So to solve that problem we use Elastic IP.&lt;br&gt;
Elastic IPs are public IP addresses you can assign to your AWS account. You can associate this elastic IP with any EC2 instance, disassociate from one instance, then reassociate.&lt;/p&gt;

&lt;p&gt;It won't change after you restart the instance because of it's static nature.&lt;br&gt;
So the website won't face downtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  HOW TO CREATE AN ELASTIC IP IN AWS.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;-First create an instance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-Then select Elastic IP in Network &amp;amp; Security&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vyp7xHt0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jobbkwzyqckeldxtuxjm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vyp7xHt0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jobbkwzyqckeldxtuxjm.jpg" alt="Image description" width="880" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-Now select Allocate IP address and Associate IP.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wr7W3g5D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bjztsq60ilyszj1ruqk9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wr7W3g5D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bjztsq60ilyszj1ruqk9.png" alt="Image description" width="880" height="733"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-Go to Associate IP and select the instance to which you want to allocate the Elastic IP, Leave everything as it is and click on Associate.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-Now you can see the Elastic IP and the public IP of instance are same.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K781naug--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vtook08c6lwz22zlryzc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K781naug--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vtook08c6lwz22zlryzc.png" alt="Image description" width="880" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KQ9zLQox--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oczllzd6voh4d1gpll4x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KQ9zLQox--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oczllzd6voh4d1gpll4x.png" alt="Image description" width="880" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are done. Now restart the server. You will notice the IP won't change.&lt;/p&gt;

&lt;p&gt;Hope you like it:&amp;gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
    <item>
      <title>HOW TO ATTACH AND MOUNT AN EXTRA AMAZON EBS VOLUME TO AN EXISTING INSTANCE?</title>
      <dc:creator>meera123</dc:creator>
      <pubDate>Sun, 07 Aug 2022 14:20:00 +0000</pubDate>
      <link>https://dev.to/meera123/how-to-attach-and-mount-an-extra-amazon-ebs-volume-to-an-existing-instance-2iep</link>
      <guid>https://dev.to/meera123/how-to-attach-and-mount-an-extra-amazon-ebs-volume-to-an-existing-instance-2iep</guid>
      <description>&lt;p&gt;&lt;strong&gt;Creating new EBS volumes can be done in AWS, you can attach them to instances to add additional storage. Mounting an EBS volume to a folder inside the instance is required to use it as &lt;br&gt;
storage inside the instance&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  MOUNT VOLUME TO THE INSTANCE
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;Create an EC2 instance if you don't have any.&lt;br&gt;
&lt;strong&gt;Step 2:&lt;/strong&gt;Go to the volume section and click on create volume.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WIHKoEnj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/up11ana2xyo2yy3ks8dd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WIHKoEnj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/up11ana2xyo2yy3ks8dd.jpg" alt="Image description" width="800" height="216"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Step 3:&lt;/strong&gt;Select the volume and click on action button, then select attach button.&lt;br&gt;
&lt;strong&gt;Note:Make sure the EBS volume and instance are in the same availability zone&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 4:&lt;/strong&gt;Select the instance where you want it to attach and click on attach.Your volume has now been attached to the instance.&lt;br&gt;
&lt;strong&gt;Now connect to the root by throwing below commands&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_sudo su_
_cd_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt;You can now list the disk available on your EC2 instance by firing the below command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_lsblk_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5FMnLrHp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pdeokqj0f0hovrrig1px.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5FMnLrHp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pdeokqj0f0hovrrig1px.jpg" alt="Image description" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7:&lt;/strong&gt;For a detailed description of the volumes throw below commands&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_fdisk -l_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 8:&lt;/strong&gt;Now check if the disk is mounted&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_df -h_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 9:&lt;/strong&gt;Using the following command, format the volume as ext4 filesystem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_mkfs.ext4 /dev/xvdf_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OG_b3vB5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ty2lcurb9iwbrgil9mqb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OG_b3vB5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ty2lcurb9iwbrgil9mqb.jpg" alt="Image description" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note you can also format it into the xfs filesystem.(Usually used for larger volumes)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 10:&lt;/strong&gt;Create extra directory of your choice to mount out new ext4 volume. I am using the name &lt;em&gt;/extra&lt;/em&gt;. You can name it something of your choice.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_mkdir /extra_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 11:&lt;/strong&gt;Mount to the volume to the &lt;em&gt;/extra&lt;/em&gt; directory using following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_mount /dev/xvdf /extra_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--swgV_-wR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gl5sgtkf3bj540dltkek.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--swgV_-wR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gl5sgtkf3bj540dltkek.jpg" alt="Image description" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Note: With &lt;code&gt;_df -h_&lt;/code&gt;, you can check &lt;br&gt;
whether it is mounted or not.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_cd /extra_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;By using the above command you can go into the extra directory and can create fil e&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;To unmount the volume use the unmount command as shown below&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_unmount /dev/xvdf_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Now here is the problem is if you stop and start your instance the data will be gone... So we have to permanently mount the volume..&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PERMANENTLY MOUNT THE VOLUME TO THE INSTANCE
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;After mounting your volume click the following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_blkid_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt;After clicking this you will get a UUID. Copy that UUID of your extra &lt;br&gt;
volume.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jok58IUw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u5p55tmvcd6vjkd7h256.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jok58IUw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u5p55tmvcd6vjkd7h256.jpg" alt="Image description" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt;Then login to vi editor firing below command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;_vi /etc/fstab_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;** paste the UUID and the path where &lt;br&gt;
you want to mount and the filesystem you&lt;br&gt;
 format**&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0kEabYRh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nwnfa98ktxe6vxcxfrhj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0kEabYRh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nwnfa98ktxe6vxcxfrhj.jpg" alt="Image description" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it your file is permanently mounted. Now if you stop your instance and start again your data won't be lost.&lt;/p&gt;

&lt;p&gt;That's it you can mount and unmount as much as file of your choice by following these steps.&lt;/p&gt;

&lt;p&gt;If you have any doubt feel free to comment.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
