<?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: Oyinkansola Awosan</title>
    <description>The latest articles on DEV Community by Oyinkansola Awosan (@oyinkansola).</description>
    <link>https://dev.to/oyinkansola</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%2F724416%2F3c5ba5c4-b49c-4988-b9ee-c7f91f4f250d.png</url>
      <title>DEV Community: Oyinkansola Awosan</title>
      <link>https://dev.to/oyinkansola</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oyinkansola"/>
    <language>en</language>
    <item>
      <title>Understanding AWS Identity and Access Management (IAM) 1.</title>
      <dc:creator>Oyinkansola Awosan</dc:creator>
      <pubDate>Fri, 20 Jan 2023 23:22:57 +0000</pubDate>
      <link>https://dev.to/oyinkansola/understanding-aws-identity-and-access-management-iam-1-273g</link>
      <guid>https://dev.to/oyinkansola/understanding-aws-identity-and-access-management-iam-1-273g</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Introduction

&lt;ul&gt;
&lt;li&gt;Definition of AWS Identity and Access Management (IAM)&lt;/li&gt;
&lt;li&gt;Importance of IAM in AWS&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;IAM Components

&lt;ul&gt;
&lt;li&gt;Users&lt;/li&gt;
&lt;li&gt;Groups&lt;/li&gt;
&lt;li&gt;Roles&lt;/li&gt;
&lt;li&gt;Policies&lt;/li&gt;
&lt;li&gt;Access keys&lt;/li&gt;
&lt;li&gt;Multi-Factor Authentication&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Definition of AWS Identity and Access Management (IAM)&lt;/strong&gt;&lt;br&gt;
Identity and Access Management is a web service provided by AWS that allows administrators to manage access to AWS resources. IAM enables the creation and management of users, groups, and roles and assigning permissions to these entities. It also provides a way to set up secure access to your AWS resources by creating and managing access keys and security credentials such as access keys, secret access keys, and the MFA.&lt;br&gt;
It is a global service that applies to all of an organization's regions and accounts. It allows you to control access to AWS resources and services, using policies that specify what actions are permitted or denied for each user or group. It also integrates with other AWS services, such as Amazon S3 and Amazon EC2, to provide additional security features, such as encryption and access controls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importance of IAM in AWS&lt;/strong&gt;&lt;br&gt;
IAM enables you to secure your AWS infrastructure by controlling access to resources. It helps customers comply with security and compliance regulations by providing fine-grained control over who can access what resources and actions they can perform.&lt;br&gt;
IAM manages access and permissions, which helps to ensure that solely authorized users can access sensitive data and systems. It also provides a way to manage temporary access to resources through IAM roles, which can be helpful in scenarios such as allowing third-party services to access your resources.&lt;br&gt;
Additionally, IAM enables customers to apply security best practices like the principle of least privilege, which states that users should have the minimum permissions necessary to perform their job.&lt;br&gt;
It is, without doubt, one of the building blocks of security on AWS.&lt;/p&gt;

&lt;h3&gt;
  
  
  IAM Components
&lt;/h3&gt;

