Amazon Web Services ブログ

週刊AWS

週刊AWS – 2019/9/16週

みなさん、こんにちは!ソリューションアーキテクトの下佐粉です。 今週も週刊AWSをお届けします。東京は少しずつですが秋という感じの気候になってきました。9月は連休が多いので嬉しい月なのですが、AWSのサービスは日本の連休には関係なく毎日のように新機能、新サービスが追加されています。 それでは、先週の主なアップデートについて振り返っていきましょう。

Read More

新機能 – Step Functions が動的並列処理をサポート

マイクロサービスを使用すると、アプリケーションのスケーリングが容易になり、開発が高速になりますが、分散アプリケーションのコンポーネントを調整するのは大変な作業になりかねません。 AWS Step Functions は、各ステップが前のステップの出力を入力として受け取るステップで構成されるワークフローを設計および実行できるようにすることで、タスクの調整を容易にする完全マネージド型サービスです。たとえば、Novartis Institute for Biomedical Research は、Step Functions を使用して、クラスターの専門家に頼らずに科学者が画像分析を実行できるようにしています。 Step Functions は最近、コールバックパターンなどの非常に興味深い機能を追加して、人の活動とサードパーティサービスの統合を簡素化し、ネストされたワークフローを組み合わせてモジュール式の再利用可能なワークフローを組み立てました。今日、ワークフロー内の動的並列処理のサポートを追加します! 動的並列処理の仕組み ステートマシンは、JSON ベースの構造化言語である Amazon States Language を使用して定義されます。Parallel 状態を使用して、ステートマシンで定義された一定数のブランチを並列に実行できます。 現在、Step Functions は、動的並列処理のために新しい Map 状態タイプをサポートしています。 Map 状態を設定するには、完全なサブワークフローである Iterator を定義します。Step Functions の実行が Map 状態になると、状態入力の JSON 配列を反復処理します。各アイテムに対して、Map 状態は 1 つのサブワークフローを、潜在的に並列に実行します。すべてのサブワークフローの実行が完了すると、Map 状態は、Iterator が処理した各アイテムの出力を含む配列を返します。 MaxConcurrency フィールドを追加することにより、Map が実行する同時サブワークフローの数の上限を設定できます。 デフォルト値は 0 で、並列性に制限はなく、可能な限り同時に反復が呼び出されます。 1 の MaxConcurrency 値は、入力状態での出現順に Iterator を一度に 1 つの要素を呼び出す効果があり、前の反復が実行を完了するまで反復を開始しません。 新しい Map […]

Read More

Amazon Sagemaker 推論モデルを構築、テストし、AWS Lambda にデプロイする

Amazon SageMaker は、開発者やデータサイエンティストがあらゆる規模の機械学習 (ML) モデルを迅速かつ簡単に構築、トレーニング、デプロイできるようにする完全マネージド型プラットフォームです。ML モデルをデプロイすると、Amazon SageMaker は ML ホスティングインスタンスを活用してモデルをホストし、推論を提供する API エンドポイントを提供します。AWS IoT Greengrass も使用できます。 ただし、異なるターゲットへのデプロイを可能にする Amazon SageMaker の柔軟性のおかげで、AWS Lambda でモデルをホストするといくつかの利点が得られる場合があります。たとえば、GPU が必要な場合、すべてのモデルを AWS Lambda でホストできるわけではありません。また、AWS Lambda のデプロイパッケージのサイズなどのその他の制限があり、この方法を使用できない場合があります。AWS Lambda を使用できる場合、このアーキテクチャには、低コスト、イベントトリガー、シームレスなスケーラビリティ、スパイクリクエストなどの利点があります。たとえば、モデルが小さく、頻繁に呼び出されない場合、AWS Lambda を使用する方が安価な可能性があります。 この記事では、推論を提供する Lambda 関数を構築、テスト、デプロイするためのパイプラインを作成します。 前提条件 読者は Amazon SageMaker、AWS CloudFormation、AWS Lambda、および AWS Code* スイートの使用経験があると想定しています。 アーキテクチャの説明 CI/CD のパイプラインを作成するには、AWS 開発者用ツールを使用します。このスイートは、AWS CodeDeploy、AWS CodeBuild、および AWS CodePipeline を使用します。以下にアーキテクチャの図を示します。 Amazon SageMaker を使用してモデルをトレーニングすると、出力モデルが […]

