Amazon Web Services ブログ

週刊AWS

週刊AWS – 2019/8/26週

みなさん、こんにちは!ソリューションアーキテクトの下佐粉です。 日中は変わらず暑い日々が続いていますが、東京は朝夕は随分涼しくなってきたように思います。 今週は先週出せなかった8/19週分の週刊AWSも出ていますので、ぜひ合わせてご覧ください。また、これまでの週刊AWSはこちらから辿れます。それでは、先週(8/26週)の主なアップデートについて振り返っていきましょう。

Read More

Amazon EFS または Amazon FSx for Lustre ファイルシステムを使用して、Amazon SageMaker のトレーニングをスピードアップする

Amazon SageMaker は、データサイエンスと機械学習のワークフローに向けて完全管理型のサービスを提供します。Amazon SageMaker の最も重要な機能の 1 つに、機械学習モデルをトレーニングするための完全管理型のトレーニングジョブを実行する機能が挙げられます。サービスコンソールにアクセスして、Amazon SageMaker で自分自身で機械学習モデルをトレーニングしてください。 今では、Amazon Elastic File System (EFS) または Amazon FSx for Lustre に保存されているデータから機械学習モデルをトレーニングすることで、トレーニングジョブの実行をスピードアップすることができます。 Amazon EFS は AWS クラウドサービスとオンプレミスリソースで使用するために Linux ベースのワークロードに対して、単純でスケール自在、伸縮自在なファイルシステムを提供します。Amazon FSx for Lustre は、機械学習、分析、ハイパフォーマンスコンピューティングなどのワークロードに対して最適化されたハイパフォーマンスファイルシステムです。 機械学習モデルのトレーニングでは、トレーニングジョブに対してトレーニングデータセットを提供することが必要です。 ファイル入力モードで Amazon Simple Storage Service (S3) をトレーニングデータソースとして使用するとき、トレーニングジョブの開始時にすべてのトレーニングデータが Amazon S3 からトレーニングインスタンスにアタッチされた EBS ボリュームにダウンロードされます。Amazon EFS または FSx for Lustre などの分散型ファイルシステムは、このダウンロード手順の必要性を排除することで、機械学習トレーニングをスピードアップできます。 この記事では、ファイルシステムを使用してモデルをトレーニングする利点について見ていき、ファイルシステムを選択し、開始する方法を示すために役立つ情報を提供します。 SageMaker のトレーニングモジュールのファイルシステムの選択 ファイルシステムから機械学習モデルをトレーニングすべきかどうかを考えるとき、最初に考えるべきことは、ご自分のトレーニングデータが今どこに常駐しているのか、ということです。 トレーニングデータがすでに Amazon S3 にあり、トレーニングジョブのためにより短いトレーニング時間を指示する必要がない場合は、データの移動必要なしで Amazon SageMaker […]

Read More

