AWS に JupyterLab をインストールする
Teradata が提供する CloudFormation テンプレートを使用して、AWS Management Consoleから JupyterLab と AI Unlimited カーネルをインストールします。
これにより、サーバー インスタンスがデプロイされ、JupyterLab は systemdによって制御されるコンテナ内で実行されます。
AWSアカウントを準備する
-
クラウド管理者と貢献して、 JupyterLab テンプレートで定義されたクラウド リソースを作成するための IAM 権限があることを確認してください。
-
コマンドを実行したりデバッグしたりするために JupyterLab インスタンスにアクセスする必要がある場合は、 キー ペア を使用してセキュア シェル (SSH) で安全に接続できます。 スタックの詳細を指定するときに、キー ペアが必要になります。
-
Application Load Balancer (ALB) または Network Load Balancer (NLB)を使用する予定の場合は、これらの AWS サービスを管理する権限があることを確認してください。
- AWS Certificate Manager—Route 53 のホストゾーン ID の新しい証明書を発行します。
- AWS Route 53—カスタムドメイン名を設定し、DNS クエリをロードバランサーにルーティングします。
リポジトリをクローンする
Teradata が提供する AI Unlimited GitHubリポジトリ 内の deployments
フォルダには、AI Unlimited をインストールす るためのテンプレート、パラメータ、およびポリシー ファイルが含まれています。
ターミナル ウィンドウを開き、リポジトリをクローンします。
Jupyterテンプレートを見つける
JupyterLab 用の CloudFormation テンプレートは、AI Unlimited GitHub リポジトリにあります。
deployments/aws/templates/jupyter
ロード バランサ を使用するかどうか、およびどのタイプを使用するかに基づいてテンプレートを選択します。
組織のクラウド管理者にガイダンスを依頼することをお勧めします。
jupyter-alb.yaml
—アプリケーション ロード バランサの背後に JupyterLab をホストするjupyter-with-nlb.yaml
—ネットワーク ロード バランサの背後に JupyterLab をホストするjupyter-without-lb.yaml
—ロードバランサーなし
テンプレートを読み込む
- AWS コンソールにサインインします。
注記
AWS Management Consoleへの参照は、2024 年 5 月 29 日時点で最新です。
- JupyterLab をデプロイするリージョンを選択します。
主な勤務地に最も近い地域を選択することをお勧めします。 - CloudFormationを検索 して移動します。
- スタックを作成を選択し、次に **新しいリソース(標準)**を選択します。
- 既存のテンプレートを選択する と テンプレートファイルをアップロードするを選択します。
- 使用するテンプレートファイルを選択し、 次へをクリックします。
スタックの詳細とオプションを指定する
- スタック名を指定します。
- パラメータを確認します。必要なパラメータの値を指定します。組織によっては他のパラメータが必要になる場合があります。
AWS と JupyterLab のパラメータ
パラメータ | 説明 | 注意事項 |
---|---|---|
InstanceType | サービスに使用する EC2 インスタンスタイプ。 | デフォルトで必須 デフォルト: t3.small コストを節約するために、デフォルトのインスタンス タイプを使用することをお勧めします。 |
RootVolumeSize | インスタンスに接続するルートディスクのサイズ(GB 単位)。 | デフォルトで必須 デフォルト: 8 8 ~ 1000 の値をサポートします。 |
TerminationProtection | インスタンス終了保護を有効にします。 | デフォルトで 必須 デフォルト: false |
IamRole | CloudFormation が新しい IAM ロールを作成するか、既存のロールを使用するかを指定します。 | デフォルトで必須 デフォルト: 新規 サポートされているオプション: 新規または既存 |
IamRoleName | インスタンスに割り当てるIAMロールの名前。既存のIAMロールまたは 新しく作成された IAM ロール。 | オプション、デフォルトあり デフォルト: ai-unlimited-iam-role 新しい IAM ロールに名前を付ける場合、CloudFormation では CAPABILITY_NAMED_IAM 機能が必要です。自動生成された名前を使用するには、これを空白のままにします。 |
IamPermissions Boundary | インスタンスに割り当てられた IAM ロールに関連付ける IAM アクセス許可境界の ARN。 | オプション デフォルト: NA |
AvailabilityZone | インスタンスをデプロイするアベイラビリティーゾーン。 | 必須 デフォルト: NA 値はサブネット、既存のボリュームのゾーンと一致する必要があり、インスタンス タイプは選択したゾーンで使用可能である必要があります。 |
LoadBalancing | インスタンスが NLB 経由でアクセスされるかどうかを指定します。 | デフォルトで必須 デフォルト: NetworkLoadBalancer サポートされているオプション: NetworkLoadBalancer または None |
LoadBalancerScheme | ロードバランサーが使用されている場合、このフィールドはインスタンスがインターネットからアクセスできるか、または VPC 内からのみアクセスできるかを指定します。 | オプション、デフォルトあり デフォルト: インターネット向け インターネ ット向けロードバランサーの DNS 名は、ノードのパブリック IP アドレスにパブリックに解決可能です。したがって、インターネット向けロードバランサーは、インターネット経由でクライアントからのリクエストをルーティングできます。内部ロードバランサーのノードにはプライベート IP アドレスのみがあります。内部ロードバランサーの DNS 名は、ノードの個人 IP アドレスにパブリックに解決可能です。したがって、内部ロードバランサーは、ロードバランサーの VPC にアクセスできるクライアントからのリクエストをルーティングできます。 |
Private | サービスがパブリック IP のないプライベート ネットワークにデプロイされるかどうかを指定します。 | 必須 デフォルト: false マネージャが存在するサブネットで「パブリック IPv4 アドレスの自動割り当てを有効にする」オプションが選択されていることを確認してください。このオプションが選択されていない場合、インストールが失敗する可能性があります。 |
Session | AWS Session Manager を使用してインスタンスにアクセスできるかどうかを指定します。 | 必須 デフォルト: false |
Vpc | インスタンスをデプロイするネットワーク。 | 必須 デフォルト: NA |
Subnet | インスタンスをデプロイするサブネットワーク。 | 必須 デフォルト: NA サブネットは、選択した可用性ゾーンに存在する必要があります。 |
KeyName | インスタンスの起動後にインスタンスに安全に接続できるようにする公開/秘密キーのペア。AWS アカウントを作成するときに、優先リージョン で作成するキー ペアです。 | オプション デフォルト: NA SSH キーを含めない場合は、このフィールドを空白のままにします。 |
AccessCIDR | インスタンスへのアクセスが許可される CIDR IP アドレスの範囲。 | オプション デフォルト: NA この値は信頼できる IP 範囲に設定することをお勧めします。カスタム セキュリティ グループ イングレス ルールを作成しない限り、受信トラフィックを許可するには、AccessCIDR、PrefixList、または SecurityGroup の少なくとも 1 つを定義します。 |
PrefixList | インスタンスとの通信に使用できるプレフィックス リスト。同じポリシーの適用を必要とする一連の IP アドレス範囲を定義する CIDR ブロックのコレクションです。 | オプション デフォルト: NA カスタム セキュリティ グループ イングレス ルールを作成しない限り、受信トラフィックを許可するには、AccessCIDR、PrefixList、または SecurityGroup の少なくとも 1 つを定義します。 |
SecurityGroup | インスタンスへの受信トラフィックと送信トラフィックを制御する仮想ファイアウォール。 | オプション デフォルト: NA インスタンスへのアクセスを許可するプロトコル、ポート、IP アドレスまたは CIDR ブロックを指定するルール セットとして実装されます。カスタム セキュリティ グループ イングレス ルールを作成しない限り、受信トラフィックを許可するには、AccessCIDR、PrefixList、または SecurityGroup の少なくとも 1 つを定義します。 |
UsePersistentVolume | データの保存に新しい永続ボリュームを使用するか、既存の永続ボリュームを使用するかを指 定します。パラメータ セクションの下の「詳細: 永続ボリュームの使用」を参照してください。 | オプション、デフォルトあり デフォルト: 新規 サポートされるオプションは、使用ケースに応じて、新しい永続ボリュームまたは既存のボリュームです。 |
PersistentVolumeSize | インスタンスに接続できる永続ボリュームのサイズ(GB 単位)。 | デフォルトは必須 デフォルト: 20 8~1000 の値をサポート |
ExistingPersistent VolumeId | インスタンスに接続できる既存の永続ボリュームの ID。 | UsePersistentVolume が Existing に設定されている場合は必須 デフォルト: NA 永続ボリュームは、AI Unlimited インスタンスと同じアベイラビリティーゾーンに存在する必要があります。 |
PersistentVolume DeletionPolicy | CloudFormation デプロイメントを削除するときの永続ボリュームの動作。 | デフォルトで必須 デフォルト: Retain サポートされているオプションは、Delete、Retain、RetainExceptOnCreate、および Snapshot です。 |
LatestAmiId | AMI の最新バージョンを指すイメージの ID。この値は SSM ルックアップに使用されます。 | デフォルトでは必須 デフォルト: NA このデプロイメントでは、利用可能な最新の ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 イメージが使用されます。 重要: この値を変更すると、スタックが壊れる可能性があります。 |
JupyterHttpPort | JupyterLab サービス UI にアクセスするためのポート。 | デフォルトで必須 デフォルト: 8888 |
JupyterVersion | デプロイする JupyterLab のバージョン。 | デ フォルトで必須 デフォルト: latest 値は、latest などのコンテナ バージョン タグです。 |
JupyterToken | UI から JupyterLab にアクセスするために使用されるトークンまたはパスワード。 | 必須 デフォルト: NA トークンは文字で始まり、英数字のみで構成されている必要があります。 許可されるパターンは ^[a-zA-Z][a-zA-Z0-9-]* です。 |
もっと学ぶ.: 永続ボリュームの使用
JupyterLab インスタンスはコンテナ内で実行され、その構成データをインスタンスのルート ボリュームのデータベースに保存します。このデータは、インスタンスをシャットダウン、再起動、またはスナップショットを作成して再起動しても保持されます。
永続ボリュームは、コンテナ化されたアプリケーションのデータを、それが実行されるコンテナ、ポッド、またはノードの有効期間を超えて保存します。
永続ボリュームなし
コンテナ、ポッド、またはノードがクラッシュまたは終了すると、JupyterLab 構成データが失われます。新しい JupyterLab インスタンスをデプロイすることはできますが、失われたインスタンスと同じ状態にすることはできません。
永続ボリュームの場合
コンテナ、ポッド、またはノードがクラッシュまたは終了し、JupyterLab 構成データが永続ボリュームに保存されている場合は、失われたものと同じ構成を持つ新しい JupyterLab インスタンスをデプロイできます。
例
- JupyterLab をデプロイし、次のパラメータを含めます。
UsePersistentVolume
: NewPersistentVolumeDeletionPolicy
: Retain
- スタックを作成したら、Outputs タブで
volume-id
をメモします。 - JupyterLab を使用します。
- JupyterLab インスタンスが失われた場合は、JupyterLab を再度デプロイし、次のパラメータを含めます。
UsePersistentVolume
: NewPersistentVolumeDeletionPolicy
: RetainExistingPersistentVolumeId
: 手順 2 でメモした値
新しい JupyterLab インスタンスは、失われたインスタンスと同じ構成になります。
- 次へを選択します。
- スタック オプションを構成する 要件に応じて、 次へを選択します。
スタックを確認して作成する
- テンプレートの設定を確認します。
- テンプレートによって IAM リソースが作成されることを確認するには、チェックボックスをオンにします。
- スタックをデプロイするには 送信 を選択します。
イベント タブでは進行状況を監視できます。すべてのリソースのステータスがCREATE_COMPLETE
の場合、JupyterLab は準備完了です。
出力 タブには、JupyterLab にアクセスするための URL が表示されます。