Read More

NoSQL Workbench for Amazon DynamoDB – プレビューの使用が可能になりました

毎月数件のリクエストから毎秒何千万ものリクエストに簡単にスケールできる、完全マネージド型の key-value データベースとドキュメントデータベースを AWS のお客様に提供する Amazon DynamoDB には、いつも感銘を受けてきました。 DynamoDB チームは最近、オンデマンドキャパシティからネイティブな ACID トランザクションのサポートまで、数多くの素晴らしい機能をリリースしました。こちらは、グローバルテーブル、ポイントインタイムリカバリ、およびインスタントアダプティブキャパシティなど、最近の DynamoDB 発表の内容がよくわかる概要です。DynamoDB は、保管時のお客様データをすべてデフォルトで暗号化するようになりました。 しかし、リレーショナルデータベースから NoSQL への発想の切り替えはそれほど簡単なことではありません。昨年の re:Invent では、DynamoDB の仕組みと、それをどのように皆さんのユースケースに使用できるかに関する 2 つの素晴らしい講演が行われました。 Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (講演者: Jaso Sorenson) Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (講演者: Rick Houlihan) DynamoDB をさらに役立てていただくため、AWS は本日、プレビュー版の NoSQL Workbench for Amazon […]

Read More

SPARQL explain を使用して、Amazon Neptune のクエリ実行を理解する

 お客様は、AWS 内で使用するサービスの可視性と制御の向上を引き続き求めています。データベースサービスに関しては、お客様からは通常、特定のデータベース内でのクエリの最適化と処理に関する洞察を求めるリクエストを中心に受けています。データベースの開発者と管理者は、ほとんどの場合、データベースクエリ実行プランのアイデアと使用法をすでによく知っています。お客様の議論に動機付けられて、Amazon Neptune に SPARQL クエリの explain 機能が追加されました。 Amazon Neptune は、高度に連結されたデータの保存とクエリのために最適化された、高速で信頼性に優れた完全マネージド型のグラフデータベースで、データ内の接続のナビゲートと活用に依存するオンラインアプリケーションに最適です。 Amazon Neptune は、SPARQL クエリ言語を使用してクエリできる W3C Resource Description Framework (RDF) グラフをサポートしています。また、Gremlin グラフトラバーサルおよびクエリ言語を使用してクエリできる Apache TinkerPop プロパティグラフもサポートしています。 このブログ記事では、新しい SPARQL explain 機能とその使用方法について詳しく説明します。また、この記事の最後に、今日 SPARQL explain を試してみたい人のために、ワークロードと設定の例を示しました。 explain を使用した SPARQL クエリのランタイム動作の理解 SPARQL クエリが Neptune クラスターに送信されると、データベースエンジンはクエリを SPARQL クエリオプティマイザーに転送します。これにより、利用可能な統計とヒューリスティックに基づいてクエリプランが生成されます。オプティマイザーは、個々のトリプルパターンと接続演算子によってクエリを分割し、最適な実行を提供するために自動的に並べ替えます。このタイプの最適化により、クエリ開発者はクエリを評価する最適な順序を考慮する必要がなくなります。 場合によっては、オプティマイザーが選択したトリプルパターン (より一般的には実行プラン) の評価順序についてより多くの洞察を得たい場合があります。ここで、新しい SPARQL explain 機能の出番です。生成された評価プランを検査して、実行順序を理解できるためです。 クエリ explain 出力は、追加パラメータ「explain=<MODE>」を HTTP リクエストに追加するだけで取得できます。 次の curl […]

Read More

