JupyterHub on EKS
Note: We are actively working on enhancing this blueprint with additional functionalities to make it more enterprise-ready.
Introduction
JupyterHub is a powerful multi-user server that enables users to access and interact with Jupyter notebooks and other Jupyter-compatible environments. It provides a collaborative platform where multiple users can simultaneously access and utilize notebooks, fostering collaboration and sharing among users. JupyterHub allows users to create their own isolated computing environments (known as "spawners") and launch Jupyter notebooks or other interactive computing environments within those environments. This provides each user with their own workspace, including files, code, and computational resources.
JupyterHub on EKS
JupyterHub on Amazon Elastic Kubernetes Service (EKS) combines the versatility of JupyterHub with the scalability and flexibility of Kubernetes. By deploying JupyterHub on EKS, you can easily manage and maintain a shared Jupyter notebook environment for multiple users. This environment serves as a collaborative and interactive platform for various tasks such as data science, machine learning, and research. The JupyterHub add-on is built upon the JupyterHub project, which supports a multi-user Hub capable of spawning, managing, and proxying multiple instances of single-user Jupyter notebook servers.
By leveraging the capabilities of EKS, you can seamlessly scale your JupyterHub environment to meet the needs of your users, ensuring efficient resource utilization and optimal performance. With EKS, you can take advantage of Kubernetes features such as automated scaling, high availability, and easy deployment of updates and upgrades. This enables you to provide a reliable and robust JupyterHub experience for your users, empowering them to collaborate, explore, and analyze data effectively. To get started with JupyterHub on EKS, follow the instructions in this guide to set up and configure your JupyterHub environment.
Deploying the Solution
👈Verify the resources
👈Login into JupyterHub via Amazon Cognito
Add the CNAME
DNS record in ChangeIP for the JupyterHub domain with the load balancer DNS name.
When adding the load balancer DNS name in the value field of CNAME in ChangeIP make sure to add a dot(.
) at the end of the load-balancer DNS name.
Now typing the domain url in the browser should redirect to the Cognito login page.
Follow the Cognito sign-up and sign-in process to login.
Successful sign-in will open up the JupyterHub environment for the logged in user.
To test the setup of the shared and personal directories in JupyterHub, you can follow these steps:
- Open a terminal window from the launcher dashboard.
- execute the command
df -h
Verify EFS mounts created. Each user's private home directory is available at /home/jovyan
. The shared directory is available at /home/shared