Amazon Web Services ブログ

Tag: Launch

Lambda Thumb

新機能 – Lambda関数の共有ファイルシステム – Amazon Elastic File System for AWS Lambda

本投稿は AWS の Chief Evangelist (EMEA)であるDanilo Pocciaによる寄稿です。 AWS Lambda関数がAmazon Elastic File System(EFS)をマウントできるようになったことを非常に嬉しく思います。EFSは、高可用性と耐久性のために複数のアベイラビリティーゾーン(AZ)にまたがってデータを格納するスケーラブルでエラスティックなNFSファイルシステムです。このように、使い慣れたファイルシステムインターフェイスを使用して、関数単体、および複数のLambda関数のすべての同時実行環境にわたってデータを保存および共有できます。 EFSは、強力な整合性やファイルロックなどの完全なファイルシステムアクセスセマンティクスをサポートしています。 Lambda関数を使用してEFSファイルシステムを接続するには、EFSアクセスポイントを使用します。これは、ファイルシステムへのアクセス時に使用するオペレーティングシステムのユーザーとグループを含むEFSファイルシステムへのアプリケーション固有のエントリポイント、ファイルシステムのアクセス許可、およびファイルシステム内の特定のパスへのアクセスを制限できます。これにより、ファイルシステム構成をアプリケーションコードから切り離しておくことができます。 同一のアクセスポイント、または異なるアクセスポイントを使用して、複数の関数から同じEFSファイルシステムにアクセスできます。たとえば、異なるEFSアクセスポイントを使用して、各Lambda関数はファイルシステムの異なるパスにアクセスしたり、異なるファイルシステムのアクセス許可を使用したりできます。 同じEFSをAmazon Elastic Compute Cloud(EC2)インスタンス、Amazon ECSとAWS Fargateを使用するコンテナ化されたアプリケーションや、オンプレミスサーバーと共有できます。このアプローチに従って、異なるコンピューティングアーキテクチャ(関数、コンテナ、仮想サーバー)を使用して同じファイルを処理できます。たとえば、イベントに反応するLambda関数は、コンテナで実行されているアプリケーションによって読み取られる構成ファイルを更新できます。または、Lambda関数を使用して、EC2で実行されているWebアプリケーションによってアップロードされたファイルを処理できます。 このようにすると、いくつかのユースケースではLambda関数によって実装がより容易になります。例えば: /tmpで使用可能な容量(512MB)より大きいデータを処理またはロードする。 頻繁に変更されるファイルの最新バージョンをロードする。 モデルやその他の依存関係をロードするためにストレージ容量を必要とするデータサイエンスパッケージを使用する。 呼び出し間で関数の状態を保存する(一意のファイル名またはファイルシステムロックを使用)。 大量の参照データへのアクセスを必要とするアプリケーションの構築。 レガシーアプリケーションをサーバーレスアーキテクチャに移行する。 ファイルシステムアクセス用に設計されたデータ集約型ワークロードとの相互作用。 ファイルを部分的に更新する(同時アクセス用のファイルシステムロックを使用)。 アトミック操作でファイルシステム内のディレクトリとそのすべてのコンテンツを移動する。 EFSの作成 EFSをマウントするには、Lambda関数がEFSマウントターゲットに到達できるAmazon Virtual Private Cloud(VPC)に接続されている必要があります。ここでは、簡単にするために、各AWSリージョンで自動的に作成されるデフォルトのVPC を使用しています。 Lambda関数をVPCに接続する構成にすると、ネットワーク環境の変化に伴う変更が必要になることがある点に注意してください。 Lambda関数がAmazon Simple Storage Service(S3)またはAmazon DynamoDBを使用している場合は、それらのサービスのゲートウェイVPCエンドポイントを作成する必要があります。 Lambda関数がパブリックインターネットにアクセスする必要がある場合、たとえば外部APIを呼び出す場合は、NATゲートウェイを構成する必要があります。通常、デフォルトVPCの構成は変更しません。特定の要件がある場合は、AWS Cloud Development Kitを使用してプライベートおよびパブリックサブネットで新しいVPCを作成するか、これらのAWS CloudFormationのサンプルテンプレートのいずれかを使用します。このようにすることで、ネットワークをコードとして管理できます。 EFSコンソールで、[Create file system]を選択し、default のVPCとそのサブネットが選択されていることを確認します。すべてのサブネットで、同じセキュリティグループを使用してVPC内の他のリソースへのネットワークアクセスを提供するデフォルトのセキュリティグループを使用します。 次のステップでは、ファイルシステムにNameタグを付け、他のすべてのオプションをデフォルト値のままにします。 次に、[Add access […]

Read More

Amazon SageMakerですぐに利用可能: Deep Graph Library

本日、グラフニューラルネットワークを簡単に実装できるオープンソースのライブラリ Deep Graph Library が Amazon SageMaker で使用できる機能が発表されました。 近年では、手書き文字・画像・動画などの複雑なデータから、精巧なパターンを抽出できる優れた能力によって、深層学習が世の中を席巻しています。しかしながら、このようなカテゴリーに分類されないデータは多く存在しており、こうしたデータはグラフを使うことでより適切に表現可能な場合があります。直感的にも、畳み込みニューラルネットワークや回帰型ニューラルネットワークのような従来のニューラルネットワークは、このようなデータに対して適切ではないことがわかりますし、新たなアプローチが必要と言えます。 グラフニューラルネットワークとは グラフニューラルネットワーク(GNN)は最近開発された機械学習に関連した技術の中で最もわくわくするものの一つで、これらの参考文献を読むことで、まずは概要を理解できます。 GNNは次のようなデータセットに対する予測モデルを作成するために使用されます。 ソーシャルネットワーク: 人同士の関係性を示すグラフ 推薦システム: カスタマーと商品の関係性を示すグラフ 化学構造解析: 化合物が原子やそれらの結合としてモデル化されているグラフ サイバーセキュリティ: ソースとデスティネーション IP アドレスの関係性を示すグラフ 多くの場合、これらのデータセットは非常に大きく、その一部にしかレベル付けがなされていません。例えば、詐欺行為の検出を目的として、特定の人物が詐欺を働く確率を予測するために、詐欺を過去に働いたことがある既知の人物との関係性を解析するシナリオを考えます。これは、グラフの一部のみが詐欺師または善良な人物としてラベルづけされている半教師あり学習のタスクになります。そして、人手でラベル付けした大規模なデータセットを用意して、データを「linearize」し、従来の機械学習アルゴリズムを適用するよりも良いソリューションであると言えます。 このような問題へ取り組むにあたって、それぞれの業界知識 (小売、金融、化学など) 、コンピュータサイエンスの知識 (Python, 深層学習, オープンソースのツール) 、IT インフラの知識 (モデルのトレーニング、デプロイ、スケールリングの方法) が必要になります。全てのスキルを習得できる方はごく少数でしかないため、Deep Graph LibraryやAmazon SageMakerのようなツールが必要とされています。 Deep Graph Libraryの紹介 Github上で2018年 12月にリリースされたDeep Graph Library (DGL) とは、研究者や科学者が自分たちのデータセットを対象に、GNNのすばやい開発・学習・評価を補助してくれるPythonのオープンソースライブラリです。 DGLは PyTorch や Apache MXNet のようなポピュラーなディープラーニングフレームワークの上で動作するようになっています。これらのフレームワークに関する知識がある場合は、初心者でも安心な実装例を通して簡単に使い始めることができます。GTC 2019 で開催されたワークショップの資料も非常に参考になります。実装例を試したあと、DGL で実装された最先端のモデルをここから試すことも可能です。例えば、Graph Convolution Network (GCN) と CORA […]

Read More