Apache MXNet、AWS Lambda、Amazon Elastic Inference を使って深層学習を提供している Curalate 社

 このブログは、Curalate のコンピュータビジョン研究技師 Jesse Brizzi 氏によるゲストブログ投稿です。 Curalate では、深層学習とコンピュータビジョンを使ってユーザー生成コンテンツ (UGC、user-generated content) を発見および活用し、インフルエンサーを活性化する新たな方法を日々考案しています。そうしたアプリケーションの中には、Intelligent Product Tagging のように、画像を可能な限りすばやく処理するために深層学習モデルを必要とするものがあります。他方で、深層学習モデルは、有用な信号を生成して顧客にコンテンツを提供するために、毎月何億という画像を取り込まなければなりません。 スタートアップである Curalate は、こうしたことのすべてを、高いパフォーマンスと費用対効果を維持しながら大規模に実行できる方法を見つけなければなりませんでした。当社は、自社の深層学習モデルをホストするために、AWS が提供すべきあらゆるタイプのクラウドインフラストラクチャを長年にわたって使用してきました。その過程で、深層学習モデルを本番稼働で大規模に提供することに関して多くのことを学びました。 この記事では、Curalate が深層学習のインフラストラクチャを設計する際に考慮している重要な要素、API/サービスタイプでそれらの要素がどのように優先付けされているのか、そして最も重要なこととして、さまざまな AWS 製品が結局のところいかにしてこうした要件を満たしているのかについて、解説していきます。 問題の概要 たとえば、手元にトレーニング済みの MXNet モデルがあり、それを AWS クラウドインフラストラクチャで提供しようと考えているとします。どのように構築を行いますか。また、どのようなソリューションやアーキテクチャを選択しますか。 Curalate は、こうした問題に答えを出すことに長年取り組んでいます。当社はスタートアップとして、新しいオプションが公開されたときはいつでも、すぐにそれを導入し、試す必要がありました。また、深層学習サービスを構築する際は自社のコードをロールします。そうすることで、管理を強化し、選択したプログラミング言語で作業することが可能になります。 この記事では、もっぱら深層学習サービスのハードウェアオプションに焦点をあてます。同じくモデル提供のソリューションをお探しの方は、Amazon SageMaker に利用可能なオプションがあります。 次に、私たちがいつも自問自答している問いの一部を紹介します。 いま設計しているのはどんな種類のサービス/API なのか? それはユーザーが触れるものでリアルタイムなのか? あるいは、オフラインのデータパイプライン処理サービスなのか? 各 AWS ハードウェア提供オプションの違いは何か? パフォーマンス特性 そのモデルを使うとどれくらいの速さで入力を実行できるか? 開発の容易さ サービスロジックの設計およびコード化の難易度はどの程度か? 安定性 ハードウェアがサービスの安定性に及ぼす影響はどの程度か? 費用 そのハードウェアオプションの費用対効果は他のオプションに比べ、どの程度優れているか? GPU ソリューション GPU は最も確実なソリューションに見えるかもしれません。機械学習の分野における開発は、GPU の処理能力と切っても切り離せません。真の “深層” […]

Read More

S3 バッチオペレーションでビデオファイルをトランスコードする

簡単にペタバイトのデータになりかねない最新のビデオアーカイブの実用的なストレージ管理には、大量に迅速に作業する能力 (ハードではなくスマートに作業する能力) が不可欠です。S3 バッチオペレーションは Amazon S3 の機能で、1 回のリクエストまたは S3 コンソールでの数回のクリックで、数百万または数十億のオブジェクト間でオブジェクトをコピーまたはタグ付けするなどのアクションを実行できます。提供するのはオブジェクトのリストのみで、S3 バッチオペレーションは、再試行の管理や進行状況の表示など、残りの作業を処理します。 多くのメディア企業は、大規模なビデオリポジトリを S3 に保存しています。現在のビデオは S3 Standard に保存し、古いビデオは S3 Glacier にアーカイブする方法が一般的です。Lambda の呼び出しは、新しいオブジェクトをバケットに入れるなどの S3 イベントでトリガーできるでしょう。S3 バッチオペレーションは、既存のオブジェクトの Lambda 関数のトリガーや、S3 での他の大規模なタスクの実行を支援する管理ソリューションを提供します。 この投稿では、S3 に保存されたビデオまたは Amazon S3 Glacier からの復元が必要なビデオのいずれかから、AWS Lambda を使用して S3 バッチオペレーションでビデオトランスコーディングジョブをトリガーする方法を確認します。 Lambda トランスコーディングワークフローを作成する 典型的なトランスコーディングワークフローは、既存のビデオファイルを取得し、それをビデオオンデマンド再生用に複数のファイルタイプに変換します。この例では、VOD Automation ワークフローポストを使用して、ファイルのトランスコーディングワークフローを作成します。ここでは S3 に既に保存されているビデオオブジェクト、および S3 Glacier にアーカイブされているビデオオブジェクトをサポートするワークフローに変更を加えます。 最初に、上記のリンクを使用して VOD 自動化ワークフローを設定します。手順 2 に到達し、Lambda 関数を作成したら、この投稿に戻ります。Lambda 関数を変更して、S3 バッチオペレーションで動作するようにする必要があります。Lambda […]

Read More

マルチリージョンでの高可用性のための SQL データベースのクライアント側暗号化の実行

