Amazon Web Services ブログ

新しい AMD EPYC 搭載の Amazon EC2 M5ad インスタンスと R5ad インスタンス

昨年、皆さんに新しい低コストの AMD 搭載 M5a および R5a EC2 インスタンスについてお伝えしました。AWS Nitro System 上に構築されたこれらのインスタンスは、2.5 GHz で動作するカスタム AMD EPYC プロセッサを備えています。これらは、同等の EC2 M5 および R5 インスタンスよりも価格が 10% 低く、コストとパフォーマンスに基づいてインスタンスの組み合わせのバランスを取るための新しい機会を提供します。 本日、AWS は M5ad と R5ad の各インスタンスを追加します。これらはどちらもカスタム AMD EPYC 7000 シリーズプロセッサを搭載しており、AWS Nitro System 上に構築されています。 M5ad および R5ad インスタンス これらのインスタンスは、昨年末にローンチされた既存の M5a および R5a インスタンスに、高速で低レイテンシーのローカル (物理的に接続された) ブロックストレージを追加します。 M5ad インスタンスは、ウェブサーバー、アプリケーションサーバー、開発/テスト環境、ゲーム、ログ記録、およびメディア処理などの汎用ワークロード向けに設計されています。これらは 6 つのサイズでご利用いただけます。 インスタンス名 vCPUs RAM ローカルストレージ […]

Read More

新しい Amazon S3 ストレージクラス – Glacier Deep Archive

AWS のお客様の多くは、大量 (大抵の場合ペタバイト以上) の重要データを収集して保存しますが、そのデータにアクセスすることはほとんどありません。raw データを収集してからすぐに処理し、その後万が一さらに処理または分析する必要が生じたときのために数年または数十年にわたって保存しておく場合もあれば、データをコンプライアンスまたは監査目的のために保持する場合もあります。このパターンに当てはまる業界とユースケースには以下のようなものがあります。 金融 – 取引アーカイブ、活動 & 監査ログ、および通信ログ。 ヘルスケア/ライフサイエンス – 電子医療カルテ、医療画像 (レントゲン、MRI、または CT)、遺伝子配列、製剤開発の記録。 メディア & エンターテイメント – メディアアーカイブと未処理の撮影映像。 物理的なセキュリティ – 未処理のカメラ映像。 オンライン広告 – クリックストリームと配信ログ。 交通 – 車両テレメトリ、ビデオ、RADAR、および LIDAR データ。 科学/研究/教育 – 石油および天然ガス探鉱のための振動実験に関連するデータを含む、研究のインプットと結果。 AWS は本日、Amazon S3 で重要な低頻度アクセスのデータを保存するための、新しく、コスト効率性がより高いストレージを導入します。 Amazon S3 Glacier Deep Archive ストレージクラス 新しい Glacier Deep Archive ストレージクラスは、耐久性があり、セキュアな大量のデータ向けの長期ストレージを、オフプレミスのテープアーカイブサービスに負けない価格で提供するよう設計されています。データは 3 つ以上の AWS アベイラビリティゾーンにまたがって保存され、12 時間以内に取りだすことができます。高価で扱いにくいテープドライブに対処し、オフプレミスストレージを手配して、新世代のメディアへのデータの移行について心配する必要はもうありません。 既存の […]

Read More

新機能 – AWS Application Load Balancer 向けの高度なリクエストルーティング

AWS Application Load Balancer は、2016 年の夏以来活躍しています。 これらは、コンテンツベースのルーティングをサポートし、サーバーレスおよびコンテナベースのアプリケーションとも相性がよく、スケーラビリティがきわめて高いロードバランサーです。AWS のお客様の多くが既存のホストおよびパスベースのルーティングを使用して、HTTP や HTTPS アプリケーションを動作させています。同時に、ポート転送 (コンテナベースのアプリケーションには最適)、ヘルスチェック、サービスディスカバリー、リダイレクト、固定レスポンス、組み込み認証といったさまざまな ALB 機能も活用しています。 高度なリクエストルーティング ホストベースのルーティング機能で、ホスト のヘッダーを使用してトラフィックを任意のターゲットグループにルーティングするようにルールを書くことができます。本日より、この機能を拡張、汎用化して、皆さまが標準およびカスタム HTTP ヘッダーとメソッド、クエリ文字列、ソース IP アドレスに基づいてルールを書けるように (その結果、トラフィックをルーティングできるように) なりました。さらに、そのルールと条件もパワフルになりました。ルールは複数の条件 (AND 条件すべて) が設定可能になり、その各条件も複数の値 (OR 条件のいずれか) とのマッチを指定できます。 この新機能で、お使いのアプリケーションアーキテクチャはシンプル化され、ルーティング用のプロキシフリートの必要性がなくなり、望まないトラフィックをロードバランサーでブロックできます。ユースケースをいくつかご覧ください。 ボットやクローラのトラフィックを人的トラフィックから分離する。 顧客または顧客グループをセル (別のターゲットグループ) にアサインし、そのトラフィックをルーティングする。 A/B テストを実施する。 カナリアリリース手法によるデプロイ、またはブルー/グリーンデプロイを実施する。 メソッドベース (たとえば、あるターゲットグループには PUT、別のターゲットグループには GET など) で、マイクロサービスハンドラーにトラフィックをルーティングする。 IP アドレスまたは CDN ベースで、アクセス制限を実行する。 オンプレミスまたはインクラウドのターゲットグループにトラフィックを選択的にルーティングする。 デバイスのさまざまなタイプやカテゴリに、異なるページやユーザーエクスペリエンスを配信する。 高度なリクエストルーティングの使用法 本機能は、現在お使いの Application Load Balancer で既存のルールを編集するだけでご利用になれます。まず、プレーンテキストの固定レスポンスを返すシンプルなルールから始めます […]