&lt;p&gt;AWS Identity and Access Management (IAM) has several components that can be used to manage access to AWS resources:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Users&lt;/strong&gt;&lt;br&gt;
In IAM, a user represents an individual or system that needs to access AWS resources. Each user is identified by a unique name and associated with a set of security credentials, such as an access key and a secret key.&lt;br&gt;
Users can be created and managed through the IAM console, AWS CLI, or SDKs. Once a user is created, the administrator can assign permissions to the user, determining what actions the user can perform on what resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ewk43pnV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254449925_IAMD.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ewk43pnV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254449925_IAMD.jpg" alt="AWS IAM Console" width="320" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Users can be organized into groups, which makes it easier to manage permissions for multiple users at once. For example, you can create a group for all the users in a specific department and then assign permissions to that group.&lt;br&gt;
Users can be assigned roles similar to users but not associated with a specific person or entity. Instead, roles are intended to be assumed by AWS services, applications, or users in other AWS accounts.&lt;br&gt;
Users can also be granted temporary access to resources by assuming a role, which enables them to take on the permissions of that role. This is useful for scenarios such as cross-account or federated access to your AWS resources through an identity provider such as Active Directory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wjz9ngBr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254603451_IAMU.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wjz9ngBr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254603451_IAMU.jpg" alt="IAM Users view" width="880" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Groups&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Groups are collections of IAM users that can be assigned permissions as a group. This allows you to manage permissions for multiple users at once.&lt;br&gt;
Groups are created within IAM, and users are added to them. Once a user is a group member, they inherit the permissions assigned to that group. This means you can assign permissions to a group, and all users will have those permissions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gN9cVMS3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254680149_IAMG.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gN9cVMS3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254680149_IAMG.jpg" alt="IAM Groups view" width="880" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use groups to organize and manage your users based on their job function or department. For example, you might create a group for 'Developers' and another for 'Managers.' You can then assign different permissions to each group so that developers have the permissions they need to work with your application code. In contrast, managers have the permissions they need to manage the application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Roles&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a2ooTUNQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254822400_IAMR.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a2ooTUNQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254822400_IAMR.jpg" alt="IAM Roles view" width="880" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A role is similar to a user but not associated with a specific person or entity. Instead, roles are intended to be assumed by AWS services, applications, or users in other AWS accounts.&lt;br&gt;
A role is a set of permissions that determine what actions can be performed on which resources. Roles can be created and managed through the IAM console, the AWS CLI, or the AWS SDKs. Once created, a user, an AWS service, or an application can assume a role.&lt;br&gt;
Roles are useful in scenarios such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cross-account access: If you have multiple AWS accounts, you can use roles to grant users in one account access to resources in another account.&lt;/li&gt;
&lt;li&gt;Federated access: You can use roles to grant users in your organization access to your AWS resources through an identity provider such as Active Directory.&lt;/li&gt;
&lt;li&gt;Service-linked roles: Some AWS services, such as Elastic Container Service (ECS) and Elastic Beanstalk, have specific roles linked directly to the service. The service automatically creates and manages these roles and cannot be modified or deleted.&lt;/li&gt;
&lt;li&gt;EC2 Instance Profile: You can use roles to grant permissions to your EC2 instances so that applications running on the cases can access other AWS resources.&lt;/li&gt;
&lt;li&gt;AWS Resource Access Manager: You can use roles to grant permissions to resources in one AWS account to users in another account.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Policies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gOy2_KfB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254890498_IAMP.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gOy2_KfB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674254890498_IAMP.jpg" alt="IAM Policies view" width="880" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A policy is a set of rules that determine what actions a user, group, or role can perform on what resources. Policies are written in JSON and can be attached to users, groups, and roles.&lt;br&gt;
Policies are the building blocks of IAM. They define a user, group, or role's permissions to access AWS resources. Policies are made up of statements that specify the actions allowed or denied on a particular resource or set of resources. Policies can be created and managed through the IAM console, the AWS CLI, or the AWS SDKs.&lt;br&gt;
There are two types of policies:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Managed policies: These are policies that are created and managed by AWS. They include pre-defined policies for everyday use cases, such as read-only access to S3 or full access to EC2.&lt;/li&gt;
&lt;li&gt;Inline policies: These are policies that are embedded directly in a user, group, or role. They allow you to grant fine-grained permissions specific to a user, group, or role.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Policies can be used to grant permissions for a wide range of AWS services, such as Amazon S3, Amazon EC2, and AWS Lambda. They can also be used to grant permissions for specific resources, such as one particular S3 bucket or EC2 instance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Access keys&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EI53KGJ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674255268905_IAMA.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EI53KGJ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674255268905_IAMA.jpg" alt="IAM Access keys view" width="880" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As seen above, access keys consist of an access key ID and a secret access key. These keys are used to make programmatic calls to AWS services using the AWS SDKs, the AWS CLI, and other tools. Access keys are associated with an IAM user or the AWS account root user. Users can have multiple access keys, but only one set can be active.&lt;br&gt;
They are used to authenticate when making API requests and are typically used in conjunction with the AWS SDKs and the AWS CLI. Access keys are used to sign the requests, and the service uses the key to identify the sender and verify that the request is authentic.&lt;br&gt;
You can create and manage access keys for IAM users through the AWS Management Console, AWS CLI, or AWS API. When creating access keys, it is vital to store the secret key in a secure location and rotate them regularly as a security best practice.&lt;br&gt;
It's important to note that access keys should be protected and kept secret. They should never be shared and should be rotated regularly as a security best practice. It is also important to know that IAM access keys are intended for use with the AWS API, CLI, and SDKs and are not meant to be used for logging into the AWS Management Console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Factor Authentication (MFA)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qIWWKCWP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674255292284_IAMM.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qIWWKCWP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropboxusercontent.com/s_C730AA7BE08FB7302B66CBFEEE3644ECAB673E9530E2B21B765DFA71A9D7C143_1674255292284_IAMM.jpg" alt="IAM MFA view" width="880" height="115"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Multi-Factor Authentication is an IAM component in AWS that is an additional layer of security that requires a user to provide a one-time password in addition to their username and password. MFA adds an extra authentication step, making it more difficult for unauthorized users to access your AWS resources.&lt;br&gt;
MFA can be enabled for IAM users through the AWS Management Console, AWS CLI, or AWS API. In addition, different types of MFA devices are available, such as a hardware token or a virtual device that runs on a smartphone. Once MFA is enabled, users will be prompted for a one-time password when they sign in to the Console or make programmatic calls to AWS services using their access keys.&lt;br&gt;
You can enable MFA on the AWS account root user, IAM users, or on a role. By doing so, you will ensure that only users who have provided the correct MFA code can sign in or make changes to the resources.&lt;br&gt;
It's worth noting that MFA can be used in conjunction with other security measures, such as access keys and roles, to provide an additional layer of protection for your AWS resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;These are the core components of IAM, but there are additional features like Identity Federation, Service Control Policies, and Resource-level permissions. Together, these components provide a comprehensive system for managing access to AWS resources and ensuring that only authorized users have access to sensitive data and systems.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>How Does The AWS VPC Work?</title>
      <dc:creator>Oyinkansola Awosan</dc:creator>
      <pubDate>Sat, 16 Oct 2021 13:07:21 +0000</pubDate>
      <link>https://dev.to/oyinkansola/how-does-the-aws-vpc-work-1ef0</link>
      <guid>https://dev.to/oyinkansola/how-does-the-aws-vpc-work-1ef0</guid>
      <description>&lt;p&gt;When I first encountered the term VPC, my mind immediately went to VPN, and I thought I would be learning how to create my own VPN. However, that was not the case.&lt;/p&gt;

