在 Amazon Web Services 上安装#

目标#

拥有一个带有管理员用户和包含 conda / pip 包的用户环境的 JupyterHub。

先决条件#

  1. 一个 Amazon Web Services 账户。

    如果要求选择默认区域,请选择离大多数用户最近的区域。

步骤1:安装The Littlest JupyterHub#

让我们创建可以运行JupyterHub的服务器。

  1. 访问Amazon Web Services,然后点击右上角的金色按钮“登录控制台”。使用您的 Amazon Web Services 账户登录。

    如果您需要调整默认区域,窗口顶部深色导航栏最右侧您的姓名和支持菜单之间有一个下拉菜单。将区域调整为与大多数用户最近的区域相匹配。

  2. 在列出所有可用服务的屏幕上,在左侧第一列顶部计算下选择EC2

    Select EC2

    这将带您进入EC2 管理控制台

  3. EC2 管理控制台最左侧的导航菜单中,在浅灰色实例副标题下选择实例

    Select Instances from console
  4. EC2 管理控制台主窗口的左上方,点击亮蓝色启动实例按钮。

    Click launch instance

    这将启动“启动实例向导”过程。这允许您自定义所需的服务器类型、其拥有的资源及其名称。

  5. 步骤 1:选择一个 Amazon 机器映像 (AMI)页面上,您将选择远程服务器将拥有的基本映像。视图将默认选择“快速启动”选项卡,向下滚动几行,选择Ubuntu Server 22.04 LTS (HVM), SSD Volume Type - ami-XXXXXXXXXXXXXXXXX,保持64-bit (x86)处于开启状态。

    Click Ubuntu server 22.04

    末尾的ami字母数字引用特定的 Amazon 机器映像,请忽略此项,因为 Amazon 会定期更新它们。Ubuntu Server 22.04 LTS (HVM)是重要部分。

  6. 选择 AMI 后,您将进入步骤 2:选择实例类型

    将列出 Amazon 提供的 CPU 类型和数量。选择您想要的,然后点击右下角的按钮下一步:配置实例详情

    请查看我们的指南,了解如何估算所需的内存/CPU/磁盘,以帮助选择您的服务器所需的内存/CPU。我们建议您使用至少 2GB RAM 的服务器,例如 t3.small。但是,如果您需要最大程度地降低成本,可以使用 1GB RAM 的服务器,例如 t2.micro,但性能会受到限制。

    您可能希望查阅此处的列表,因为它显示了每小时成本。按需价格是相关的成本。

    GPU 显卡GPU 计算产品也在页面大约一半的位置提供

  7. 步骤 3:配置实例详细信息下,滚动到页面底部并切换高级详细信息旁边的箭头。向下滚动到“用户数据”。复制以下文本,并将其粘贴到用户数据文本框中。将<admin-user-name>替换为该 JupyterHub 的第一个管理员用户的名称。该管理员用户可以在 JupyterHub 设置完成后登录并进行配置。请记住添加您的用户名

    #!/bin/bash
    curl -L https://jupyter-tljh.pythonlang.cn/bootstrap.py \
      | sudo python3 - \
        --admin <admin-user-name>
    
    Install JupyterHub with the script in the User data textbox

    注意

    有关详细说明,请参阅安装程序做了什么?;有关其他可用选项,请参阅自定义安装程序

  8. 步骤 4:添加存储下,您可以更改磁盘的大小类型,方法是调整大小 (GiB)中的值并选择卷类型

    Selecting disk size and type

    请查看估算所需的内存/CPU/磁盘,以帮助选择您的服务器所需的磁盘空间。

    将鼠标悬停在卷类型旁边的带圈i上,以获取每个类型的解释。保持默认设置即可。通用型 SSD (gp2)建议用于大多数工作负载。而预置 IOPS SSD (io1)是性能最高的 SSD 卷。磁介质(标准)是上一代卷,不适合多用户集线器。

    完成后,点击右下角的下一步:添加标签

  9. 步骤 5:添加标签下,点击添加标签并在密钥字段下输入名称。在名称行的字段中,为您的新服务器取一个易于记忆的名称,以表明此 JupyterHub 将用于何种目的。

    Use tags to name the hub.
  10. 步骤 6:配置安全组下,您将设置控制实例流量的防火墙规则。具体来说,您需要添加规则以允许HTTP 流量HTTPS 流量。为了进行高级故障排除,设置允许您使用 SSH 连接(端口 22)的规则将很有帮助。

    如果您以前从未用过您的 Amazon 账户,则必须选择创建新安全组。您应该在安全组名称下给它一个独特的名称,例如ssh_web以备将来参考。如果您已经有安全组,如果需要,您可以选择它并调整它以包含您需要的规则。

    默认规则将包含SSH。保留它,然后点击添加规则按钮。在新规则的类型下,将字段更改为HTTP。其他框将自动填充。再次点击添加规则按钮。这次在新规则的类型下,将字段更改为HTTPS

    警告是为了提醒您这在某种程度上会开放一些东西,但这是让您的用户连接所必需的。然而,这个警告是一个很好的提醒,您应该监控您的服务器,以确保它可供可能需要的用户使用。

    Allow HTTP & HTTPS traffic to your server
  11. 设置完安全规则后,点击右下角的蓝色按钮审核并启动。这将让您有机会审核,因为很快您将启动并开始为使用的任何资源付费。

    请注意,尽管您只为 HTTP 和 HTTPS 各创建了一个规则,但在安全组下您会看到两个 HTTP 列表和两个 HTTPS 列表。这是正常且必要的,以匹配 IPv4 和 IPv6 两种 IP 地址类型。

    当您满意后,点击右下角的蓝色启动按钮,即可接近完成实例启动向导之旅。

    Launch your server
  12. 在启动触发前的最后一步弹出的对话框中,您需要选择如何处理身份识别密钥对,并确认您的选择才能继续。如果您已经有一个密钥对,您可以选择将其与此实例关联,否则您需要创建一个新的密钥对。不建议选择不使用密钥对继续,因为如果 Jupyterhub 出现问题,您将无法通过 SSH 访问您的服务器,也无法通过下载恢复文件。

    除非您关联的是您已有的密钥对,否则请下载并妥善保管密钥对文件。

    Associate key pair
  13. 关联密钥对后,点击启动实例按钮,开始创建将运行 TLJH 的服务器。

    Trigger actual launch
  14. 启动初始化后,您将看到一个启动状态通知屏幕。如果您点击文本“已启动以下实例:”后面的字母数字链接到正在启动的实例,您可以查看更多详细信息。

    Launch status notice
  15. 该链接将带您返回到EC2 管理控制台,其设置会将控制台视图限制为仅显示该实例。(如果您想查看您可能拥有的任何其他实例,请删除搜索栏中的过滤器。)最初服务器将启动,然后当实例状态变为绿色时,服务器正在运行。

    Server is running.

    如果您账户中已有正在运行的实例,如果您禁用该过滤器,屏幕将看起来不同。但您需要关注您创建的服务器名称所在的那一行。

  16. 几秒钟后,您的服务器将被创建,您可以在控制台底部的面板中看到用于访问它的公共 IP。如果未显示,请点击控制台中该实例所在的行。它将看起来像12.30.230.127这样的模式。

    public IP
  17. Littlest JupyterHub 正在您的新服务器后台安装。此安装大约需要 10 分钟才能完成。

  18. 复制服务器的公共 IP,并在浏览器中尝试访问它,以检查安装是否完成。如果已等待 10 分钟,请将公共 IP 粘贴到浏览器 URL 地址栏中,然后按回车键尝试连接。

    在安装完成之前,访问 JupyterHub 将失败,所以请耐心等待。此步骤下面的下一步显示了您在尝试 URL 并成功时预期看到的登录窗口。在等待适当的时间尝试时,另一种检查事物是否正在运行的方法是打开系统日志。为此,请转到EC2 管理控制台,通过点击该行突出显示实例,然后右键点击监控和故障排除 > 获取系统日志

  19. 当 Jupyterhub 创建过程完成并且 hub 准备好显示登录界面时,系统日志应该与下图相似。滚动到上一步输出的底部。请注意Starting TLJH installer这一行,您可能还会看到Started jupyterhub.service

    Completed system log
  20. 安装完成后,它应该会给您一个JupyterHub登录页面。

    JupyterHub log-in page
  21. 使用您在步骤 7 中使用的管理员用户名和密码登录。使用一个强密码并将其记录下来,因为这将是管理员账户从现在开始的密码。

  22. 恭喜,您已拥有一个运行正常的JupyterHub!

