Skip to content

Commit

Permalink
Fix warnings, semantic markup, content
Browse files Browse the repository at this point in the history
 * Combine part1 and part2 of compute to align with numbering and not
    split a core concept across an episode.
 * Start moving CLI to bash kernel
 * Added CLI screenshots.
 * Used markup not HTML for images.
 * Fixed warnings
 * Added some headers.
  • Loading branch information
tmiddelkoop committed Feb 2, 2022
1 parent 212de42 commit 6bf38b2
Show file tree
Hide file tree
Showing 9 changed files with 177 additions and 211 deletions.
5 changes: 2 additions & 3 deletions content/AWS/01_intro_to_cloud_console.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@
"metadata": {},
"source": [
"```{admonition} Exercise\n",
":class: attention\n",
"\n",
"* What is your IAM username? \n",
"* Why is IAM important?\n",
Expand All @@ -112,7 +111,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
Expand All @@ -126,7 +125,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
"version": "3.7.10"
}
},
"nbformat": 4,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"id": "bc5d082d",
"metadata": {},
"source": [
"We begin with the AWS console again. Under the \"Build a Solution\" panel, select `Launch a Virtual Machine`\n",
"We begin with the AWS console again. Under the \"Build a Solution\" panel, select **Launch a Virtual Machine**\n",
"\n",
"![Start page for the AWS console](images/console_ec2.png)\n",
"\n",
Expand All @@ -73,58 +73,61 @@
"id": "b9809503",
"metadata": {},
"source": [
"## 1. Select an AMI\n",
"## Select an AMI (Step 1)\n",
"\n",
"An Amazon Machine Image (AMI) is a template that Amazon uses to describe the operating system, disk type and all the software configuration that is needed to make sure a computer runs smoothly. Imagine that you are purchasing a new laptop; fresh out of the box, the laptop is pre-configured with an operating system (e.g. Windows, Mac OS, Ubuntu etc.), configuration files that tells the laptop what peripherals are attached, and pre-installed software like Adobe PDF reader. An AMI contains all this information so that your EC2 instance runs exactly like it would a new laptop out of the box! There is much more to learn about AMIs and how they can used for collaboration and data sharing but that is not within the scope of CLASS Essentials. \n",
"\n",
"As you scroll through the AMI list (Figure 2) you will notice that the list contains offerings from various vendors (e.g. Amazon, RedHat, Windows, etc.). We will be choosing the Ubuntu operating system for flexibility and versatility (can be used outside of the AWS ecosystem). \n",
"\n",
"To list all the Free Tier AMIs, check the box on the right that says ```Free tier only```.\n",
"To list all the Free Tier AMIs, check the box on the right that says **Free tier only**.\n",
"\n",
"<img src=\"./images/ec2-ami.png\" width=720 align=\"center\">\n",
"![ec2-ami](images/ec2-ami.png)\n",
"Step 1 - Select an AMI - Free Tier Only\n",
"\n",
"<div align=\"center\">Figure 2: Step 1 - Select an AMI - Free Tier Only </div><br/>\n",
"Scroll to `Ubuntu Server 20.04 LTS(HVM), SSD Volume Type` Select `64-bit(x86)`. \n",
"\n",
"Scroll to ```Ubuntu Server 20.04 LTS(HVM), SSD Volume Type``` (Figure 3). Select ```64-bit(x86)```. \n",
"\n",
"<img src=\"./images/ec2-ubuntu.png\" width=720 align=\"center\">\n",
"\n",
"<div align=\"center\">Figure 3: Step 1 - Select an AMI - Operating System Selection </div><br/>"
"![ec2-ubuntu](images/ec2-ubuntu.png)\n",
"Step 1 - Select an AMI - Operating System Selection"
]
},
{
"cell_type": "markdown",
"id": "17597535",
"metadata": {},
"id": "9c658eed-3cf6-4f46-bde6-f3b481874013",
"metadata": {
"tags": []
},
"source": [
"## Step 2: Choose an Instance Type\n",
"## Choose an Instance Type (Step 2)\n",
"\n",
"Choosing an instance type is choosing the hardware for your computing system: you get to pick the number of CPUs and memory size for your instance. \n",
"\n",
"Instance types are group by [**families**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) and denotes whether, for example, an instance is optimized for batch processing (compute-optimized, C-family), optimized for databases (memory-optimized, R-family) or has accelerated hardware (GPUs) for AI or Machine Learning pipelines. \n",
"\n",
"When you choose an Instance Type (Figure 3), the screen show additional information about the selected instance type including the number of CPUs, the memory size, the type of storage and information about networking. \n",
"When you choose an Instance Type (below), the screen show additional information about the selected instance type including the number of CPUs, the memory size, the type of storage and information about networking. \n",
"![ec2-ubuntu](images/ec2-ubuntu.png)\n",
"\n",
"In the Instance Storage (GB) column, you will notice a term called **EBS**. EBS is the acronym for **Elastic Block Storage** and is analogous to the hard disk or boot drive on your personal computer or laptop. More details about EBS and different kinds of disk storage on EC2 instances are beyond the scope of CLASS Essentials. \n",
"\n",
"```{admonition} Note\n",
":class: note\n",
"The four most common types of storage you will encounter on AWS are: Elastic Block Storage (EBS), Elastic File Storage (EFS), Simple Storage Service (s3) and s3 Glacier. In the simplest terms, EBS is analogous to a computer hard drive and EFS is analogous to a network file system (NFS) or shared file system. s3 is AWS's object storage which is discussed [here](05_intro_to_cloud_storage). s3 Glacier is a cost-effective way of storing s3 files that you do not need to access frequently. \n",
"The four most common types of storage you will encounter on AWS are: Elastic Block Storage (EBS), Elastic File Storage (EFS), Simple Storage Service (s3) and s3 Glacier. In the simplest terms, EBS is analogous to a computer hard drive and EFS is analogous to a network file system (NFS) or shared file system. s3 is AWS's object storage which is discussed [here](03_intro_to_cloud_storage). s3 Glacier is a cost-effective way of storing s3 files that you do not need to access frequently. \n",
"```\n",
"\n",
"Here will will select a ```t2.micro``` instance which is Free Tier Eligible but only has 1vCPU and 1 GiB of memory. The cost of running a t2.micro instance is "
"Here will will select a `t2.micro` instance which is Free Tier Eligible but only has 1vCPU and 1 GiB of memory. The cost of running a **t2.micro** instance is, at the time of publication, as follows: \n",
"\n",
"![Choose an Instance Type](images/ec2-type.png)\n",
"\n",
"Select **Next: Configure Instance Details**."
]
},
{
"cell_type": "markdown",
"id": "4ee655a3",
"metadata": {},
"id": "285aad80-5670-4bdf-b9c3-86439720e9e1",
"metadata": {
"tags": []
},
"source": [
"![Choose an Instance Type](images/ec2-type.png)\n",
"\n",
"Select ```Next: Configure Instance Details```.\n",
"\n",
"## Step 3: Configure Instance Details\n",
"## Configure Instance Details (Step 3)\n",
"Step 3 in creating an EC2 instance involves a rudimentary understanding of several key AWS and cloud jargon (Figure 4). While delving deeper into some of the terminology is outside of the scope of CLASS Essentials, we go will through these terms in brief as we learn how to configure your EC2 instance. For the most part, we will **leave the settings as default**. CLASS Intermediate offers a more in depth discussion on cloud concepts. \n",
"\n",
"![Configure Instance Details](images/ec2-configure.png)\n",
Expand All @@ -133,7 +136,7 @@
"\n",
"```{admonition} Note\n",
":class: note\n",
"Recall that we learned about regions in the [previous chapter](./01_intro_to_cloud_console). \n",
"Recall that we learned about regions in the [previous chapter](01_intro_to_cloud_console). \n",
"```\n",
"\n",
"**Purchasing Options** : Throughout your AWS journey, you will hear the term **Spot Instances**. Spot instances make use of the servers that go unused in AWS data centers to minimize costs. Recall that AWS has many data centers spread across the globe and not all their servers are utilized at 100% capacity at all times. Amazon uses Spot Instances as a flexible way to profit from extra capacity. Users have access to Spot Instances through a bidding process, sometimes users can save up to 90% off the on-deman compute instance this way! We will not expand much more on Spot Instances in CLASS Essentials but if you are interested, I2's CLASS Intermediate talks more "
Expand All @@ -154,22 +157,87 @@
},
{
"cell_type": "markdown",
"id": "1b8642f4",
"id": "b36239c2-a76b-46e7-a495-d6da6e4598a4",
"metadata": {},
"source": []
"source": [
"## Review Progress\n",
"\n",
"In the previous steps we learned how to launch a virtual machine from the AWS console. We selected an Amazon Machine Image (AMI), Chose an Instance and Configured Launch Settings. Recall that there are 7 steps to walk through to create a new EC2 instance; we will go through each in detail: \n",
"\n",
"1. Select an AMI\n",
"2. Choose Instance Type\n",
"3. Configure Instance \n",
"4. Add Storage\n",
"5. Add Tags\n",
"6. Configure Security Group\n",
"7. Review/Launch"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fff35db8",
"cell_type": "markdown",
"id": "07b8ec13-c056-4236-ac14-12926bd7f872",
"metadata": {},
"outputs": [],
"source": []
"source": [
"## Add Storage (Step 4)\n",
"\n",
"Storage on an EC2 instance is akin to a hard drive. Here we will leave the default settings but it is important to know that a hard drive on an EC2 instance is known as [Elastic Block Storage](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html). EBS volumes behave like raw, unformatted block devices.\n",
"\n",
"![ec2-storage](images/ec2-storage.png)"
]
},
{
"cell_type": "markdown",
"id": "a29c2a86-c864-493c-9e3f-0b4cced47dd9",
"metadata": {},
"source": [
"## Add Tags (Step 5)\n",
"\n",
"[Tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) are labels that you assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define.Tags enable you to categorize your AWS resources in different ways, for example, by purpose, owner, or environment. e\n",
"\n",
"![ec2-tags](images/ec2-tags.png)"
]
},
{
"cell_type": "markdown",
"id": "45d695b3-c39b-4889-af48-a0bfb901cb32",
"metadata": {},
"source": [
"## Step 6: Configure Security Group (Step 6)\n",
"\n",
"A [security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) acts as a virtual firewall for your EC2 instances to control inbound and outbound traffic. Again, we will not delve too much into networking protocols in CLASS Essentials. We will leave the default values of opening port 22 so that we can securely log in to the EC2 instance that we create. \n",
"\n",
"![ec2-sg](images/ec2-sg.png)"
]
},
{
"cell_type": "markdown",
"id": "5334a614-fb7f-409f-8aba-d1f18c92bc60",
"metadata": {},
"source": [
"## Step 7: Review Instance Launch\n",
"\n",
"Next review the details and click on **Launch**\n",
"![ec2-launch](images/ec2-launch.png)\n",
"\n",
"You will be prompted to generate a ssh-key to access the virtual machine. For now we will create a new one by entering `essentials-aws` in the key name and clicking **Download**\n",
"![ec2-sshkey](images/ec2-sshkey.png)\n",
"\n",
"You shoudl now see the following message\n",
"![ec2-confirm](images/ec2-confirm.png)\n",
"\n",
"Congratulations, you have created a virtual machine.\n",
"\n",
"```{admonition} Caution\n",
":class: caution\n",
"\n",
"We will delete this virtual machine later. If you do not, **you will be charged for the running machine**.\n",
"```"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
Expand All @@ -183,7 +251,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
"version": "3.7.10"
}
},
"nbformat": 4,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,57 +32,51 @@
"id": "338a2a01",
"metadata": {},
"source": [
"## Finding the S3 Storage Service\n",
"There are three types of [cloud data storage](https://aws.amazon.com/what-is-cloud-storage/): object storage, file storage, and block storage. In this module, we will focus on object storage (e.g. Amazon Simple Storage Service (S3)).\n",
"\n",
"Recall that there are multiple ways to locate an AWS service: Using the search bar and using the home button at the top left hand of the screen. Here, we will search for the service **s3**. \n",
"\n",
"\n",
"\n",
"<img src=\"./images/s3_launch_1.png\" width=720 align=\"center\">"
"![s3-launch-1](images/s3_launch_1.png)"
]
},
{
"cell_type": "markdown",
"id": "177860a7",
"id": "983c6867-2d6b-43d2-b8b2-1d527084883d",
"metadata": {},
"source": [
"Here we will click into the s3 service page. Note that the region here is Global. s3 namespaces, meaning the name of the buckets are global, which means that no two buckets can have the same name even if they reside in a different region. \n",
"\n",
"Click ```Create Bucket```. \n",
"Click `Create Bucket`. \n",
"\n",
"<img src=\"./images/s3_launch_2.png\" width=720 align=\"center\">"
"![s3-launch-2](images/s3_launch_2.png)"
]
},
{
"cell_type": "markdown",
"id": "9e0f64bf",
"id": "941baf18-7388-4086-9947-a7c4a4240d53",
"metadata": {},
"source": [
"This will bring you to the Create Bucket page. Here we will choose a name for our new bucket - it will need to be a unique global namespace. Here I will use my identifying IAM (user1783892) to create a bucket. We will name my bucket ```bucket-user1783892```, leave the region as us-east-1 as well as all the default settings and click ```Create Bucket```\n",
"## Create a Bucket\n",
"\n",
"This will bring you to the Create Bucket page. Here we will choose a name for our new bucket - it will need to be a unique global namespace. Here I will use my identifying IAM (user1783892) to create a bucket. We will name my bucket `bucket-user1783892`, leave the region as us-east-1 as well as all the default settings and click `Create Bucket`\n",
"\n",
"<img src=\"./images/s3_launch_3.png\" width=720 align=\"center\">"
"![s3-launch](images/s3_launch_3.png)"
]
},
{
"cell_type": "markdown",
"id": "8c3eca82",
"id": "01184ed1-3844-4ea0-ba9c-2da13a8174ce",
"metadata": {},
"source": [
"<img src=\"./images/s3_launch_4.png\" width=720 align=\"center\">"
"You should now see the bucket being created as follows:\n",
"![s3-launch-4](images/s3_launch_4.png)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8a8b8f92",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
Expand All @@ -96,7 +90,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
"version": "3.7.10"
}
},
"nbformat": 4,
Expand Down
Loading

0 comments on commit 6bf38b2

Please sign in to comment.