サーバーレスアプリケーションから Amazon Aurora への IAM ロールベース認証

 ユーザー名とパスワードをアプリケーションに直接保存することはベストプラクティスではありません。セキュリティで保護されたアプリケーションでは、資格情報をプレーンテキストとして保存しないでください。ソリューションとして、AWS Identity and Access Management (IAM) ポリシーは、Amazon Aurora リソースを管理できるユーザーを決定するアクセス許可を割り当てることができます。たとえば、IAM を使用して、DB クラスター、タグリソース、またはセキュリティグループを作成、記述、変更、削除できるユーザーを決定できます。Amazon Aurora では、データベースユーザーを IAM ユーザーとロールに関連付けることができます。 この記事では、AWS Lambda 関数を使用して IAM を使用して Amazon Aurora データベースにアクセスする方法を説明します。 概要 IAM データベース認証を使用して、DB クラスターに接続できます。この方法を使用すると、パスワードを設定ファイルに保存する代わりに、生成された認証トークンでデータベースにアクセスできます。Amazon Aurora は、アプリケーションから接続を作成するために 15 分間有効な AWS Signature Version 4 認証トークンを生成します。認証は IAM によって外部で完全に管理されるため、データベースに認証情報を作成する必要はありません。 チュートリアル 次の図は、ワークフローを示しています。 Lambda は、サーバーのプロビジョニングまたは管理を行うことなく、コードを実行するコンピューティングサービスです。Lambda は、必要な場合にのみコードを実行し、1 日あたり数回のリクエストから毎秒数千ものリクエストにまで自動的にスケールします。Lambda を使用するときは、コードに対してのみ責任があります。Lambda は、メモリ、CPU、ネットワークや他のリソースのバランスを提供するコンピュートフリートを管理します。Lambda は Lambda 関数を実行し、結果を返します。 コンソールで Lambda 関数を作成する方法は次のとおりです。 [AWS Lambda […]

Read More

Amazon QuickSight のアクセスに Okta をフェデレーションする

 Amazon QuickSight は、クラウドベースで高速なビジネスインテリジェンスサービスです。これにより、組織の誰もが容易に洞察を入手できるようになります。完全マネージド型サービスである Amazon QuickSight では、任意のデバイスからアクセスできる双方向性ダッシュボードを簡単に作成と公開が行え、アプリケーション、ポータル、ウェブサイトなどに埋め込むことができます。 Amazon QuickSight では、Standard と Enterprise の両方のエディションで、セキュリティアサーションマークアップランゲージ 2.0 (SAML 2.0) を使うアイデンティティフェデレーションをサポートしています。フェデレーションを使うと、エンタープライズアイデンティティプロバイダー (IdP) によりユーザーを管理でき、ログインしたユーザーを Amazon QuickSight へ移動させることが可能です。この IdP には、Microsoft Active Directory Federation Services、Ping One Federation Server、Okta などの種類があります。 今回の記事では、Amazon QuickSight のアクセスに Okta をフェデレーションする方法について手順を追って説明します。 Okta アプリケーションの作成 Okta の管理者ダッシュボードにサインインします。Okta Developer Edition のアカウントは無料で作成できます。 Okta 管理者ダッシュボードのリボンで、[Applications] をクリックします。 [Developer Console] が表示されている場合は、次のスクリーンショットを参考にして、 [Classic UI] に切り替えます。 [Add Application] […]

Read More

Thinkbox DeadlineのAWS ポータルを使ったレンダリング

はじめに Dealdine 10の新しいAWS ポータル機能は、Autodesk MayaやAutodesk Arnoldを含む数多くのコンテンツ作成アプリケーションをサポートします。この機能により、Amazon EC2 Spot Instancesの分散コンピューティングパワーを使用して、Maya/Arnoldワークフローを最適化することができます。本記事では、AWS上でMaya/Arnoldを使ったレンダリングに必要な手順を説明します。 この手順は、AWS ポータルがサポートする他の製品の場合と非常によく似ているため、他のコンテンツ作成アプリケーションを使用する場合にも、本記事の内容のほとんどが有効です。

Read More

AWS SFTP 論理ディレクトリを使用して、シンプルデータ配布サービスを構築する

当社は 2018 年 11 月に AWS Transfer for SFTP (AWS SFTP) サービスを開始し、それ以来多くの組織で採用され、 Amazon S3 でホストされるデータへの安全な SFTP アクセスを使用可能にしてきました。AWS では、当社のサービスを継続的に反復し、多くのお客様から、SFTPを接続したユーザーのために複数の S3 バケットやキーを統合された論理的ネームスペースにマッピングするオプションが欲しいというご希望をお話をされてきました。このニーズに応えるために、 当社は最近、「論理的ディレクトリ」と呼ばれる AWS SFTP の新機能を開始しました。この機能を使用して、お客様は S3 バケットパスを SFTP エンドユーザーに見ることができるようにする方法をカスタマイズすることができ、そのことにより、次のことが可能になります。 S3 バケットのファイルやフォルダーへのアクセス (例; サブスクリプションベースのアクセス) を容易に制限する 既存のアプリケーションとスクリプトで参照されたファイルおよびフォルダーを保存する ファイルのコピーを作成せずに複数のコンシューマーにファイルを配信する コンプライアンス/規制目的で SFTP エンドユーザーに S3 バケット名が表示されないようにする この記事では、論理ディレクトリを使用して、AWS SFTP を使用してサブスクライバーとデータを共有するための簡単なデータ配信サービスを実装する方法を示します。 簡単なデータ配信サービスの構築 「Bob」が SmartTrade という金融サービス組織のクラウドアーキテクトとして働いているとします。Bob はサブスクライバーが投資戦略を導くために財務データを利用できるようにするデータ配信サービスを構築しています。ユーザーは、サブスクリプションプロファイルに応じて、さまざまなデータセットにアクセスできます。また、ユーザーは権限をもつデータにのみアクセスできることを確認したいと思っています。 Bob のデータレポジトリは現在、「public-research」と「subscriptions」という名前の 2 つの S3 バケットの上に構築されています。各 SmartTrade […]

Read More

Amazon SageMaker で PyTorch を使用するグローバル最適化のためのディープニューラルネットベースの代理関数の構築

最適化とは、設計変数と呼ばれる入力に依存する関数の最小値 (または最大値) を求めるプロセスです。お客様 X には次のような問題があります。このお客様は、最大の燃料効率のために設計される新しい自動車モデルをリリースしようとしています。実際の場合、エンジン、トランスミッション、サスペンションなどに関連するチューニングパラメータを示す何千ものパラメータがあり、それらの組み合わせは様々な燃料効率値を生じます。 しかし、この記事では、特定の速度で走行する場合に燃焼される 1 時間あたりの燃料量 (ガロン単位) としてこの効率性を測定し、その他すべてのパラメータは変化しないと仮定します。従って、最小化される「関数」は「1 時間ごとに燃焼される燃料量 (ガロン単位)」になり、設計変数は「速度」になります。 この一次元最適化問題は、「1 時間ごとに燃焼される燃料量を最小限化するには、どの速度で車を走行させるべきか」という問題を提起します。これは、考慮される何千もの実際のパラメータを大幅に簡素化したものです。 目的関数 (f) が以下の合成関数のようになると仮定します。 f(x) = x⋅sin(x)+x⋅cos(2x) x および y 軸の単位を無視して、青矢印で示されているこの関数の最小値を探すのが今回のタスクになります。単一次元を扱っている場合でさえも、すべての速度値 (速度は実数) で車を走行させるのは非現実的です。 この記事では、実験を 30 回行う予算があるとします。各「実験」では、テスト装置上で車をその速度で走行させ、1 時間ごとに燃焼された燃料の平均値を測定し、収集します。こうすることで、速度の 30 の値に対応する燃焼された燃料の 30 の値だけが得られ、それ以外は得られません。また、最小値 (図の青矢印) で示されている速度の値で実施された実験が存在するという保証もありません。 各実験のセットアップには、実際に数時間かかる場合があります。このような実験を特定回数以上実施することは現実的ではないため、このタイプの関数は高コストなブラックボックス関数と呼ばれます。この関数が高コストなのは値を返すまでに時間がかかるためで、ブラックボックスと呼ばれるのは実施された実験を数式で記述できないからです。 最適化研究分野の全体が、これらのような問題を解決するアルゴリズムの作成を目的としています。この記事では、上記の関数 (f) を近似化するために、ニューラルネットワークを使用します。「代理モデル」としても知られる関数の訓練された近似化は、実際の実験の代わりに使用することができます! 訓練されたモデルが実際の関数の良好な近似化であるならば、任意の値の速度 (入力) に対して燃焼された燃料 (出力) を予測するためにこのモデルを使用できます。 技術的なアプローチ これらすべてのステップを詳しく説明するサンプルの Jupyter ノートブックについては、Build a Deep Neural Global Optimizer を参照してください。 […]

Read More