步骤2:添加更多用户#

JupyterHub的大部分管理和配置可以直接从Web UI完成。让我们添加一些可以登录的用户!

  1. 在文件菜单中选择 Hub 控制面板 条目。

    Hub Control panel entry in lab File menu
  2. 在控制面板中,打开左上角的 Admin 链接。

    Admin button in control panel, top left

    这将打开JupyterHub管理页面,您可以在其中添加/删除用户、启动/停止用户的服务器以及查看谁在线。

  3. 点击 添加用户 按钮。

    Add Users button in the admin page

    一个 添加用户 对话框打开。

  4. 在对话框中键入您想添加到此JupyterHub的用户名称,每行一个。

    Adding users with add users dialog

    如果您想将管理员权限也授予所有这些用户,可以勾选 管理员 复选框。

  5. 点击对话框中的 添加用户 按钮。您的用户现在已添加到JupyterHub!当他们第一次登录时,他们可以设置密码——并使用该密码将来再次登录。

恭喜,您现在有一个多用户JupyterHub,您可以随意添加用户!

步骤3:为所有用户安装conda / pip软件包#

用户环境 是JupyterHub中所有用户共享的conda环境。安装在此环境中的库可立即供所有用户使用。管理员用户可以使用 sudo -E 在此环境中安装软件包。

  1. 以管理员用户身份登录并在Jupyter Notebook中打开一个终端。

    New Terminal button under New menu
  2. conda-forge 安装 gdal

    sudo -E conda install -c conda-forge gdal
    

    sudo -E 非常重要!

  3. 使用 pip 安装 there

    sudo -E pip install there
    

软件包 gdalthere 现在可供JupyterHub中的所有用户使用。如果用户已经运行着Python笔记本,他们必须重新启动笔记本的内核才能使新库可用。

有关更多信息,请参阅 安装conda、pip或apt软件包