Read More

新規 – Amazon Redshift の同時実行スケーリング – 常に最高のパフォーマンス

Amazon Redshift は、エクサバイト規模まで拡張可能なデータウェアハウスです。現在、何万ものAWS 顧客 (NTTドコモ、Finra、Johnson & Johnson を含む) が Redshift を使用してミッションクリティカルな BI ダッシュボードを実行し、リアルタイムのストリーミングデータの分析や、予測分析ジョブを実行しています。 こうした中、ピーク時に同時実行クエリの数が増えると、問題が発生します。多くのビジネスアナリストが BI ダッシュボードに目を向けるようになったり、長期間実行されるデータサイエンスのワークロードが他のワークロードとリソースを奪い合うようになると、Redshift はクラスター内で十分なコンピューティングリソースが利用可能になるまでクエリをキューに入れます。こうすることで、すべての作業は確実に完了しますが、ピーク時にパフォーマンスが影響を受ける可能性があります。次の 2 つの選択肢があります。 ピーク時のニーズに合わせてクラスタをオーバープロビジョニングする。この選択肢は当面の問題は解決しますが、必要以上にリソースとコストを浪費します。 一般的なワークロードに合わせてクラスターを最適化する。この選択肢を採用すると、ピーク時に結果を待つ時間が長くなり、ビジネス上の重要な決定が遅れる可能性があります。 新しい同時実行スケーリング 今回、第 3 の選択肢を提示したいと考えています。必要に応じてクエリ処理能力を追加するように Redshift を設定することができます。これは透過的かつ数秒の短時間で発生し、ワークロードが何百もの同時クエリに増加しても高速で一貫したパフォーマンスを提供します。追加の処理能力は数秒で準備ができるので、事前のウォームアップまたはプロビジョニングは必要ありません。1 秒あたりの請求額で、使用した分だけお支払いいただき、メインクラスターの実行中は 24 時間ごとに 1 時間の同時実行スケーリングクラスターのクレジットが累積されます。余分な処理能力は、不要になった時点で取り除かれるので、前述したバースト性のあるユースケースに対処するのに最適な方法です。 特定のユーザーまたはキューにバーストパワーを割り当てることができ、既存の BI および ETL アプリケーションを引き続き使用することができます。同時実行スケーリングクラスターは、さまざまな形式の読み取り専用クエリを処理するために使用され、柔軟に動作できます。詳細については、同時実行スケーリングを参照してください。 同時実行スケーリングの使用 この機能は、既存のクラスターに対して数分で有効にできます。 テスト目的で新しい Redshift パラメーターグループから始めることをお勧めします。そこで、まず 1 つ作成することから始めます。 次に、クラスターの Workload Management Configuration を編集し、新しいパラメータグループを選択し、[Concurrency Scaling Mode] を [auto] に設定して、[Save] をクリックします。 […]

Read More

新規 – AWS Deep Learning コンテナ

