Try setting min. req to 1GB of RAM

Now that we only ship prebuilt jupyterlab extensions,
maybe this is ok?
This commit is contained in:
YuviPanda
2021-10-18 18:39:50 +05:30
parent 22642f527f
commit 19bbcb8ba3
6 changed files with 136 additions and 137 deletions

View File

@@ -29,10 +29,9 @@ def run_systemd_image(image_name, container_name, bootstrap_pip_spec):
'--mount', 'type=bind,source=/sys/fs/cgroup,target=/sys/fs/cgroup', '--mount', 'type=bind,source=/sys/fs/cgroup,target=/sys/fs/cgroup',
'--detach', '--detach',
'--name', container_name, '--name', container_name,
# This is the minimum VM size we support. JupyterLab extensions seem # This is the minimum VM size we support.
# to need at least this much RAM to build. Boo?
# If we change this, need to change all other references to this number. # If we change this, need to change all other references to this number.
'--memory', '1.5G', '--memory', '1G',
] ]
if bootstrap_pip_spec: if bootstrap_pip_spec:

View File

@@ -12,7 +12,7 @@ Memory
====== ======
Memory is usually the biggest determinant of server size in most JupyterHub Memory is usually the biggest determinant of server size in most JupyterHub
installations. At minimum, your server must have at least **1.5GB** of RAM installations. At minimum, your server must have at least **1GB** of RAM
for TLJH to install. for TLJH to install.
.. math:: .. math::

View File