Amazon Relational Database Service (RDS) と Amazon Aurora は、データベースインスタンス、自動バックアップ、リードレプリカ、およびスナップショットの基盤となるストレージを保護するために保存時の暗号化をネイティブに提供しますが、時折、使用中のデータを暗号化することによって機密性を強化する方法について尋ねられるお客様がおられます。 たとえば、プライマリアカウントナンバーをセキュアに保存してから読み込むときなど、トークナイゼーションソリューションが適切ではない場合には暗号化が必要となります。 お客様にとって、データベース列に保存された機密情報 (社会保障番号や銀行口座番号など) がデータベース管理者などの社内の人物に表示されないようにすることが必要であるという例もあります。 これらの暗号化シナリオでは、暗号化された列データで SQL WHERE 句述語のクエリを実行する必要はありません。列レベルでの暗号化を有効にするには、SQL データベースに永続化する前にクライアント側暗号化を使用できます。 この記事では、SQL データベースでのクライアント側暗号化を行うために考えられる 1 つのアプローチを段階的に説明します。暗号化キーは AWS Key Management Service (KMS) によって保護されており、復号化に必要なキーの制御を可能にします。その後、Amazon Aurora MySQL データベースエンジンに書き込む前にクライアント側暗号化を実行するサンプルアプリケーションについて説明します。 AWS 暗号化コンセプトの概要 ソリューションの概要を説明する前に、AWS KMS の機能の一部と AWS 暗号化 SDK について見直したいと思います。 AWS KMS は、キーポリシーを使用して、暗号化と復号化に必要なカスタマー管理の CMK の使用を制御することを可能にします。AWS KMS の CMK は、決して KMS を暗号化されていない状態のままにしておかず、エクスポートできません。さらに、AWS KMS は AWS CloudTrail […]

Read More

新機能: AWS Global Accelerator でのクライアント IP アドレス保持

AWS Global Accelerator は、着信するトラフィックを複数の AWS リージョンにルーティングするネットワークサービスです。これにより、グローバルなアプリケーションのパフォーマンスと可用性を向上させることができます。このサービスでは、当社が集積したエッジロケーションや遅延のないグローバルネットワークを利用することで、アプリケーション やネットワークの健全性、ユーザーの地理的位置などに基づき、トラフィック配信ができます。また、複数の AWS ロケーションからアナウンスされた静的な Anycast IP も使用できます (さらに詳しい情報は「New – AWS Global Accelerator for Availability and Performance」をご参照ください。 ) 。着信した TCP もしくは UDP トラフィックは、Application Load Balancer、Network Load Balancer、 Elastic IP Address にルーティングすることが可能です。 クライアント IP アドレス保持機能 当社は本日、AWS Global Accelerator に新たに加わった重要な機能について発表いたします。Application Load Balancer にトラフィックをルーティングしているお客様は、今後、ユーザーのクライアント IP アドレスを使い、エンドポイント上でのコード実行が行えるようになりました。この機能を使うと、特定の IP アドレス向けの処理を適用することができます。たとえば、IP アドレスに基づきフィルタリングを行うセキュリティグループの使用や、ユーザーの IP アドレスや所在地に応じた、カスタムコンテンツの提供などが行えます。加えて、ユーザーの所在地の地理的分布に関する統計情報を、IP アドレスを使いより精密に収集することも可能です。 クライアント IP […]

Read More

AWS System Manager Sessions Manager を使用した新しい機能 – Port Forwarding

昨今不変のインフラストラクチャアーキテクチャパターンを採用しているお客様が増えており、更新ごとにインフラストラクチャ全体を再構築およびリデプロイしています。SSH や RDP を介してサーバーに接続して、設定を更新したり、ソフトウェアの更新をデプロイしたりすることはほとんどありません。ただし、既存のアプリケーションをクラウドに移行する場合、Amazon Elastic Compute Cloud (EC2) インスタンスに接続して、さまざまな管理タスクまたは運用タスクを実行するのが一般的です。攻撃にさらされる面を減らすために、AWS では、ジャンプホストとも呼ばれる Bastion ホストを使用することをお勧めします。この特別な目的の EC2 インスタンスは、インターネットからのプライマリアクセスポイントになるように設計されており、他の EC2 インスタンスへのプロキシとして機能します。 EC2 インスタンスに接続するには、まず Bastion ホストに SSH/RDP 接続し、そこから宛先の EC2 インスタンスに接続します。 攻撃にさらされる面、Bastion ホストを管理するための運用上の負荷、および発生する追加コストをさらに削減するために、AWS Systems Manager Session Manager は、独自の Bastion ホストを実行および操作する必要も、 EC2 インスタンスで SSH を実行する必要もなく、 EC2 インスタンスに安全に接続できます。インスタンスに Systems Manager のエージェントがインストールされており、Systems Manager API を呼び出す IAM アクセス許可がある場合、AWS マネジメントコンソールまたは AWS コマンドラインインターフェイス (CLI) を使用して、Linux または Windows EC2 […]