深層学習について学び、アプリケーションでそれを使う方法をできるだけ簡単にしたいと考えています。大規模なデータセットを取り込み、既存のモデルをトレーニングし、新しいモデルを構築して推論を実行する方法を知っていれば、将来のための十分な準備が整います。 新しい深層学習コンテナ 今日は、新しい AWS Deep Learning コンテナについて説明します。こうした Docker イメージは、他のフレームワークと共に、TensorFlow または Apache MXNet を使用した深層学習トレーニングや推論に使用する準備ができています。顧客が Amazon EKS や ECS を使用して TensorFlow ワークロードをクラウドにデプロイしていることを説明し、そうしたタスクをできる限り単純かつ簡単にすることを当社に依頼したのを受けて、これらのコンテナを構築しました。その間、トレーニング時間の短縮と推論性能の向上を目的として、AWS で使用するイメージを最適化しました。 イメージは事前設定および検証済みなので、Amazon ECS、Amazon Elastic Container Service for Kubernetes、Amazon Elastic Compute Cloud (EC2) でのカスタム環境とワークフローの設定が数分で可能であり、深層学習に集中できます。 AWS Marketplace や Elastic Container Registry で見つけて、無料で使用することができます。イメージはそのまま使用することもできますし、追加のライブラリーまたはパッケージを使用してカスタマイズすることもできます。 次の要素に基づく名前の複数の深層学習コンテナを使用できます (すべての組み合わせが使用できるわけではありません)。 フレームワーク – TensorFlow または MXNet。 モード – トレーニングまたは推論。単一ノードまたはマルチノードのクラスターでトレーニングをすることができます。 環境 – CPU または GPU。 […]

Read More

Amazon EC2 スポットインスタンスを使って GPU で深層学習モデルをトレーニング

ディープニューラルネットワークのアーキテクチャ向けに設計されたデータセットの収集と、トレーニングルーティンのコード化はすでに済んでいます。いつでも、最強の GPU インスタンスにある複数のエポックに、大規模なデータセットでのトレーニングを実行することが可能です。NVIDIA Tesla V100 GPU を搭載した Amazon EC2 P3 インスタンスが、計算集約型の深層学習トレーニングジョブに最適であることはわかりました。ただし、予算は限られており、トレーニングの費用を減らしたいと考えます。 スポットインスタンスの料金は、数時間から数日を要するトレーニングジョブを実行している深層学習の研究者や開発者のために、高性能 GPU を手頃で利用しやすいものにしています。スポットインスタンスを利用すると、オンデマンドレートよりも大幅に値引きされた価格で、予備の Amazon EC2 コンピューティング性能を利用できます。インスタンスおよびリージョンごとの最新の価格一覧については、スポットインスタンスアドバイザーをご覧ください。スポットインスタンスとオンデマンドインスタンスの主要な相違点の詳細については、Amazon EC2 ユーザーガイドをお読みいただくことをお勧めします。 スポットインスタンスは深層学習のワークフローに最適ですが、オンデマンドインスタンスと比べ、使用上の課題がいくつか存在します。まず、スポットインスタンスはプリエンプションが可能で、2 分前に通知すれば終了できます。これは、トレーニングジョブを実行し完了する際にインスタンスを当てにできない、ということを意味します。したがって、時間的制約のあるワークロードにはお勧めしません。第二に、トレーニングの進行状況が正常に保存されていなかった場合、インスタンスを終了したときにデータが紛失する可能性があります。第三に、スポットインスタンスを作成した後はアプリケーションを中断させないことを決定した場合、スポットインスタンスを停止し、オンデマンドインスタンスまたはリザーブドインスタンスとして再作成する以外に選択肢がなくなります。 これらの課題に対処するために、深層学習のトレーニングワークフロー向けにスポットインスタンスをセットアップし、同時に、スポットの中断が発生した場合にはトレーニングの進行状況の紛失を最小限に抑えることが可能な、ステップバイステップのガイドを用意しました。次の特徴を維持しながらセットアップを実装することが、ここでの目標です。 コンピューティング、ストレージ、コードのアーティファクトを分離し、コンピューティングインスタンスをステートレスに維持する。これにより、インスタンスが終了したときに、復旧とトレーニング状態の復元を簡単に行えるようになります。 データセット、トレーニングの進行状況 (チェックポイント)、ロゴのために、専用のボリュームを使用する。このボリュームは永続的で、インスタンスの終了の影響を受けるようなことがあってはなりません。 バージョン管理システム (例: Git) を使用する。このリポジトリは、トレーニングを開始/再開するためのクローンを作成する必要があります。これにより、トレーサビリティが有効になり、インスタンスが終了したときに変更されたコードが紛失することを防げます。 トレーニングスクリプトのコードの変更を最小限に抑える。これにより、トレーニングスクリプトを個別に開発することが可能になり、バックアップとスナップショットのオペレーションをトレーニングコードの外部で実行できます。 さまざまな自動化終了後の交換用インスタンスの作成、起動時のデータセットとチェックポイントのEBS ボリュームの添付、 アベイラビリティーゾーンを横断したボリュームの移動、インスタンスの状態の復元実行、トレーニングの再開、トレーニング完了後のインスタンスの終了、これらを自動化します。 TensorFlow と AWS 深層学習 AMI を使用したスポットインスタンスの深層学習 この例では、スポットインスタンスと AWS 深層学習 AMI を使って、CIFAR10 データセットで ResNet50 モデルをトレーニングします。 ここでは、AWS 深層学習 AMI バージョン 21 で入手可能な CUDA 9 を使って構成された、TensorFlow […]

