LoginSignup
5
2

More than 1 year has passed since last update.

AWSのGPUインスタンスでvCPUの上限を解除してもらおう

Last updated at Posted at 2022-01-16

AWSのGPUインスタンスで【vCPU】の上限を解除してもらう為にやった事をメモに残します。

経緯

  • 『つくりながら学ぶ! PyTorchによる発展ディープラーニング』の教材が私のBTOPCのGPU(GeForce GTX1060 super:6GB)では、モデルとデータがGPUメモリ上に乗らなくなり、学習が進まなくなってきました。
  • 新しいGPUの購入を検討しましたが、半導体不足の昨今、GPUメモリが10G以上のNvidiaのGPUに買い替えて、PC本体の電源ユニットの強化まで含めると、15万円以上の出費になってしまいます。
  • それなら、『AWS:g4dn.xlarge(0.526USD/時間:オレゴン)』の方が安い?と考え、下記のリンク先を参考にトライしてみました

AWSによるEC2インスタンスの作成

AWS EC2インスタンスを作成する(AMI:Amazon Linux / Amazon EBSの設定など)

  • トライの結果、オレゴンで2回、北部バージニアで1回、【vCPUの上限依頼】をリジェクトされてしまいました。(この頃、制限解除の条件が厳しくなっている様です)
  • 途方にくれておりましたが、やり取りの中で気付きがあったので、それに従ってトライしたところ、北部バージニアでオンデマンドインスタンスで【vCPUの上限依頼】が通り、無事に『GPUインスタンス:g4dn.xlarge』を作成する事ができました。

気付き

  • AWSサポートとのやり取りの中で、AWSは、以下の3点をチェックしていると感じました

・GPUインスタンス申請者はお試しでは無く、ちゃんと使い続けるつもりなのか?(基本設定はできているか?)

・申請者がちゃんとAWSを管理できるだけのスキルを持っているか?

・”Amazon SageMaker Studio Lab”ではなく、あえてEC2のGPUインスタンスを申請する理由が妥当か?

行った事

注)以下は4度目のトライ時に私が行った全てであり、AWSがどの設定を気にして承認してくれたかは、不明です。

1.AWSアカウント(rootユーザ)の追加設定:MFAによるSecurity設定

  • MFAデバイスを設定してアカウントを安全に保護する(2段階認証です)
    • 仮想MFAデバイスを設定しました
    • ”Google Authenticator”を使用します
      • AWSアカウントは6ケタ数字を2個入力する必要があります。
        • 上の枠に、”Google Authenticator”に表示されている6桁の数字を記載します
        • 下の枠に、1分経過して、切り替わった”Google Authenticator”の6桁の数字を記載します
    • MFAを設定したら、一度サインアウトして、再度サインインします

2.IAMユーザーの新規作成:MFAによるSecurity設定

  • ”rootユーザー”の使用を避け、安全にAWSを使う為、”IMAユーザー”を作成します
    • 管理用IAMグループを作成
      • ”ポリシー”を設定した
    • グループに所属する形で”IAMユーザー”を作成
      • ”AWSへのアクセスの種類”を設定した
      • ”ユーザー追加完了”時のCSVのダウンロードは必ず行っておくこと
    • 一度サインアウトして、上記CSVファイルにサインインリンク先が記載されているので、ブラウザにコピペしてサインインする
      • 情報はCSVファイルからコピペして、”新しいパスワード”を設定する
    • 右上のユーザー名が”IAMユーザー”のアカウント名になっていればOKです
  • ”IAMユーザー”にもMFAを設定する
    • 手順は”AWSアカウント(rootユーザ)”と同じです。
    • ”IAMユーザー”は6ケタ数字を1個入力でOKです
    • MFAを設定したら、一度サインアウトして、再度”IAMユーザー”でサインインします

3.EC2インスタンスの設定準備:(この項目がどの程度効果があったか?は不明)

  • 予算の設定

    • ”ルートユーザ”でサインインします
      • "IAMユーザ/ロールによる請求情報へのアクセス"を有効にする
      • サインアウトする
    • ”IAMユーザ”でサインインします
      • AWS Bugetsで”予算の設定”を行う
  • 以下は全て、 ”IAMユーザ”で設定します

  • VPCの作成

    • Amazon VPCを作成
      • ”VPC”サービスウィンドウから(1クリックで作成も可能(らしい))
        • ”VPC”を作成
      • ”サブネット”を作成(Publicを1つで十分)
        • ”インターネットゲートウェイ”を作成
          • 同時に”VPCへのアタッチ”を実施する
      • ”パブリックサブネット用ルートテーブル”の作成
        • ”VPC”を設定する
        • ”ルートテーブル”の”ルートの編集”を行う
        • ”サブネットの関連付け”を行う
  • キーペアの作成

    • EC2ダッシュボードから
      • ”キーペア”を選択して、【キーペアを作成】され、秘密鍵がダウンロードされます
      • ダウンロードされる秘密鍵は再ダウンロードできないので、しっかり保存しておくこと
  • Elastic IPの取得

    • EC2ダッシュボードから
      • ”Elastic IP”を選択して、【Elastic IPアドレスの割り当て】をクリック
        • タグに”Name”を記載しておくと、あとでわかりやすい

