[アップデート]AWS CLIとPython SDKで機械学習向けEC2インスタンスとS3とのデータの転送が高速化

AWS CLIとPython SDKをTrn1・P4d・P5ファミリーのインスタンスで使う場合に、デフォルトでAWS Common Runtime (CRT)により、S3バケットとインスタンス間のデータ転送が高速化されました。
2023.11.28

データアナリティクス事業本部 機械学習チームの鈴木です。

Trn1・P4d・P5ファミリーの機械学習向けEC2インスタンスでAWS CLIとPython SDKを使うとき、S3との間でデータ転送を行う転送クライアントとして、自動でAWS Common Runtime(CRT)を選択して転送を高速化するアップデートがアナウンスされました。

発表された機能について

AWS CLIでの利用についてはAWS CLI v2のリファレンスに記載がありました。

AWS CLIでCRT転送クライアントは、現状S3とインスタンス間のファイルのアップロード・ダウンロードおよびS3オブジェクトの削除のみをサポートしていることが分かります。

また、以下のインスタンスに最適化されているということで、現状は該当の機械学習向けEC2インスタンスをターゲットとした機能といえますね。

  • p4d.24xlarge
  • p4de.24xlarge
  • p5.48xlarge
  • trn1n.32xlarge
  • trn1.32xlarge

学習データやモデルアーティファクトをS3とインスタンス間で転送する際に、オブジェクトのサイズが大きく時間がかかるという場合に効果が大きそうです。

Boto3には以下のクイックスタートに紹介がありました。

Boto3の場合は追加のモジュールとしてインストールする必要があるそうです。

# CRTありのバージョンのBoto3をインストールする
pip install boto3[crt]

# CRTなしのバージョンに戻す
pip uninstall awscrt

詳しくはクイックスタートを参照ください。

最後に

AWS Common Runtime(CRT)クライアントを使ったAWS CLIとPython SDKでのインスタンス・S3バケット間のデータ転送高速化のアップデートをご紹介しました。

該当するインスタンスを使われている方はぜひガイドを参照の上、試してみて頂ければと思います。