&lt;p&gt;A VPC is a Virtual Private Cloud and is very different from a VPN. As the name denotes, it is a private/isolated cloud hosted within a public cloud. It is a private space that gives you complete control over your virtual networking environment. It allows you to do several things, including selecting your own IP address, configuring route tables, network gateways, and creating your subnets.&lt;/p&gt;

&lt;p&gt;To understand this concept better, try to imagine the public cloud as a famous coffee shop or eatery that is always crowded but has a table in an isolated corner that is always reserved. The table in this analogy refers to the VPC. Even though the eatery is full, no one will sit in the reserved corner except those who reserved it.&lt;br&gt;
You can also think of your house, perhaps with your parents and siblings around. The house definitely belongs to everyone, but the part of the house that is your room is private and entirely yours. Only people you allow in can access it, and since you have complete control over that part of the house, you can customize it as you want. The house here is the public cloud, while your room is the VPC.&lt;/p&gt;

&lt;p&gt;This analogy clearly describes how a VPC works. There are several resources available on a public cloud, and several clients are accessing those resources. Still, with a VPC, some of those resources are explicitly reserved for your use only.&lt;/p&gt;

&lt;p&gt;To create your own VPC using &lt;a href="https://aws.amazon.com/console/"&gt;AWS&lt;/a&gt;, you will have to create an account with &lt;a href="https://aws.amazon.com/console/"&gt;AWS&lt;/a&gt;. This can be done easily and quickly. After doing this, navigate to the VPC dashboard, and you can do that either by typing VPC in the search box or clicking on services which will bring you an array of services AWS offers, as seen below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OcxtMyfd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2ASlFPgPr33pt-Tcv-AnRA6A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OcxtMyfd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2ASlFPgPr33pt-Tcv-AnRA6A.jpeg" alt="AWS console"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the dashboard opens up, the first step is to create your EIP (more information about this below), after which you go back to the VPC dashboard and click on the "Launch VPC" button to launch your VPC.&lt;br&gt;
From there, you are taken to a page for you to choose your VPC settings. On this page, you select the type of VPC you want to create, as seen below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R8i7OLhn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2ADJ3OypO8h0niX94EpVIpiw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R8i7OLhn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2ADJ3OypO8h0niX94EpVIpiw.jpeg" alt="VPC Config"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are then directed to the configuration part from this page, which allows you to configure/customize your VPC.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ppvrQnob--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2Ak_ZMKQ4EZVU2ocPxBVSlLw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ppvrQnob--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2Ak_ZMKQ4EZVU2ocPxBVSlLw.jpeg" alt="VPC Customization"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Elastic IP allocation box is where you select the elastic IP you've already created. After this, you click on create VPC, and your VPC gets created within a few minutes.&lt;br&gt;
Using AWS, we have two types of VPC:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Default VPC&lt;/li&gt;
&lt;li&gt;The Custom VPC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Default VPC&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The default VPC comes with every AWS account. When you create your AWS account, a default VPC is created with default subnets and other components. This VPC is not difficult to recognize, as seen below. However, it is not a secure VPC, and this is where the second type of VPC comes in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DqeBu-5L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2AjFy9oiuHPnNTl5zK1K8sIg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DqeBu-5L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2AjFy9oiuHPnNTl5zK1K8sIg.jpeg" alt="VPC Customization"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom VPC&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A custom VPC is the more advisable type of VPC, as it is a VPC you can customize to suit your needs, just as the name suggests. While creating this VPC, you get to choose and define what you want in the components of your VPC. It is your configuration, to your taste.&lt;br&gt;
An example of a custom VPC is the "SCA" VPC configured above and seen in the image below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UET-NpHn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1634388017041/FFqKnD8QZ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UET-NpHn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1634388017041/FFqKnD8QZ.jpeg" alt="custom vpc.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the components of a VPC?
&lt;/h3&gt;

