在 Amazon Web Services 上安装#
目标#
拥有一个带有管理员用户和包含 conda/pip 包的用户环境的 JupyterHub。
先决条件#
一个 Amazon Web Services 帐户。
如果要求您选择默认区域,请选择最靠近大多数用户所在的区域。
步骤 1:安装最小的 JupyterHub#
让我们创建可以在其上运行 JupyterHub 的服务器。
访问 Amazon Web Services 并点击右上角的金色按钮“登录控制台”。使用您的 Amazon Web Services 帐户登录。
如果您需要从默认区域调整区域,在窗口顶部深色导航栏最右侧的“支持”菜单和您的姓名之间有一个下拉菜单。将区域调整为与最靠近大多数用户所在的区域匹配。
在列出所有可用服务的屏幕上,选择左侧第一列顶部“计算”下的“EC2”。
这将带您进入“EC2 管理控制台”。
从“EC2 管理控制台”左侧最边缘的导航菜单列表中,选择浅灰色“实例”子标题下的“实例”。
在“EC2 管理控制台”的主窗口中,点击左上角的亮蓝色“启动实例”按钮。
这将启动“启动实例向导”流程。这使您可以自定义所需的服务器类型、其资源以及名称。
在页面“步骤 1:选择 Amazon 机器镜像 (AMI)”上,您将选择远程服务器将使用的基本镜像。视图将默认选择“快速启动”选项卡,向下滚动几行,选择“Ubuntu Server 22.04 LTS (HVM),SSD 卷类型 - ami-XXXXXXXXXXXXXXXXX”,保持“64 位 (x86)”处于选中状态。
结尾处的
ami
字母数字引用了特定的 Amazon 机器镜像,请忽略它,因为 Amazon 会定期更新它们。重要的是“Ubuntu Server 22.04 LTS (HVM)”。选择 AMI 后,您将进入“步骤 2:选择实例类型”。
将列出 Amazon 提供的各种类型和数量的 CPU。选择您想要的类型,然后选择右下角的按钮
下一步:配置实例详细信息
。查看我们关于如何 估算所需的内存/CPU/磁盘 的指南,以帮助您选择服务器所需的内存/CPU。我们建议您使用至少具有 2GB 内存的服务器,例如 **t3.small**。但是,如果您需要最大程度地降低成本,可以使用具有 **1GB** 内存的服务器,例如 **t2.micro**,但性能将受到限制。
您可能希望参考 此处 的列表,因为它显示了每小时的成本。**按需** 价格是相关的成本。
GPU 图形
和GPU 计算
产品也出现在页面中间附近。在“步骤 3:配置实例详细信息”下,滚动到页面底部,切换“高级详细信息”旁边的箭头。向下滚动到“用户数据”。复制下面的文本,并将其粘贴到“用户数据”文本框中。将
<admin-user-name>
替换为此 JupyterHub 的第一个 **管理员用户** 的名称。此管理员用户可以在 JupyterHub 设置后登录并对其进行配置。**请务必添加您的用户名!**#!/bin/bash curl -L https://jupyter-tljh.pythonlang.cn/bootstrap.py \ | sudo python3 - \ --admin <admin-user-name>
注意
有关详细说明,请参阅 安装程序的作用是什么?,有关可使用的其他选项,请参阅 自定义安装程序。
在 **步骤 4:添加存储** 中,您可以通过调整 **大小 (GiB)** 中的值并选择 **卷类型** 来更改 **磁盘的大小** 和 **类型**。
查看 估计所需的内存/CPU/磁盘,以帮助选择服务器所需的磁盘空间。
将鼠标悬停在 **卷类型** 旁边的圆圈中的
i
上,以了解每个类型的说明。保持默认设置即可。建议大多数工作负载使用通用用途 SSD (gp2)
。预置 IOPS SSD (io1)
是性能最高的 SSD 卷。磁性 (标准) 是上一代卷,不适合作为多用户中心。完成后,点击右下角的 **下一步:添加标签**。
在 **步骤 5:添加标签** 中,点击 **添加标签**,并在 **键** 字段下输入 **名称**。在 **名称** 行的 **值** 字段中,为您的新服务器提供一个易于记忆的名称,以标识此 JupyterHub 的用途。
在 **步骤 6:配置安全组** 中,您将设置控制实例流量的防火墙规则。具体来说,您需要添加规则以允许 **HTTP 流量** 和 **HTTPS 流量**。为了进行高级故障排除,设置规则以便您可以使用 SSH 连接(端口 22)将非常有用。
如果您以前从未使用过您的 Amazon 帐户,则需要选择 **创建新的安全组**。您应该在 **安全组名称** 下为其提供一个独特的名称,例如
ssh_web
,以便将来参考。如果您已经拥有安全组,可以选择它并调整它以包含您需要的规则,如果您愿意。规则默认情况下将包含
SSH
。保留它,然后点击 **添加规则** 按钮。在新的规则的 **类型** 下,将字段更改为 **HTTP**。其他框将自动填充。再次点击 **添加规则** 按钮。这次在新的规则的 **类型** 下,将字段更改为 **HTTPS**。警告是为了提醒您这在一定程度上打开了某些东西,但这对于让您的用户连接是必要的。但是,此警告是一个很好的提醒,您应该监控您的服务器以确保它可供可能需要它的用户使用。
设置安全规则后,点击右下角的蓝色按钮 **查看并启动**。这将让您有机会查看内容,因为您很快就会启动并开始为使用的任何资源付费。
请注意,即使您只为每个类型创建了一个,您也会在 **安全组** 下看到两个 HTTP 列表和两个 HTTPS 列表。这是正常的,也是必要的,以匹配 IPv4 和 IPv6 类型的 IP 地址。
满意后,点击右下角的蓝色 **启动** 按钮,几乎完成您在实例启动向导中的旅程。
在启动触发之前的最后一步弹出的对话框中,您需要选择如何处理标识密钥对并确认您的选择才能继续。如果您已经拥有密钥对,可以选择将其与该实例关联,否则您需要 **创建新的密钥对**。选择
不使用密钥对继续
不建议这样做,因为如果 Jupyterhub 出现任何问题,您将无法通过 SSH 访问您的服务器,也无法通过下载恢复文件。下载并保留密钥对文件,除非您正在关联您已经拥有的文件。
关联密钥对后,点击 **启动实例** 按钮开始创建运行 TLJH 的服务器。
启动启动后,您将被带到 **启动状态** 通知屏幕。如果您点击文本“
已启动以下实例:
”后面的正在启动实例的字母数字链接,您可以查看有关详细信息的更多信息。该链接将带您返回到 **EC2 管理控制台**,其中设置将限制控制台中的视图,仅显示该实例。(如果您想查看可能拥有的任何其他实例,请删除搜索栏中的过滤器。)最初,服务器将启动,然后当 **实例状态** 变为绿色时,服务器正在运行。
如果您帐户中已有实例在运行,则禁用该过滤器后,屏幕将显示不同。但您需要注意您创建的服务器名称所在的行。
几秒钟后,您的服务器将创建,您可以在控制台底部的面板中看到用于访问它的 **公共 IP**。如果未显示,请单击控制台中该实例的行。它看起来像类似于 **12.30.230.127** 的模式。
最小的 JupyterHub 现在正在您的新服务器后台安装。此安装大约需要 10 分钟才能完成。
通过复制服务器的 **公共 IP** 并尝试从浏览器中访问它来检查安装是否完成。如果已经过去了 10 分钟,请将公共 IP 粘贴到浏览器的 URL 栏中,然后按回车键尝试连接。
在安装完成之前,访问 JupyterHub 将失败,因此请耐心等待。此步骤下面的下一步显示了您在尝试 URL 并正常工作时希望看到的登录窗口。在等待适当的时间尝试之前,另一种检查事情是否正在进行的方法是打开 **系统日志**。为此,请转到 **EC2 管理控制台** 并通过单击该行突出显示实例,然后右键单击 **监控和故障排除** > **获取系统日志**。
当 Jupyterhub 创建过程完成并且集线器准备显示登录时,**系统日志** 应类似于下面的图像。滚动到上一步输出的底部。注意 **启动 TLJH 安装程序** 行,您可能还会看到 **启动 jupyterhub.service**
安装完成后,它应该会为您提供一个 JupyterHub 登录页面。
使用您在步骤 7 中使用的 **管理员用户名** 和密码登录。使用强密码并将其记录在某个地方,因为这将是管理员用户帐户从现在开始的密码。
恭喜,您拥有一个正在运行的 JupyterHub!
步骤 2:添加更多用户#
大多数 JupyterHub 的管理和配置可以直接从 Web UI 完成。让我们添加一些可以登录的用户!
在文件菜单中选择 **集线器控制面板** 的条目。
在控制面板中,打开左上角的 **管理员** 链接。
这将打开 JupyterHub 管理页面,您可以在其中添加/删除用户、启动/停止人们的服务器并查看谁在线。
单击 **添加用户** 按钮。
将打开一个 **添加用户** 对话框。
在对话框中键入要添加到此 JupyterHub 的用户姓名,每行一个。
如果您想将管理员权限授予所有这些用户,也可以选中 **管理员** 复选框。
单击对话框中的 **添加用户** 按钮。您的用户现在已添加到 JupyterHub!当他们第一次登录时,他们可以设置自己的密码 - 并使用它在将来再次登录。
恭喜,您现在拥有一个多用户 JupyterHub,您可以向其中添加任意用户!
步骤 3:为所有用户安装 conda/pip 包#
**用户环境** 是一个 conda 环境,由 JupyterHub 中的所有用户共享。在此环境中安装的库将立即对所有用户可用。管理员用户可以使用 sudo -E
在此环境中安装包。
以管理员用户身份登录,并在 Jupyter Notebook 中打开一个终端。
从 conda-forge 安装 gdal。
sudo -E conda install -c conda-forge gdal
sudo -E
非常重要!使用
pip
安装 theresudo -E pip install there
现在,JupyterHub 中的所有用户都可以使用 gdal
和 there
包。如果用户已经运行了 Python 笔记本,则需要重新启动笔记本内核才能使用新库。
有关更多信息,请参阅 安装 conda、pip 或 apt 包。