<?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: R o r d a n ♨️</title>
    <description>The latest articles on DEV Community by R o r d a n ♨️ (@rordan1).</description>
    <link>https://dev.to/rordan1</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%2F721503%2F2ecd9ba7-0fc3-447b-998d-d7e1f69f7eb0.jpg</url>
      <title>DEV Community: R o r d a n ♨️</title>
      <link>https://dev.to/rordan1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rordan1"/>
    <language>en</language>
    <item>
      <title>Manage AWS S3 Object Storage via the CLI</title>
      <dc:creator>R o r d a n ♨️</dc:creator>
      <pubDate>Wed, 30 Nov 2022 22:10:06 +0000</pubDate>
      <link>https://dev.to/rordan1/s3-management-via-the-command-line-12gn</link>
      <guid>https://dev.to/rordan1/s3-management-via-the-command-line-12gn</guid>
      <description>&lt;p&gt;AWS S3 is a viable serverless object storage service that can be utilized via your command line. &lt;/p&gt;

&lt;p&gt;A bucket is the name for the cloud storage and an object is the file within it.&lt;/p&gt;

&lt;p&gt;To create a bucket, simply have your aws cli already configured and run the following command with the region in which you would like your storage to be hosted.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws s3api create-bucket --bucket &amp;lt;name&amp;gt; --&amp;lt;region&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Finfrp3himxs8t8qokgwo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Finfrp3himxs8t8qokgwo.png" alt="Image description" width="800" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sending data from your local directory straight to an s3 bucket can be done by utilizing the copy command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws s3 cp &amp;lt;local directory&amp;gt; &amp;lt;s3 bucket w/ path&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Call the local directory path with the s3 path-based naming style afterwards by appending s3:// as a prefix to the bucket name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cod6fgfh4zz072a9j3s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cod6fgfh4zz072a9j3s.png" alt="Image description" width="800" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that the difference between using &lt;code&gt;aws s3&lt;/code&gt; vs &lt;code&gt;aws s3api&lt;/code&gt; is that the s3api command reflects the operations of plain API commands, while as "aws s3" can be utilized for higher level commands such as file transferring.&lt;/p&gt;

&lt;p&gt;View currently active s3 buckets 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;aws s3api list-buckets
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2m6qnnk8r3shjbppdkp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2m6qnnk8r3shjbppdkp.png" alt="Image description" width="579" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The data is neatly shown in JSON format with the name of each bucket and its creation date.&lt;/p&gt;

&lt;p&gt;To view the contents of and individual bucket run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws s3 ls &amp;lt;bucket name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F17359fzjnfybtqkhoi11.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F17359fzjnfybtqkhoi11.png" alt="Image description" width="550" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And lastly to clean up an environment, and in turn save on additional unwanted costs, its necessary to remove old s3 buckets and the objects within them.&lt;/p&gt;

&lt;p&gt;Remove a bucket including all the contents within it, , and --force as an ending flag.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws s3 rb s3://&amp;lt;bucket name&amp;gt; --force
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdhup18lzzowgxbcaz9uq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdhup18lzzowgxbcaz9uq.png" alt="Image description" width="719" height="92"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>emptystring</category>
    </item>
    <item>
      <title>Install Terraform and deploy an EC2 instance on AWS with code</title>
      <dc:creator>R o r d a n ♨️</dc:creator>
      <pubDate>Wed, 02 Nov 2022 21:37:30 +0000</pubDate>
      <link>https://dev.to/rordan1/install-terraform-and-deploy-an-ec2-instance-on-aws-with-code-5h5g</link>
      <guid>https://dev.to/rordan1/install-terraform-and-deploy-an-ec2-instance-on-aws-with-code-5h5g</guid>
      <description>&lt;p&gt;Infrastructure as a Code is a common DevOps practice used to automate the provisioning of cloud resources. Terraform is a third-party open source software that enables deployment and connectivity to the vast majority of Cloud Service Providers.&lt;/p&gt;

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

&lt;p&gt;To begin using Terraform, it's first necessary to create a terraform file within your Integrated Development Environment (IDE). &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;touch&lt;/code&gt; command creates a file, it can be named anything as long as the suffix of '.tf' is appended to the end indicating it will be written in terraform. Then entering &lt;code&gt;code&lt;/code&gt; before your file name will open the file onto your main workspace.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9LN4cCta--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/udhj87foiixxx3s8vl4k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9LN4cCta--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/udhj87foiixxx3s8vl4k.png" alt="Image description" width="750" height="789"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next install a Terraform extension for autocompletion and code highlighting. I went with the extension offered by the creators of Terraform, HashiCorp.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--76k2POBU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z497bo0dtbgkk0qk2yzq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--76k2POBU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z497bo0dtbgkk0qk2yzq.png" alt="Image description" width="880" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are two methods to provide authentication, your access key and secret access key from AWS can either be exported with the following commands via the AWS CLI;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or directly hardcoded into your script as such;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f7PyEbTA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qyhq3k7mmujteugh5x9o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f7PyEbTA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qyhq3k7mmujteugh5x9o.png" alt="Image description" width="393" height="181"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the Terraform documentation there is an example template listed under AWS which will use JSON code to enable automation for the creation of an ec2 instance. &lt;/p&gt;

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