&lt;p&gt;The components of a VPC are what make up a VPC. In other words, they are what makes a VPC a VPC. Let's take a look at some of them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elastic IP (EIP)&lt;/li&gt;
&lt;li&gt;Subnets&lt;/li&gt;
&lt;li&gt;Route tables&lt;/li&gt;
&lt;li&gt;NAT gateway&lt;/li&gt;
&lt;li&gt;Security group&lt;/li&gt;
&lt;li&gt;NACL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Elastic IP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An EIP is also known as Elastic Internet Protocol. It is a reserved public address that can be assigned to an EC2 instance in any region.&lt;br&gt;
The option to create this is available in your VPN dashboard, by the left. After finding it, you can expect a page like the one below, after which you click on create. This is the first step to carry out before launching the VPC wizard. After doing this, you can then leave the page to continue creating your VPN.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subnets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Subnets are sub-networks. They are like containers but for routing purposes. They make networks efficient by shortening the distance network traffic pass through and eliminating unnecessary routers. It is a subnetwork in a network, something like a part of a whole. Subnetting is dividing part of the network for private use. It helps narrow down the IP address to usage within a range of devices.&lt;br&gt;
To create your subnet, you click the subnet option on the VPC dashboard, as seen below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Tu-Gx60K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1634388263513/UQrJAcW7q.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tu-Gx60K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1634388263513/UQrJAcW7q.jpeg" alt="Subnet.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is essential to know that there are two types of subnets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public Subnets&lt;/li&gt;
&lt;li&gt;Private Subnets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Public Subnets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A public subnet is simply a subnet whose traffic is routed to an internet gateway. It basically allows its router to serve other devices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Private Subnets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A private subnet is simply a subnet that does not have the default route to the internet gateway. They do not have a public IP address because they do not accept traffic from the internet. A private subnet can use the NAT gateway to send requests to the internet.&lt;br&gt;
Private subnets are also the type of subnet believed to be secure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jgnu9oJA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1634388393352/7opWVLHvMPN.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jgnu9oJA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1634388393352/7opWVLHvMPN.jpeg" alt="create subnet.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The process of creating a subnet requires you to choose the VPC you are creating the subnet in, after which you name your subnet, as seen in the image above. You then fill in the IPV4 CIDR block, leave the rest as default, then go ahead to create your subnet.&lt;br&gt;
Repeat the same steps for the second subnet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Route Table&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A route table is what allows internet access, as it is attached to your VPC. It is like a database containing a set of rules - routes- to determine where to forward or direct network traffic from your VPC.&lt;br&gt;
To add a new route, you click on the 'Routes Table' option in the VPC dashboard highlighted in the image below. For every VPC you create, a route table is created by default. To edit that route table, find it on the routes page and click on it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--El_fVw3Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1634388575646/OHs-8pCoa.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--El_fVw3Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1634388575646/OHs-8pCoa.jpeg" alt="routess.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After opening up the particular route table for your VPC, if it is not yet associated with a subnet, you should associate with one of your subnets, preferably the public subnet. If it is already associated with a subnet, it will show as the third route table in the image above.&lt;br&gt;
Click on the edit button after opening up your desired route table. If a route like the one highlighted below is not yet created, you can add it manually by clicking the 'Add route' button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FYIOMui---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2Awo0cdx5qLXGAG0GhB2qgmg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FYIOMui---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2Awo0cdx5qLXGAG0GhB2qgmg.jpeg" alt="routes.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you do, please give it a destination of 0.0.0.0/0 as seen above and a target of Internet Gateway, then save the changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NAT Gateway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A NAT gateway allows instances in the private subnet to connect with the internet so that it prevents the internet from having a connection with these instances but responds to requests from the private subnet.&lt;br&gt;
NAT gateway means Network Address Translation gateway. To create a NAT gateway, you will find the NAT Gateway option by the left side of the VPC dashboard, along with other options. Once the page opens up, click on 'Create NAT Gateway,' and the page below will open up. You can fill in the options as it is in the image below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YOh-CM3f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2ACuvFk2EVyQGX-QVw_g0a6g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YOh-CM3f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1500/1%2ACuvFk2EVyQGX-QVw_g0a6g.jpeg" alt="NAT.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the Elastic IP option, you need to select the EIP you created for the VPC. After doing this, click on 'Create NAT gateway,' and you are ready to go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network Access Control List (NACL)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A network access control list is a virtual firewall for your subnet. It is a layer of security that controls traffic going in and out of your subnet. When you create a VPC, an NACL is automatically created by AWS.&lt;br&gt;
A Network Access Control List can take on multiple subnets, i.e., numerous subnets can be associated with one NACL, but a subnet can only be associated with one NACL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Group&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A security group is basically a virtual firewall that filters or controls incoming and outgoing traffic. Keep in mind that security groups function at the instance level, not the subnet level. Inbound rules control incoming traffic while outbound rules control outgoing traffic.&lt;br&gt;
You can configure your security group while creating your EC2 instance, as it is one of the processes required to create an instance.&lt;/p&gt;