Read More

レイテンシーを考慮した Amazon DynamoDB アプリケーションのための AWS Java SDK HTTP リクエスト設定の調整

Amazon DynamoDB は、大規模に実行されるアプリケーションとサービスに低レイテンシーと高スループットのパフォーマンスを提供するために設計された NoSQL クラウドデータベースサービスです。ユースケースの例には以下が含まれます。 大規模多人数参加型オンラインゲーム (MMOG) バーチャルリアリティとオーグメントリアリティ e コマースでのチェックアウトと注文処理 リアルタイムの株価情報と売買 そのようなシステムをグローバルで運営していると、時折レイテンシースパイクが発生することがあります。これらのスパイクは、一時的なネットワーク中断による再試行、サービス側およびネットワーク側の問題、または過剰な負荷がかかった応答が遅いクライアントが原因で発生する場合があります。 根本的な原因にかかわらず、DynamoDB サービスとやり取りするアプリケーションは、レイテンシースパイクを回避するために役立つ再試行戦略に従うよう調整しておく必要があります。使用している AWS SDK に応じて、基盤となる HTTP クライアントの動作は、HTTP を経由する低レベルのクライアント対サーバー通信がアプリケーションのレイテンシー要件に従うことができるように、デフォルト設定を設定し直すことが可能です。このブログ記事では、レイテンシーを考慮した DynamoDB クライアントのための、HTTP リクエストのタイムアウトと再試行動作の微調整に利用できる AWS Java SDK 設定オプションについて説明します。また、適切な設定のメリットを実証するために、2 つの仮定上のアプリケーションシナリオについても説明します。 DynamoDB クライアントのための AWS Java SDK HTTP 設定 AWS Java SDK は、HTTP クライアントの動作と再試行戦略に対する完全な制御を提供します。標準 HTTP 設定の情報については、「クライアント側の設定」を参照してください。一方で、レイテンシーを考慮した DynamoDB アプリケーションクライアントを構築するために必要なより詳しい設定は、ClientConfiguration (JavaDocs) コード実装にあります。 このブログ記事では、非同期 DynamoDB クライアント を Java でゼロから構築し、AWS SDK からの ClientConfiguration […]

Read More

Amazon SageMaker で Optuna を用いたハイパーパラメータ最適化を実装する

Amazon SageMaker はお客様の機械学習のワークロードにおいて様々な選択肢を提供します。深層学習フレームワークの選択肢として2018年の AWS Summit Tokyo で発表された Chainer 対応はその一つです。Chainer は 株式会社Preferred Networks により開発された深層学習フレームワークで、計算時に動的にグラフを生成する define-by-run の考え方 (imperative な実行とも呼ばれます) を世界に先駆けて取り入れました。株式会社Preferred Networks はこの Chainer とは独立に、同じく define-by-run の思想に基づいたハイパーパラメータの最適化 (HPO) のための Optuna を2018年12月に発表しました。本稿では、AWS が提供する SageMaker 上で Optuna を用いた HPO を行う方法とアーキテクチャについてご紹介します。 導入 SageMaker が提供する HPO の選択肢 Amazon SageMaker は、TensorFlow, Apache MXNet, PyTorch, Chainer, scikit-learn, Horovod, Keras, Gluon などのフレームワーク・インターフェースに対応し、すべての開発者とデータサイエンティストに機械学習モデルの構築・学習・デプロイ手段を提供する AWS のサービスです。SageMaker はマネージド型の […]

Read More

【開催報告】第3回 Amazon SageMaker 事例祭り

アマゾン ウェブ サービス ジャパン株式会社 (AWS) 機械学習ソリューションアーキテクトの宇都宮聖子です。AWS 目黒オフィスでは、お客様の事例紹介登壇を交えた Amazon SageMaker のセミナーとして、「Amazon SageMaker 事例祭り」を毎月開催しています。2019年3月12日に開催された第3回 Amzon SageMaker 事例祭りでは、株式会社ディー・エヌ・エーの加藤様、クックパッド株式会社の染谷様をゲストスピーカーにお迎えし、Amazno SageMaker の入門ハンズオンまで、130名を超えるたくさんの方々にご参加いただきました。

Read More

