Amazon Web Services ブログ

Category: AWS RoboMaker

AWS DeepRacer ご利用後のリソース削除方法について

先日 2019年6月12日~14日に開催されたAWS Summit Tokyo 2019 では AWS DeepRacer リーグが行われました。AWS DeepRacer のご利用の際は、ご利用後に使わないリソースを適宜削除し、不要な課金を防いで利用しましょう。 AWS DeepRacer シミュレータのアーキテクチャ この図のように、AWS DeepRacer を立ち上げると、VPC 内に AWS DeepRacer の学習・推論評価用途 SageMaker, RoboMaker、描画、学習データの保存・データ転送に S3, Kinesis Video Stream, NAT Gateway が自動的に起動し、それぞれのサービスに対して課金が発生します。下記では、AWS DeepRacer ご利用後のリソース削除方法を紹介します。 注)本ブログは2019年6月15日時点の仕様を基にしており、今後変更の可能性がございます。   継続的な課金を停止するのに必要なこと リソースの自動削除 一度サービスを立ち上げると、学習・評価が終了しても、一部のサービスが起動したままの状態になっています。継続的な課金を防ぐために、下記の手順で関連リソースを削除することで、継続的な課金が防げます。 AWS DeepRacer → Reinforcement learning → Create model を選択 Account resources で、4つのリソースの左チェック印が緑色の場合、関連リソースが利用可能な状態となっています。 不要な課金を防ぐためには、Reset resources をクリックすれば、S3以外の関連リソースは削除されます。   S3 バケットの削除方法 また、S3バケットの削除は別途行う必要があります。S3 […]

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