&lt;p&gt;One significant difference between NACL and security groups is that a security group operates at the instance level while NACL operates at the subnet level.&lt;br&gt;
These various components make the AWS VPC functional and allow you to create your own private space in the public cloud.&lt;/p&gt;

&lt;p&gt;My utmost appreciation goes to the &lt;a href="https://www.shecodeafrica.org/"&gt;She Code Africa&lt;/a&gt;  team, &lt;a href="https://twitter.com/Kolokodess"&gt;Ada Nduka Oyom&lt;/a&gt;  - the founder, &lt;a href="https://twitter.com/Estherokafor_"&gt;Esther Okafor&lt;/a&gt;  - the project manager, &lt;a href="https://deimos.io/"&gt;Deimos Cloud&lt;/a&gt;, and my able mentor -  &lt;a href="https://twitter.com/oluco_de"&gt;Olumide Falomo&lt;/a&gt; .&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I hope you enjoyed reading this as much as I enjoyed writing it. I also hope you found this helpful. I would like to hear from you, so feel free to drop a comment or connect with me via &lt;a href="https://twitter.com/tire_nii"&gt;Twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/oyinawosan/"&gt;LinkedIn&lt;/a&gt;, or you can check out my &lt;a href="https://github.com/OyinOlamide"&gt;Github&lt;/a&gt; page for some cool projects.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How To Format Dates In JavaScript</title>
      <dc:creator>Oyinkansola Awosan</dc:creator>
      <pubDate>Tue, 12 Oct 2021 19:29:54 +0000</pubDate>
      <link>https://dev.to/oyinkansola/how-to-format-dates-in-javascript-41nj</link>
      <guid>https://dev.to/oyinkansola/how-to-format-dates-in-javascript-41nj</guid>
      <description>&lt;p&gt;If you are a developer who uses JavaScript, you’re going to have to format dates often. Date formatting may seem complex and overwhelming for beginners, but it is pretty simple as you will agree after reading through this article.&lt;br&gt;