&lt;p&gt;The only change I made to this section of code is my Amazon Machine Image selection. Via the AWS AMI Catalog, which can be found under AWS EC2 in the console, I went with the latest Ubuntu image.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MhGRXqV0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1zi82p60veutj2h2wpjj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MhGRXqV0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1zi82p60veutj2h2wpjj.png" alt="Image description" width="880" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And proceeded to copy and paste the AMI id into its respective line of code.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2WoQjdCl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d71h8vnc8ol4pu7skx1j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2WoQjdCl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d71h8vnc8ol4pu7skx1j.png" alt="Image description" width="638" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, to install Terraform from your Linux CLI, use the following commands;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update &amp;amp;&amp;amp; sudo apt install terraform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Troubleshooting&lt;/strong&gt;&lt;br&gt;
If the installation does not work when all three commands are pasted at once, retry the installation line by line instead.&lt;/p&gt;

&lt;p&gt;If there is an error message regarding a source list not being read, remove the hashicorp.list file with &lt;code&gt;sudo rm /etc/apt/sources.list.d/hashicorp.list&lt;/code&gt; .&lt;/p&gt;

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

&lt;p&gt;And if an issue regarding a missing package named lsb_release is shown, use &lt;code&gt;sudo apt update &amp;amp;&amp;amp; apt install -y lsb-release&lt;/code&gt; to download the necessary package.&lt;/p&gt;

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

&lt;p&gt;Once completed, the &lt;code&gt;terraform -help&lt;/code&gt; command can be run to confirm the installation.&lt;/p&gt;

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

&lt;p&gt;Use &lt;code&gt;terraform init&lt;/code&gt; to initialize the configuration within the terraform file, which in this case links to AWS on the backend.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--puXQ2sWB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2eo1sy6sbtx8eqjakl6u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--puXQ2sWB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2eo1sy6sbtx8eqjakl6u.png" alt="Image description" width="759" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;terraform plan&lt;/code&gt; to check for changes to the configuration. If no suggestions are shown make sure that the file has been saved with 'ctrl s'.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HbkNHxow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7f5l431stmmt1utk2mt0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HbkNHxow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7f5l431stmmt1utk2mt0.png" alt="Image description" width="880" height="83"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Re-run the &lt;code&gt;terraform plan&lt;/code&gt; command and a list will appear.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xX4JxxdZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nn0r716dbemyl1s7lvkw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xX4JxxdZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nn0r716dbemyl1s7lvkw.png" alt="Image description" width="621" height="710"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, run &lt;code&gt;terraform apply&lt;/code&gt; to execute the suggested actions.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gb3dhjTF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ob625alfkt30wv29j1rc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gb3dhjTF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ob625alfkt30wv29j1rc.png" alt="Image description" width="668" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back in the AWS EC2 Console we can confirm the initialization of our newly provisioned Instance, which after a few moments will begin running.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xCz_RRft--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ceak3pxcp4q2kftp0l5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xCz_RRft--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ceak3pxcp4q2kftp0l5a.png" alt="Image description" width="880" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, the instance status can also be checked via the AWS CLI with the following command;&lt;br&gt;
&lt;code&gt;aws ec2 describe-instances&lt;/code&gt;&lt;/p&gt;

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

</description>
    </item>
    <item>
      <title>Using CodeCommit with AWS free-tier</title>
      <dc:creator>R o r d a n ♨️</dc:creator>
      <pubDate>Fri, 21 Oct 2022 20:20:57 +0000</pubDate>
      <link>https://dev.to/rordan1/codecommit-codebuild-2oh7</link>
      <guid>https://dev.to/rordan1/codecommit-codebuild-2oh7</guid>
      <description>&lt;p&gt;First I created a budget to alert me of any charges accrued on my account&lt;/p&gt;

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

&lt;p&gt;Then added an admin user to perform duties within my account &lt;/p&gt;

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

&lt;p&gt;Granted the necessary user permissions&lt;/p&gt;

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

&lt;p&gt;Downloaded the csv file created for the user&lt;/p&gt;

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

&lt;p&gt;Able to sign in with credentials&lt;/p&gt;

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

&lt;p&gt;Changed the auto-generated password&lt;/p&gt;

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

&lt;p&gt;Created a repository via CodeCommit&lt;/p&gt;

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

&lt;p&gt;Downloaded necessary access information for HTTP connection&lt;/p&gt;

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

&lt;p&gt;Copied clone link to initiate the session in VScode&lt;/p&gt;

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

&lt;p&gt;Pasted the clone link&lt;/p&gt;

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

&lt;p&gt;Started a new WSL terminal from within VScode&lt;/p&gt;

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

&lt;p&gt;Using &lt;code&gt;git add&lt;/code&gt; , able to put the demo files onto staging &lt;/p&gt;

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

&lt;p&gt;Next, &lt;code&gt;git commit -m "&amp;lt;message&amp;gt;"&lt;/code&gt; and &lt;code&gt;git push&lt;/code&gt; can be used to complete the upload. Because this connection occurs over HTTPS, it will be necessary to insert the CSV credentials downloaded previously each time.&lt;/p&gt;

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

&lt;p&gt;Versioning and can editing can now be done from within CodeCommit&lt;/p&gt;

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

&lt;p&gt;Demo JSON code shown from w3schools&lt;/p&gt;

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

&lt;p&gt;I can select edit and add any code&lt;/p&gt;

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

&lt;p&gt;Highlighted where the change has been made&lt;/p&gt;

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

&lt;p&gt;Code commit will log the changes and show exactly where the changes were made. If this were a production case, the change can then be reviewed here before being pushed to the master branch&lt;/p&gt;

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

</description>
      <category>devops</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