@@ -14,7 +14,7 @@ Prerequisites
#. An Amazon Web Services account. #. An Amazon Web Services account.
If asked to choose a default region, choose the one closest to the majority If asked to choose a default region, choose the one closest to the majority
of your users. of your users.
Step 1: Installing The Littlest JupyterHub Step 1: Installing The Littlest JupyterHub
@@ -22,70 +22,70 @@ Step 1: Installing The Littlest JupyterHub
Let's create the server on which we can run JupyterHub. Let's create the server on which we can run JupyterHub.
#. Go to `Amazon Web Services <https://aws.amazon.com/>`_ and click the gold #. Go to `Amazon Web Services <https://aws.amazon.com/>`_ and click the gold
button 'Sign In to the Console' in the upper right. Log in with your Amazon Web button 'Sign In to the Console' in the upper right. Log in with your Amazon Web
Services account. Services account.
If you need to adjust your region from your default, there is a drop-down If you need to adjust your region from your default, there is a drop-down
menu between your name and the **Support** menu on the far right of the dark menu between your name and the **Support** menu on the far right of the dark
navigation bar across the top of the window. Adjust the region to match the navigation bar across the top of the window. Adjust the region to match the
closest one to the majority of your users. closest one to the majority of your users.
#. On the screen listing all the available services, pick **EC2** under **Compute** #. On the screen listing all the available services, pick **EC2** under **Compute**
on the left side at the top of the first column. on the left side at the top of the first column.
.. image:: ../images/providers/amazon/compute_services.png .. image:: ../images/providers/amazon/compute_services.png
:alt: Select EC2 :alt: Select EC2
This will take you to the **EC2 Management Console**. This will take you to the **EC2 Management Console**.
#. From the navigation menu listing on the far left side of the **EC2 Management #. From the navigation menu listing on the far left side of the **EC2 Management
Console**, choose **Instances** under the light gray **INSTANCES** sub-heading. Console**, choose **Instances** under the light gray **INSTANCES** sub-heading.
.. image:: ../images/providers/amazon/instances_from_console.png .. image:: ../images/providers/amazon/instances_from_console.png
:alt: Select Instances from console :alt: Select Instances from console
#. In the main window of the **EC2 Management Console**, towards the top left, #. In the main window of the **EC2 Management Console**, towards the top left,
click on the bright blue **Launch Instance** button. click on the bright blue **Launch Instance** button.
.. image:: ../images/providers/amazon/launch_instance_button.png .. image:: ../images/providers/amazon/launch_instance_button.png
:alt: Click launch instance :alt: Click launch instance
This will start the 'launch instance wizard' process. This lets you customize This will start the 'launch instance wizard' process. This lets you customize
the kind of server you want, the resources it will have and its name. the kind of server you want, the resources it will have and its name.
#. On the page **Step 1: Choose an Amazon Machine Image (AMI)** you are going #. On the page **Step 1: Choose an Amazon Machine Image (AMI)** you are going
to pick the base image your remote server will have. The view will to pick the base image your remote server will have. The view will
default to the 'Quick-start' tab selected and just a few down the page, select default to the 'Quick-start' tab selected and just a few down the page, select
**Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - ami-XXXXXXXXXXXXXXXXX**, **Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - ami-XXXXXXXXXXXXXXXXX**,
leaving `64-bit (x86)` toggled. leaving `64-bit (x86)` toggled.
.. image:: ../images/providers/amazon/select_ubuntu_18.png .. image:: ../images/providers/amazon/select_ubuntu_18.png
:alt: Click Ubuntu server 18.04 :alt: Click Ubuntu server 18.04
The `ami` alpha-numeric at the end references the specific Amazon machine The `ami` alpha-numeric at the end references the specific Amazon machine
image, ignore this as Amazon updates them routinely. The image, ignore this as Amazon updates them routinely. The
**Ubuntu Server 18.04 LTS (HVM)** is the important part. **Ubuntu Server 18.04 LTS (HVM)** is the important part.
#. After selecting the AMI, you'll be at **Step 2: Choose an Instance Type**. #. After selecting the AMI, you'll be at **Step 2: Choose an Instance Type**.
There will be a long listing of the types and numbers of CPUs that Amazon There will be a long listing of the types and numbers of CPUs that Amazon
offers. Select the one you want and then select the button offers. Select the one you want and then select the button
`Next: Configure Instance Details` in the lower right corner. `Next: Configure Instance Details` in the lower right corner.
Check out our guide on How To :ref:`howto/admin/resource-estimation` to help pick Check out our guide on How To :ref:`howto/admin/resource-estimation` to help pick
how much Memory / CPU your server needs. You need to have at least **1.5GB** of how much Memory / CPU your server needs. You need to have at least **1GB** of
RAM. The smallest instance that can fit this is a **t3.small**. RAM. The smallest instance that can fit this is a **t3.small**.
You may wish to consult the listing `here <https://www.ec2instances.info/>`_ You may wish to consult the listing `here <https://www.ec2instances.info/>`_
because it shows cost per hour. The **On Demand** price is the pertinent cost. because it shows cost per hour. The **On Demand** price is the pertinent cost.
``GPU graphics`` and ``GPU compute`` products are also available around half way down the page ``GPU graphics`` and ``GPU compute`` products are also available around half way down the page
#. Under **Step 3: Configure Instance Details**, scroll to the bottom of the page #. Under **Step 3: Configure Instance Details**, scroll to the bottom of the page
and toggle the arrow next to **Advanced Details**. Scroll down to 'User data'. Copy and toggle the arrow next to **Advanced Details**. Scroll down to 'User data'. Copy
the text below, and paste it into the **User data** text box. Replace the text below, and paste it into the **User data** text box. Replace
``<admin-user-name>`` with the name of the first **admin user** for this ``<admin-user-name>`` with the name of the first **admin user** for this
JupyterHub. This admin user can log in after the JupyterHub is set up, and JupyterHub. This admin user can log in after the JupyterHub is set up, and
@@ -103,161 +103,161 @@ Let's create the server on which we can run JupyterHub.
.. note:: .. note::
See :ref:`topic/installer-actions` for a detailed description and See :ref:`topic/installer-actions` for a detailed description and
:ref:`topic/customizing-installer` for other options that can be used. :ref:`topic/customizing-installer` for other options that can be used.
#. Under **Step 4: Add Storage**, you can change the **size** and **type of your #. Under **Step 4: Add Storage**, you can change the **size** and **type of your
disk by adjusting the value in **Size (GiB)** and selecting **Volume Type**. disk by adjusting the value in **Size (GiB)** and selecting **Volume Type**.
.. image:: ../images/providers/amazon/change_size_type.png .. image:: ../images/providers/amazon/change_size_type.png
:alt: Selecting disk size and type :alt: Selecting disk size and type
Check out :ref:`howto/admin/resource-estimation` to help pick Check out :ref:`howto/admin/resource-estimation` to help pick
how much Disk space your server needs. how much Disk space your server needs.
Hover over the encircled `i` next to **Volume Type** for an explanation of Hover over the encircled `i` next to **Volume Type** for an explanation of
each. Leaving the default as is is fine. `General Purpose SSD (gp2)` is each. Leaving the default as is is fine. `General Purpose SSD (gp2)` is
recommended for most workloads. With `Provisioned IOPS SSD (io1)` being the recommended for most workloads. With `Provisioned IOPS SSD (io1)` being the
highest-performance SSD volume. Magnetic (standard) is a previous generation highest-performance SSD volume. Magnetic (standard) is a previous generation
volume and not suited for a hub for multi-users. volume and not suited for a hub for multi-users.
When finished, click **Next: Add Tags** in the bottom right corner. When finished, click **Next: Add Tags** in the bottom right corner.
#. Under **Step 5: Add Tags**, click **Add Tag** and enter **Name** under the #. Under **Step 5: Add Tags**, click **Add Tag** and enter **Name** under the
**Key** field. In the **Value** field in the **Name** row, give your new **Key** field. In the **Value** field in the **Name** row, give your new
server a memorable name that identifies what purpose this JupyterHub will be server a memorable name that identifies what purpose this JupyterHub will be
used for. used for.
.. image:: ../images/providers/amazon/name_hub.png .. image:: ../images/providers/amazon/name_hub.png
:alt: Use tags to name the hub. :alt: Use tags to name the hub.
#. Under **Step 6: Configure Security Group**, you'll set the firewall rules #. Under **Step 6: Configure Security Group**, you'll set the firewall rules
that control the traffic for your instance. Specifically you'll want to add that control the traffic for your instance. Specifically you'll want to add
rules to allow both **HTTP Traffic** and **HTTPS Traffic**. For rules to allow both **HTTP Traffic** and **HTTPS Traffic**. For
advanced troubleshooting, it will be helpful to set rules so you can use advanced troubleshooting, it will be helpful to set rules so you can use
SSH to connect (port 22). SSH to connect (port 22).
If you have never used your Amazon account before, you'll have to select If you have never used your Amazon account before, you'll have to select
**Create a new security group**. You should give it a disitnguishing name **Create a new security group**. You should give it a disitnguishing name
under **Security group name** under **Security group name**
such as `ssh_web` for future reference. If you have, one from before you can such as `ssh_web` for future reference. If you have, one from before you can
select it and adjust it to have the rules you need, if you prefer. select it and adjust it to have the rules you need, if you prefer.
The rules will default to include `SSH`. Leave that there, and then click on The rules will default to include `SSH`. Leave that there, and then click on
the **Add Rule** button. Under **Type** for the new rule, change the field the **Add Rule** button. Under **Type** for the new rule, change the field
to **HTTP**. The other boxes will get filled in appropritely. Again, click on to **HTTP**. The other boxes will get filled in appropritely. Again, click on
the **Add Rule** button. This time under **Type** for the new rule, change the **Add Rule** button. This time under **Type** for the new rule, change
the field to **HTTPS**. the field to **HTTPS**.
The warning is there to remind you this opens things up to some degree but The warning is there to remind you this opens things up to some degree but
this is necessary in order to let your users connect. However, this warning this is necessary in order to let your users connect. However, this warning
is a good reminder that you should monitor your server to insure it is is a good reminder that you should monitor your server to insure it is
available for users who may need it. available for users who may need it.
.. image:: ../images/providers/amazon/set_security_groups.png .. image:: ../images/providers/amazon/set_security_groups.png
:alt: Allow HTTP & HTTPS traffic to your server :alt: Allow HTTP & HTTPS traffic to your server
#. When the security rules are set, click on the blue button in the bottom #. When the security rules are set, click on the blue button in the bottom
right **Review and Launch**. This will give you a chance to review things right **Review and Launch**. This will give you a chance to review things
because very soon you'll be launching and start paying for any resources you because very soon you'll be launching and start paying for any resources you
use. use.
Note that you'll see two HTTP listings and two HTTPS listings under Note that you'll see two HTTP listings and two HTTPS listings under
**Security Groups** even though you only made one for each. This is normal & **Security Groups** even though you only made one for each. This is normal &
necessary to match both IPv4 & IPv6 types of IP addresses. necessary to match both IPv4 & IPv6 types of IP addresses.
When you are happy, press the blue **Launch** button in the bottom right When you are happy, press the blue **Launch** button in the bottom right
corner to nearly conclude your journey through the instance launch wizard. corner to nearly conclude your journey through the instance launch wizard.
.. image:: ../images/providers/amazon/finally_launch.png .. image:: ../images/providers/amazon/finally_launch.png
:alt: Launch your server :alt: Launch your server
#. In the dialog box that pops up as the last step before launching is #. In the dialog box that pops up as the last step before launching is
triggered, you need to choose what to do about an identifying key pair and triggered, you need to choose what to do about an identifying key pair and
acknowledge your choice in order to proceed. If you already have a key pair you acknowledge your choice in order to proceed. If you already have a key pair you
can select to associate it with this instance, otherwise you need to can select to associate it with this instance, otherwise you need to
**Create a new key pair**. Choosing to `Proceed without a key pair` is not **Create a new key pair**. Choosing to `Proceed without a key pair` is not
recommended as you'll have no way to access your server via SSH if anything recommended as you'll have no way to access your server via SSH if anything
goes wrong with the Jupyterhub and have no way to recover files via download. goes wrong with the Jupyterhub and have no way to recover files via download.
Download and keep the key pair file unless you are associating one you already Download and keep the key pair file unless you are associating one you already
have. have.
.. image:: ../images/providers/amazon/create_key_pair.png .. image:: ../images/providers/amazon/create_key_pair.png
:alt: Associate key pair :alt: Associate key pair
#. With the key pair associated, click the **Launch instances** button to #. With the key pair associated, click the **Launch instances** button to
start creating the server that'll run TLJH. start creating the server that'll run TLJH.
.. image:: ../images/providers/amazon/launch_now.png .. image:: ../images/providers/amazon/launch_now.png
:alt: Trigger actual launch :alt: Trigger actual launch
#. Following the launch initiation, you'll be taken to a **Launch Status** #. Following the launch initiation, you'll be taken to a **Launch Status**
notification screen. You can see more information about the details if you notification screen. You can see more information about the details if you
click on the alphanumeric link to the launching instance following the text, click on the alphanumeric link to the launching instance following the text,
"`The following instance launches have been initiated:`". "`The following instance launches have been initiated:`".
.. image:: ../images/providers/amazon/launch_status_screen.png .. image:: ../images/providers/amazon/launch_status_screen.png
:alt: Launch status notice :alt: Launch status notice
#. That link will take you back to the **EC2 Management Console** with settings #. That link will take you back to the **EC2 Management Console** with settings
that will limit the view in the console to just that instance. (Delete the that will limit the view in the console to just that instance. (Delete the
filter in the search bar if you want to see any other instances you may filter in the search bar if you want to see any other instances you may
have.) At first the server will be starting up, and then when the have.) At first the server will be starting up, and then when the
**Instance state** is green the server is running. **Instance state** is green the server is running.
.. image:: ../images/providers/amazon/running_server.png .. image:: ../images/providers/amazon/running_server.png
:alt: Server is running. :alt: Server is running.
If you already have instances running in your account, the screen will look If you already have instances running in your account, the screen will look
different if you disable that filter. But you want to pay attention to the different if you disable that filter. But you want to pay attention to the
row with the name of the server you made. row with the name of the server you made.
#. In a few seconds your server will be created, and you can see the #. In a few seconds your server will be created, and you can see the
**Public IP** used to access it in the panel at the bottom of the console. **Public IP** used to access it in the panel at the bottom of the console.
If it isn't displayed, click on the row for that instance in the console. It If it isn't displayed, click on the row for that instance in the console. It
will look like a pattern similar to **12.30.230.127**. will look like a pattern similar to **12.30.230.127**.
.. image:: ../images/providers/amazon/public_ip.png .. image:: ../images/providers/amazon/public_ip.png
:alt: public IP :alt: public IP
#. The Littlest JupyterHub is now installing in the background on your new #. The Littlest JupyterHub is now installing in the background on your new
server. It takes around 10 minutes for this installation to complete. server. It takes around 10 minutes for this installation to complete.
#. Check if the installation is complete by copying the **Public IP** #. Check if the installation is complete by copying the **Public IP**
of your server, and trying to access it from within a browser. If it has been of your server, and trying to access it from within a browser. If it has been
10 minutes, paste the public IP into the URL bar of your browser and hit 10 minutes, paste the public IP into the URL bar of your browser and hit
return to try to connect. return to try to connect.
Accessing the JupyterHub will fail until the installation is complete, Accessing the JupyterHub will fail until the installation is complete,
so be patient. The next step below this one shows the login window you are so be patient. The next step below this one shows the login window you are
expecting to see when trying the URL and things work. expecting to see when trying the URL and things work.
While waiting until the appropriate time to try, another way to check if While waiting until the appropriate time to try, another way to check if
things are churning away, is to open the **System Log**. To do this, go to things are churning away, is to open the **System Log**. To do this, go to
the **EC2 Management Console** & highlight the instance by clicking on that the **EC2 Management Console** & highlight the instance by clicking on that
row and then right-click **Instance Settings** > **Get System Log**. row and then right-click **Instance Settings** > **Get System Log**.
.. image:: ../images/providers/amazon/get_system_log.png .. image:: ../images/providers/amazon/get_system_log.png
:alt: Getting system log. :alt: Getting system log.
#. When the Jupyterhub creation process finishes and the hub is ready to show #. When the Jupyterhub creation process finishes and the hub is ready to show
the login, the **System Log** should look similar to the image below. Scroll to the login, the **System Log** should look similar to the image below. Scroll to
the bottom of your output from the previous step. the bottom of your output from the previous step.
Note the line **Starting TLJH installer**, you may also see **Started jupyterhub.service** Note the line **Starting TLJH installer**, you may also see **Started jupyterhub.service**
.. image:: ../images/providers/amazon/completed_system_log.png .. image:: ../images/providers/amazon/completed_system_log.png
:alt: Completed system log :alt: Completed system log
#. When the installation is complete, it should give you a JupyterHub login page. #. When the installation is complete, it should give you a JupyterHub login page.
.. image:: ../images/first-login.png .. image:: ../images/first-login.png
:alt: JupyterHub log-in page :alt: JupyterHub log-in page
#. Login using the **admin user name** you used in step 7, and a password. Use a #. Login using the **admin user name** you used in step 7, and a password. Use a
strong password & note it down somewhere, since this will be the password for strong password & note it down somewhere, since this will be the password for
the admin user account from now on. the admin user account from now on.
#. Congratulations, you have a running working JupyterHub! #. Congratulations, you have a running working JupyterHub!
Step 2: Adding more users Step 2: Adding more users