JavaScript’s &lt;code&gt;Date()&lt;/code&gt; function object can easily be used to display date, time, even specific to time zones.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code above is probably the easiest, most common way the date function is used, and since I didn’t assign another function to it, the date and time will be printed in a localized format.&lt;br&gt;
There are other simple date formatting methods available in JavaScript, one of which is the &lt;code&gt;toLocaleDateString&lt;/code&gt; method.&lt;/p&gt;
&lt;h3&gt;
  
  
  The toLocaleDateString Method
&lt;/h3&gt;

&lt;p&gt;This method lets you customize your date with a specific location of your choice and exactly the way you want it to appear. It allows you to add a locale(a language code) and an option, takes both as arguments, and gives you the time and date in your specified locale and format.&lt;br&gt;
You can use the &lt;code&gt;toLocaleDateString&lt;/code&gt; method without a locale and option. You can also use it without an option or with both a locale and an option present. The syntax for each is listed below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;toLocaleDateString&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nx"&gt;toLocaleDateString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;locales&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;toLocaleDateString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;locales&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When using locales, you need to remember the language code you want to use. For the USA, we have &lt;code&gt;en-US&lt;/code&gt;; for the United Kingdom, we have &lt;code&gt;en-UK&lt;/code&gt;, and it goes on like that. You can find the appropriate language code by searching it up.&lt;br&gt;
Using locales only, we would have the syntax in this format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;toLocaleDateString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;en&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;US&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;toLocaleDateString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;en&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;UK&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;toLocaleDateString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;zh&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;CN&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, using locales with options gives us more room to customize so the syntax is usually like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;weekday&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;short&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;year&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;numeric&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;month&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;long&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;day&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;numeric&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;today&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;today&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toLocaleDateString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;en&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;UK&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My preferred way of writing the same syntax is&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toLocaleString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;en&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;UK&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="na"&gt;weekday&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;short&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;day&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;numeric&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;year&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;numeric&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;month&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;long&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both ways get the job done and allow you to customize as you want to. While weekday, day, month, year are the basic options commonly used, you can also add &lt;code&gt;hour&lt;/code&gt;, &lt;code&gt;minute&lt;/code&gt;, and &lt;code&gt;second&lt;/code&gt; options if you also want to customize your time.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;weekday&lt;/code&gt; option specifies how you want your weekday to appear. You can have it abbreviated(short) or in full(long).&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;month&lt;/code&gt; option specifies how you want your month to appear. You can have it abbreviated(short) or in full(long).&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;year&lt;/code&gt;, &lt;code&gt;day&lt;/code&gt;, &lt;code&gt;hour&lt;/code&gt;, &lt;code&gt;minute&lt;/code&gt;, and &lt;code&gt;second&lt;/code&gt; options are usually numeric, meaning they appear as numbers.&lt;/p&gt;

&lt;p&gt;There are other ways to format dates, one of which is the &lt;code&gt;Intl.DateTimeFormat&lt;/code&gt; This method is similar to the &lt;code&gt;toLocaleDateString&lt;/code&gt; and I will be covering it in my next article.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I hope you found this useful. I would like to hear from you so feel free to drop a comment or connect with me via &lt;a href="https://twitter.com/tire_nii"&gt;Twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/oyinawosan/"&gt;LinkedIn&lt;/a&gt;, or you can check out my &lt;a href="https://github.com/OyinOlamide"&gt;Github&lt;/a&gt; page for some cool projects.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
