新規 AWS アカウントで HPC 環境を構築する前に確認すべきポイントをまとめました
はじめに
新規 AWS アカウントで HPC 環境を構築する前に確認しておきたい基本的なチェック項目をまとめました。 本記事は HPC 環境構築に特化した内容です。 一般的なセキュリティ設定については、以下の記事をご参照ください。
クラスメソッドメンバーズ AWS アカウントの利用制限
ハイスペックインスタンスの利用制限解除申請
クラスメソッドメンバーズで「一律割引プラン v2」を契約している場合、不正利用被害を低減するため、以下の制限がデフォルトで適用されています。
制限対象
- 16xlarge 以上のインスタンスタイプ
- P 系インスタンス(GPU インスタンス)
HPC 環境では 16xlarge 以上のインスタンスを使用するケースが多いため、解除申請が必要です。
解除申請方法
弊社のメンバーズサポートまでお問い合わせください。申請内容は以下のリンクをご参照ください。
特定EC2インスタンスタイプに起動制限がかかっているため、利用には申請が必要になります
※ ご契約プランが不明の場合は、弊社の営業担当または、メンバーズサポートまでお問い合わせください。
セキュアアカウントのリージョン制限
セキュアアカウントでリージョン制限機能を利用している場合、us-east-1
を除く海外リージョンが利用できません。リージョン制限機能の詳細は以下をご参照ください。
解除申請方法
セキュアアカウントのリージョン制限を有効化してかつ、海外リージョンを使用する予定がある場合は、弊社のメンバーズサポートまでお問い合わせください。
Organizations の SCP 確認
AWS Organizations を利用している場合、サービスコントロールポリシー(SCP)による制限がないか確認が必要です。組織のガバナンスとして SCP が設定されている場合、以下のような制限が適用されている可能性があります。
確認が必要な制限例
EC2 インスタンスタイプの制限や、リージョンの利用制限が適用されている可能性があります。以下の記事で具体的な制限パターンをご確認ください。
- Organizations の SCP で Amazon EC2 インスタンスタイプを制限する | DevelopersIO
- AWS Organizations の SCP によるリージョン制限のパターン | DevelopersIO
確認方法
貴社の AWS アカウント管理者にご確認ください。
- SCP が設定されているか
- 設定されている場合、どのような制限が適用されているか
- HPC 環境に必要なインスタンスタイプやリージョンが利用可能か
サービスクォータの上限緩和
HPC 環境では一度に大量の計算リソースを使用するため、vCPU 数のサービスクォータ上限緩和が必要になります。
vCPU 数の計算例
例としてm8i.96xlarge
(384 vCPU)を SMT(同時マルチスレッディング)を無効化し、物理 1000 コアで並列実行する場合の試算してみます。
- 論理コア数が 384 のため、物理コアは 192 コアとなる
- 必要な台数: 1000 ÷ 192 = 5.2 ≒ 6 台
- 384 vCPU x 6 台 = 2304
- 申請すべきクォータ値: 2304 vCPU 以上
補足
HPC ワークロードでは SMT を無効化することが多いです。SMT についての解説は以下の記事を参照ください。
上限緩和の申請
以下は、HPC 環境でよく上限緩和が必要になる項目です。
対象項目
- Running On-Demand Standard(A、C、D、H、I、M、R、T、Z)instances
- Running On-Demand G and VT instances
- Running On-Demand P instances
- Running On-Demand HPC instances
申請方法
- AWS マネジメントコンソールにログイン
- Service Quotas サービスを開く
- Amazon Elastic Compute Cloud (Amazon EC2) を選択
- 該当するクォータを検索
- クォータの引き上げをリクエスト
詳細な申請手順は以下の記事をご参照ください。
リージョン・AZ の対応状況確認
使用予定のインスタンスタイプがリージョン・AZ で利用可能か確認します。
確認が必要な理由
- HPC 向けの特殊なインスタンスタイプは提供リージョン・AZ が限定されている
- 東京(
ap-northeast-1
)への新インスタンスタイプの提供は遅れる、未提供な場合がある
確認コマンド
AWS CLI で確認できます。us-east-2
(オハイオ)リージョンでhpc7a.96xlarge
の提供状況を確認します。
aws ec2 describe-instance-type-offerings \
--location-type availability-zone-id \
--region us-east-2 \
--filters Name=instance-type,Values=hpc7a.96xlarge
1 つの AZ(use2-az2
)でのみ提供されていることがわかります。
{
"InstanceTypeOfferings": [
{
"InstanceType": "hpc7a.96xlarge",
"LocationType": "availability-zone-id",
"Location": "use2-az2"
}
]
}
hpc7g.16xlarge
が提供されていないケースも確認してみます。
aws ec2 describe-instance-type-offerings \
--location-type availability-zone-id \
--region us-east-2 \
--filters Name=instance-type,Values=hpc7g.16xlarge
以下のように空の配列が返却されます。
{
"InstanceTypeOfferings": []
}
スポットインスタンスの確認(オプション)
スポットインスタンスを使用する予定がある場合、以下の 3 点を確認してください。
インスタンスタイプのスポット対応確認
HPC 向けの特殊なインスタンスはスポット提供がないケースもあります。使用予定のインスタンスタイプがスポットに対応しているか、以下の記事で確認方法をご参照ください。
サービスクォータの上限緩和
スポットインスタンスにも vCPU 数の上限があります。オンデマンドとは別項目のため忘れずに上限緩和が必要です。
対象項目
- All Standard (A, C, D, H, I, M, R, T, Z) Spot Instance Requests
- All G and VT Spot Instance Requests
- All P5 Spot Instance Requests
申請方法
オンデマンドインスタンスと同様に、Service Quotas から申請できます。詳細は「サービスクォータの上限緩和」セクションをご参照ください。
サービスロールの作成
スポットインスタンスの起動には専用のサービスロール AWSServiceRoleForEC2Spot
が必要です。事前に作成しておくことで初回起動時のトラブルを防げます。
作成方法
AWS CLI から作成可能です。
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
以下の記事も参考に御覧ください。
まとめ
新規 AWS アカウントで HPC 環境を構築する前に確認すべきポイントを紹介しました。
チェックリスト
- クラスメソッドメンバーズの利用制限確認と解除申請(数営業日)
- Organizations の SCP 確認(即日 〜)
- サービスクォータの上限緩和申請(オンデマンド)(数時間〜数日)
- リージョン・AZ の対応状況確認(即日)
- スポットインスタンスの確認(オプション)
- インスタンスタイプのスポット対応確認(即日)
- サービスクォータの上限緩和申請(数時間〜数日)
- サービスロールの作成(即日)
おわりに
私自身、技術支援でよく新規 AWS アカウントに HPC 環境を構築したり、アドバイスしたりしています。そんな経験を踏まえて最初にやるべきポイントをまとめてみました。なにか忘れていた項目があれば更新します。