AWS RoboMakerでROSアプリケーションのビルドとバンドルをおこなう

12か月前から、クラウドロボティクスサービスであるAWS RoboMakerの開発を開始しました。 私たちに直面していた最大の疑問の1つは、次のとおりでした。サービス上でROSアプリケーションを簡単に実行できるようにするにはどうすればよいのか。 ロボットアプリケーションは、多数の依存関係を持つさまざまなパッケージが大量に混在しています。 シミュレーションも含まれると、その依存関係のリストがさらに増えます。 多くの検討と研究の結果、私たちはappimage、flatpak、snapcraftに触発され、ローカルのの開発環境でも私たちのサービスでも使える単一のファイルフォーマットを作成しました。 このフォーマットをbundleと呼びます。 パッケージングアーティファクトをどのような設計するかを決定した後、生成を容易にするためのコマンドラインツールを作成したいと思いました。 ツールが既存のROSエコシステム内に収まることが私たちにとって非常に重要でした。 その結果ROSのビルドツールの中で最新かつ最高のものであるcolconの上に構築することにしました。 ColconはROS1とROS2アプリケーションを構築できます。 またそれは非常に拡張性があり、革新的で重要な機能の多くを提供します。 この記事では、既存のROSビルドツールと、なぜcolconがROS2のビルドツールとして選ばれたのかを説明しています。 Colconは私たちの代わりに多くの大変な作業を肩代わりすることにより、私たちは特定の機能に集中することができます。 さらに、colcon buildはcatkin_makeとament_makeを利用してビルドしていたパッケージを変更することなく置き換えます。 つまり、colconの上にツールを構築することで、AWS RoboMakerユーザーは単一のツールをインストールしてフルワークフローを実行し、AWS RoboMakerで使用するためのbundleを生成できます。 この記事では、AWS RoboMakerで使用するbundleを作成するための通常のワークフローと、頻繁に発生する問題に対するいくつかの解決策について説明します。 2番目のセクションでは、最新バージョンの「bundle」ファイルフォーマットについて詳しく説明し、colcon bundleを実行してbundleを作成するときに何が起こるかについて概要を説明します。 なぜbundleなのか ROSシミュレーションワークフローには、ROSおよびその他のアプリケーションのランタイム依存関係がインストールされた環境が必要です。 通常は、さまざまなapt-get installコマンドを実行することによって実現されます。 このインストールは時間がかかり、さらに公開されているパッケージのアップデートはいつでも発生する可能性があるため、同じインストールを確実に再現することはできません。 私たちのサービスでは、シミュレーションを実行するたびにaptを使用して新しい環境をインストールすることの信頼性を心配していたので、さまざまなパッケージ形式を調べました。 ROSアプリケーション全体で最も魅力的で信頼性の高い配布形式はDebianパッケージでした。 それはROSのロボットを動かすのに必要な、boostまたは他の外部ライブラリ、そして実際のアプリケーションコードなど、すべてを含むことができます。 ダウンロード、作成、および更新のための最適化を柔軟に追加できるようにするため、既存のフォーマットを使用しないことにしました。 そこで私たちは「bundle」フォーマットと、それをサポートするための対応するツールを作成しました。 最初のバージョンはうまくいきましたが、以下のようないくつかの制限がありました。 ワークスペースの更新のみでbundleを更新するのは、最初のcolcon bundleの呼び出しと同じくらいの時間がかかりました。 更新されたbundleをロボットにデプロイすることは、ダウンロードとbundleコンテンツの抽出の両方において、期待したほど速くはありませんでした。 これらの制限を軽減または削除するための最適化を含むbundle形式の、バージョン2を発表できることに興奮しています。 フォーマットは現在部分的なダウンロードと部分的な抽出をサポートしています。 これには3つの大きな利点があります。 2G / 3Gといった帯域幅に制約のあるリモートデバイスであるロボットのアップデートで、使用される帯域幅を削減することができました 必要なものだけを抽出するようになりました。bundleの大部分が変更されていない場合は、ダウンロードまたは展開に無駄なコストを負う必要はありません。 ローエンドのデバイスでは、これにより大幅な時間の節約になります(TurtleBotsでは、デプロイにかかる時間が60分から1分に短縮されました) 全体のアーカイブは圧縮されていないので、段階的にbundleすることができます。 これにより、ワークスペースを簡単に更新するための再bundle時間が5分以上から数秒に短縮されます AWS RoboMakerはこの新しいバージョンをサポートしています。 これらの新しい機能を試してみたい場合は、開発環境でsudo pip3 install -U colcon-bundleを実行してください。 このブログの後半では、この新しい形式の実装について詳しく説明します。 […]

Read More