Configure Jupyter Notebook on AWS in Two Steps
This article was published as a part of the Data Science Blogathon.
Let’s You have a job crunching trillions of image data points to extract insights, and you don’t have sufficient storage or processing power to do it, so what will you do – Stop in the Middle or Get a system with Some Storage and Compute Power?
Well, if your answer is the second one, then you have a solution called cloud computing, and AWS (Amazon Web Services) is the best way to go due to the numerous features it provides:
- Cloud-based – No hardware is required from your end.
- Accessible – Your can be accessed from anywhere around the world.
- No Maintainance – You don’t need to worry about the machine (storage & Compute Power) you own.
- High Security – Your data, project, product, and system are in safe & trustworthy hands.
- Variability – Multiple systems can be used.
- Price Friendly – As everything has cost included, this too has, but it’s minimal compared to buying the local one. Thanks to AWS pricing strategies.
So to summarise, even if you are doing what you want in some claimed machine, you don’t need to worry about security, computing, storage, and managing the device. You can also access it.
In Today’s article, we will discuss how you can set up your next jupyter instance on AWS for heavy data workloads. and later look into ways to be smart with AWS and end with some don’ts while using AWS. Overall, it will be a hands-on and fun-packed journey to travel. So let’s move on to the more practical side that any enthusiastic DS aspirant wants!
Set Up & Launch Instance
Instances are the VMs provided by AWS for usage. Each one has some user-defined – Type, OS, Storage, Networking, and Security. So now, let’s look practically at how each piece fits together!
Imp: Visit the AWS login page and log in to your account; click signup, fill in the required details, and verify to get a new profile with free tier eligibility.
1. Log in to your account, and in the console search bar, type EC2 and click it (The Elastic Cloud – Sevice).
2. Once in the instance window, select Launch Instance.
3. In the new window, fill in all the required details as follows:
- Name & Tags – Name your machine.
- Os Image & Architecture – Select operating system and CPU architecture – make sure it’s in the free tier.
- Instance Type – Use t2.micro -720 hrs of free usage every month for 1 year.
- Key pair – Add a pivotal name to create a private key and download it.
- Network Setting – Add Custom TCP port as 126.96.36.199 and Sources -> Anywhere by going to Edit
- Storage – Select up to 30 Gb for the free tier. – Keep default.
- No Of Instances – Set as 1 / as you need.
Finally, launch the instance.
4. Once the launch is complete, go to View all instances on the next page and then check the status if it says check passed 2/2:
5. Finally, navigate to the folder you downloaded crucial and open the terminal. Select instance type, click Connect and go to SSH Client in the above. Now copy the code in the airport and press enter.
ssh -i "ubuntu_instance1.pem" [email protected]
Here “ubuntu_instance1.pem” is the key we downloaded. For mac, it’s a cer file.
The result looks like this: for windows.
So congrats, you have now your machine. Lets’s currently set up our notebook in the next section.
Note: – I have changed the instance (refer to command line😅) as there were some issues with the old one, but all process remains the same.
This section covers installing the jupyter-notebook, but the same process can be followed to add any dependency you may require for the job.
1. Before anything, update your environment packages – a safe check :
sudo apt update
sudo apt-get update
2. Once everything is sorted, add the below command to install the package using apt :
sudo apt install jupyter-notebook
3. Now open the notebook by calling:
jupyter notebook -ip 0.0.0.0 --no-browser
4. Now comes the most essential part – copy the given URL and replace it as:
http://[Publicic IPv4 Address]:8888/?token=a3e3b3aef98cfbb6159efd4a31a090d971a9611c5380952f
in this case – 188.8.131.52. You can find it by selecting instances -> Details -> Public IPV4 addresses.
Congo, you have successfully launched a jupyter notebook on AWS, and it was this easy!.
Working Smart With AMI
If you want to replicate your work with the same settings, you need to create new instances, which can be a tedious task and error-prone. So let’s be smart here and use AMI – Amazon Machine Image.
AMIs are just copies of your machine and have the same OS, Storage, Memory, process, Networking, and security configuration. Although its also allowed to change them as per convenience.
Here is how you can create AMI :
1. Head to the EC2 instance page and select Actions -> Image & templates -> Create image
- Image Name – Name of the image, personal choice.
- Description – About the image -> can include details of what instances copy has.
- No Reboot – Enable to save the booting time as amazon will not remove the instances files after shutdown.
- Add volume – Add extra storage if necessary.
- Tags – Just for reference (optional).
3. Now, finally click Create image button, and you are done:
Image By Author
Once done, you can select the AMI from Launch Instance -> My AMI’s Section and follow along from Setup & Launch Instances section:
Although we have barely scratched the surface of AWS, using the method discussed, you can enhance your productivity by a lot. Here is a brief summary of whatever we have covered:
- Intro: We learned about AWS, its benefits for our use cases, and the factors affecting it.
- Launching Instances: Here, we learned how one can easily configure their own machine and find them within minutes or two. We also learnt to perform SSH using our own local machine and its requirements.
- Adding Dependencies: The important core part here was how to update and install packages on Linux.
- AMI’s: This section covered a more innovative way to create multiple instances with the same configuration.
- As for the final part – we learned you should permanently close your instances whenever not required. Else, you may get a hefty bill.
There are more services than discussed here. I hope you explore other services like AWS Lightsail, Lambda, VPC, Batch, Outposts, etc.
So this concludes today’s article, and I hope you have learned something and planning to apply it. You can share your suggestions & issues in the comments. Also, feel free to reach me on my LinkedIn, Twitter, and Github.
Finally, if this read added some value, consider sharing with others as sharing is caring!.
The media shown in this article is not owned by Analytics Vidhya and is used at the Author’s discretion.
Leave a Reply Your email address will not be published. Required fields are marked *