前回はAWS Deep Learning AMIs(以下、深層学習AMI)の概要について解説しました。今回はAWS社が公開するチュートリアル「AWS 深層学習AMIを起動する」を利用して、実際に深層学習AMIを使ってみたいと思います。
下記を理解することを目標に解説をしていきます。
- 深層学習AMIの基本的な使い方がわかる。
→連載「AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~」の過去回はこちらを参照。
注意事項:チュートリアルに掲載されている画面イメージ
AWSマネジメントコンソールのアップデートがあったため、本稿で使用する画面イメージは上記のチュートリアルに掲載されている画面イメージと異なる点に注意してください。深層学習AMIを実際に使ってみる
今回利用するチュートリアルは、大きく以下の5つのステップで構成されています。
ステップ | 概要 | 詳細 |
---|---|---|
1 | EC2コンソールを開く | AWSマネジメントコンソールでEC2のコンソール画面にアクセスする |
2 | インスタンスを設定する | 深層学習AMIを選択して、EC2 インスタンスを作成する |
3 | インスタンスに接続する | 利用者のPCからSSHで、ステップ2で作成したEC2インスタンスに接続する |
4 | Jupyter Labにアクセスする | 利用者のPCのWebブラウザから「Jupyter Lab」にアクセスする |
5 | インスタンスを終了する | チュートリアルで作成したリソースを削除する |
順に実行することで、AWSマネジメントコンソールで深層学習AMIからAmazon EC2(以下、EC2)のインスタンスを作成し、Jupyter Notebookにアクセスするところまでを体験できます。
しかし、今回利用するAMIにはJupyter Notebookではなく、「Jupyter Lab」がプリインストールされている点に注意してください。Jupyter LabはJupyter Notebookの後継ツールにあたり、機械学習の開発でよく利用されます。本稿では、Jupyter Labと表記します。
注意事項:チュートリアルの実施で発生する課金
本稿の内容は、数ドル(数百円)程度の課金が発生する可能性があります。EC2インスタンスは停止状態にすれば課金を止められますが、EBSボリュームは確保した容量に対して課金されます。完全に課金を停止したい場合は「ステップ5:インスタンスを終了する」までやり切り、リソースを削除してください。
事前準備
本稿では管理者権限(AdministratorAccess)を持つIAMユーザーにて作業を進めます。初めてIAMユーザーを作成する場合は「IAMの使用開始」などを参考にしてください。
ステップ1:EC2コンソールを開く
AWSマネジメントコンソールにIAMユーザーでログインします。本稿では東京リージョンで作業を進めますので、画面右上のリージョンの表記が「東京」となっていることを確認します。
「東京」以外となっている場合は、下図のように「アジアパシフィック(東京) ap-northeast-1」を選択します。
画面上部にある検索バーに「EC2」と入力し、検索結果の「EC2」を選択します。
EC2のダッシュボード画面に遷移したことを確認します。
ステップ2:インスタンスを設定する
EC2のダッシュボード画面中央の「インスタンスを起動」を選択します。
「インスタンスを起動」というEC2インスタンスの設定画面に遷移します。ここから必要な設定をしていきます。
まずは「名前とタグ」で、これから作成するEC2インスタンスの名前を設定します。任意の名前で問題ないですが、ここでは「deep-learning-ami-demo」とします。
次に、「アプリケーションおよびOSイメージ(Amazonマシンイメージ)」で、これから作成するEC2インスタンスで利用するAMI(Amazonマシンイメージ)を設定します。矢印で示した検索ボックスにキーワードを入れると、該当するAMIを検索できます。
深層学習AMIは「deep learning」と入力すると候補を抽出できます。今回は赤枠に示した「クイックスタートAMI」で提示された「Deep Learning AMI GPU PyTorch 1.13.0 (Ubuntu 20.04) 20221110」を利用して進めます。
今回は利用しませんが、「AWS Marketplace AMI」や「コミュニティAMI」にさまざまなAMIが用意されているので、利用者の要件に合わせて利用できます。ただし、セキュリティの観点でAMIの公開元が信頼できる企業や団体であることを確認した上で利用してください。
次に、「インスタンスタイプ」で、作成するEC2インスタンスのインスタンスタイプを設定します。デフォルトでは「t2.micro」が選択されていますが、ここではチュートリアルにしたがって「c5.large」を選択して進めます。
注意事項:GPU搭載インスタンスのコスト
深層学習ではGPUを利用するケースが多いですが、今回利用する「c5.large」は CPU のみが搭載されたインスタンスで GPU は搭載されていません。GPUが搭載されているインスタンスタイプには「高速コンピューティング」があり、「P(p)」や「G(g)」で表記されています。
例えば、Pシリーズで比較的小さめの「p3.2xlarge」は、「c5.large」の約40倍のコストがかかりますので、動作させる際は注意してください。
- c5.large: 1 時間当たり 0.107 ドル
- p3.2xlarge: 1 時間当たり 4.194 ドル
各インスタンスタイプの料金の詳細は「Amazon EC2オンデマンド料金」を参照してください。
次に、必要に応じて「キーペア(ログイン)」で、EC2インスタンスへのログイン時に利用するキーペアを作成します。既存のキーペアを利用することも可能です。
ここでは、キーペア名を「deep-learning-ami-demo」とし、下図の設定でキーペアを作成します。作成に成功するとキーペアがダウンロードされるため、適当なフォルダに保存します。このキーペアは後続の動作確認で利用します。
次に、「ネットワーク設定」で、EC2インスタンスを配置するVPC、サブネット、セキュリティグループ、IPアドレスなどを設定します。
今回は簡単な動作確認のため、原則としてデフォルト設定のまま進めることとします。デフォルトVPCを利用して、EC2インスタンスにはパブリックIPアドレスを付与します。
後続の動作確認でSSHによるログイン確認を行うため、セキュリティグループには任意の接続元からのアクセスを許可します。セキュリティが気になる場合は、接続元を開発拠点のIPアドレスに制約するなど設定すると良いでしょう。
最後に、「ストレージを設定」と「高度な設定」はデフォルト設定のままとします。ここまでの設定内容を確認して、「インスタンスを起動」を選択します。
数分待ち、「インスタンスの状態」と「ステータスチェック」が下記の状態となったことを確認します。
- インスタンスの状態:実行中
- ステータスチェック:2/2 のチェックに合格しました
赤枠で示した「パブリック IPv4 DNS」は後続の動作確認で利用するのでコピーして、メモ帳などに貼り付けておきます。先頭の□をクリックすると簡単にコピーできます。