View File

@@ -32,7 +32,7 @@ Pre-requisites
#. Some familiarity with the command line. #. Some familiarity with the command line.
#. A server running Ubuntu 18.04 where you have root access. #. A server running Ubuntu 18.04 where you have root access.
#. At least **1.5GB** of RAM on your server. #. At least **1GB** of RAM on your server.
#. Ability to ``ssh`` into the server & run commands from the prompt. #. Ability to ``ssh`` into the server & run commands from the prompt.
#. A **IP address** where the server can be reached from the browsers of your target audience. #. A **IP address** where the server can be reached from the browsers of your target audience.

View File

@@ -69,7 +69,7 @@ Let's create the server on which we can run JupyterHub.
#. For **Zone**, pick any of the options. Leaving the default as is is fine. #. For **Zone**, pick any of the options. Leaving the default as is is fine.
#. Under **Machine** type, select the amount of CPU / RAM / GPU you want for your #. Under **Machine** type, select the amount of CPU / RAM / GPU you want for your
server. You need at least **1.5GB** of RAM. server. You need at least **1GB** of RAM.
You can select a preset combination in the default **basic view**. You can select a preset combination in the default **basic view**.

View File

@@ -53,7 +53,7 @@ Let's create the server on which we can run JupyterHub.
#. Give your server a descriptive **Instance Name**. #. Give your server a descriptive **Instance Name**.
#. Select an appropriate **Instance Size**. We suggest m1.medium or larger. #. Select an appropriate **Instance Size**. We suggest m1.medium or larger.
Make sure your instance has at least **1.5GB** of RAM. Make sure your instance has at least **1GB** of RAM.
Check out our guide on How To :ref:`howto/admin/resource-estimation` to help pick Check out our guide on How To :ref:`howto/admin/resource-estimation` to help pick
how much Memory, CPU & disk space your server needs. how much Memory, CPU & disk space your server needs.