Read More

Machine Learning ブログの新規記事: Amazon FSx for Lustre および Amazon EFS ファイルシステムを使用して、Amazon SageMaker のトレーニングをスピードアップする

分析アプリケーションと機械学習モデルをデプロイするには、容量とパフォーマンスをスケールインできるストレージが必要であり、高スループットと低レイテンシーのファイル操作でワークロードの需要に対応できます。 一般的なユースケースでは、データサイエンスチームが何らかの分析 (機械学習、ゲノミクスなど) を行うことを軸としています。AWS は、ビッグデータおよび分析ワークロード向けに、スケーラブルで耐久性のある可用性の高い2つのファイルソリューションを提供しています。Amazon EFS は、ML フレームワークや共有ノートブックシステム、そして Linux ベースのアプリケーションのためのクラウドネイティブの共有 NFS ストレージソリューションです。Faculty などの顧客は、分析ワークロードをスケーリングするために EFS を活用し、配信インサイトに対する俊敏性を向上させています。 Amazon FSx for Lustre は、データへのサブミリ秒アクセスを提供する Amazon S3 またはオンプレミスのデータを処理するための高性能ファイルシステムであり、最大で 1 秒あたり数百ギガバイトのスループットと数百万 IOPS の速度でデータを読み書きできます。Amazon FSx for Lustre は Amazon S3 とネイティブに連携し、コンピューティング集約型のファイルシステムでクラウドデータセットを簡単に処理することができます。Conductor Technologies は、クラウドレンダリングプラットフォームに FSx Lustre を用いることにより、TCO を削減しつつ、VFX およびアニメーションスタジオの顧客に簡素化とスケールをもたらします。 今週、AWS SageMaker チームは、EFS と FSx for Lustre の両方からデータにアクセスして意思決定を通知し、カスタマーエクスペリエンスを向上させることにより、顧客が機械学習のトレーニングジョブをスピードアップできるようになったことを発表しました。 機械学習ワークロードのための AWS ファイルストレージソリューションの詳細は、ブログ記事をご覧ください。

Read More

データベース移行のためのクロスアカウントの継続的デリバリーパイプラインの構築

開発を迅速化し、その品質を高めるには、アプリケーションのコード変更を管理してデプロイする継続的なデリバリー戦略を使用することができますが、データベース移行のための継続的デリバリーは、手動プロセスであることがほとんどです。 データベース移行のための継続的インテグレーションと継続的デリバリー (CI/CD) の導入には、次のようなメリットがあります。 自動化されたマルチアカウントセットアップによってデータベース移行がシンプル化される。 適用された変更の信頼レベルが向上する。 プロセスの再現が容易になる。 データベース移行がより高速で効率的になる。 データベースへの接続にジャンプステーションを使用する必要がないので、Amazon EC2 をプロビジョニングし、管理して、パッチを適用する必要がなくなる。 この記事では、マルチアカウントセットアップでデータベース移行を自動化するために AWS 開発者用ツール一式を設定する方法を説明します。対象読者は、AWS CloudFormation に関する知識がある開発者、ソリューションアーキテクト、およびデータベース管理者です。 このソリューションは、マルチアカウントおよびマルチ VPC の CI/CD データベース移行を紹介するために、4 つの AWS アカウントを使用します。 共有サービス – AWS CodePipeline および AWS CodeBuild などの継続的デリバリー/デプロイメントサービスに関連するすべてのツールのための中心的な場所です。共有サービスアカウントは AWS CodeCommit リポジトリもホストし、開発者はここにコードをプッシュできます。 開発、テスト、および本番 – Amazon RDS for SQL Server データベースを作成し、Secrets Manager を使ってデータベースの認証情報を保存するターゲットアカウントです。また、RDS for SQL Server インスタンスと同じ VPC およびプライベートサブネット内で、CodeBuild プロジェクトの作成と設定も行います。 前提条件 開発、テスト、および本番の各ステージを作成するための 3 […]

Read More