4.EC2インスタンスの設定:失敗すること前提

  • AMI(Amazonマシンイメージ)の選択
    • 私は、Docker主体で構築するので『Deep Learning Base AMI (Ubuntu 18.04)』を選択
  • インスタンスタイプの選択
    • ”g4dn.xlarge”を選択 -インスタンスの詳細の設定
    • ネットワーク:”VPC”で設定した”VPC”の名前
    • サブネット:”VPC”で設定したPublicの名前
  • ストレージの追加
    • お望みのサイズで
  • タグの設定
    • ”Name”は記載しておくとあとでわかりやすい
    • その他はお好みで
  • セキュリティグループの設定
  • インスタンス作成の確認
    • "キーペア"は『既存のキーペア』を選び、先程作成したキーペアを選択する
    • 『インスタンスの作成』をクリックする
    • インスタンス作成が開始されるが、

インスタンスの作成に失敗し、 『You have requested more vCPU capacity than your current vCPU limit of 0 allows for the instance bucket that the specified instance type belongs to』と表示される(涙)

5.AWSへの【vCPUの上限】の解除依頼

  • ”EC2ダッシュボード”→”制限”→【vCPU制限を計算】をクリック
    • 『制限計算ツール』が開くので、必要なインスタンス等を設定し、必要な『vCPU数』を再確認
      • ”オンデマンド制限の引き上げをリクエスト”
      • ”スポット制限の引き上げをリクエスト”
        • の何れかをクリック
  • ”Create case”が開くので、
    • リージョン
    • インスタンス名
    • New limit value : 必要なvCPU数 を記入する
  • Use case description”に記載する情報も大事らしい
    • 以下の内容をDeepL翻訳などで英語にする(私のように英語が不得意な方)
      • 読んでいる最終判断するのは各Regionの担当者の様なので、英語での記載が安全
        • 和文は”主語を抜かない”等の正しく英訳してくれる和文を意識して書く
        • 【和文→英文→和文】にしても和文の意味が崩れない事を確認する
    • 内容
      • 要求する内容(”vCPU上限”を【x個】にしてくれ!!)
      • GPUが必要な理由はなにか?
      • どの程度使用する予定なのか?
      • EC2では無いとダメな理由はなにか?
      • なぜ、オンデマンドインスタンスなのか?
私は以下の英文を添付しました
Dear AWS support staff

I've just started using AWS.
I need a GPU for deep learning.
I'm trying to launch an AWS "g4ad.xlarge" instance because my PC's GPU is not powerful enough.
However, at the end of launching the instance, an error message "You have requested more vCPU capacity than your current vCPU limit of 0 allows for the instance bucket that the specified instance type belongs to" is displayed and the instance will not launch.
Please adjust the vCPU limit of the "g4ad.xlarge" instance and change it to "4".

I plan to use it for about 2 hours on weekdays and about 6 hours on weekends.
I am going to use AWS EC2 with ROS (Robot Operating System) and web apps as well, so I need an EC2 GPU instance instead of "Amazon SageMaker Studio Lab".
I chose the "On-demand Instance" because I have limited time to work on it.
My company also uses AWS EC2 instances, and since this study is related to that work, I chose the same AWS EC2.
Please let me know if there are any conditions necessary to remove the restriction.

Thank you very much for your help.

(改めて見直すと、日本語英語ですね〜。”Please adjust the vCPU limit of the "g4ad.xlarge" instance and change it to "4".”と要求から書き始めても良かったかも。)

6.EC2インスタンスの作成:【vCPUの上限解除】後

  • 無事にAWSから”vCPUの制限解除”の連絡が届いたら、『4.EC2インスタンスの設定準備』を再トライです、
  • インスタンスが『実行中』になり『ステータス:2/2のチェックに合格しました』と表示されたら成功です
  • Elastic IPの取得
    • EC2ダッシュボードから
      • ”Elastic IP”を選択して、【アクション】から【Elastic IPの関連付け】を選択
      • ”インスタンス名”と”プライベートIPアドレス”を選択して、【関連付け】をクリック
    • これで無事にssh接続ができます

<参照先>
AWSによるEC2インスタンスの作成
AWS EC2インスタンスを作成する(AMI:Amazon Linux / Amazon EBSの設定など)
【AWS初心者向け】手を動かして身につける! 実戦で役立つAWSサービスの基礎とアーキテクチャ(SAAレベル)

0版:2022年1月16日

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2