Amazon Web Services ブログ

Danilo Poccia

Author: Danilo Poccia

Danilo works with startups and companies of any size to support their innovation. In his role as Chief Evangelist (EMEA) at Amazon Web Services, he leverages his experience to help people bring their ideas to life, focusing on serverless architectures and event-driven programming, and on the technical and business impact of machine learning and edge computing. He is the author of AWS Lambda in Action from Manning.

新機能 – 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

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

Amazon Forecast が一般公開されました

履歴データを基に正確な時系列予測を得るのは、たやすい作業とは言えません。当社は昨年の re:Invent において Amazon Forecast を発表しました。これは、機械学習についてまったく経験がない人でも高い精度の予測をすることができる、完全マネージド型のサービスです。 その Amazon Forecast が一般公開されたことを、本日お伝えできるのは非常に喜ばしいことです。 Amazon Forecast では、サーバーのプロビジョニングは必要ありません。 これに必要なのは、履歴データ、そして予測結果に影響がありそうなメタデータを追加で揃えることだけです。たとえば、入手するか製造しようとしている特定の製品に関する需要は、天候、季節、そしてその製品が使用される土地などにより、おそらく変わってくるでしょう。 Amazon Forecast は、Amazon で使われているものと同じテクノロジーをベースにしており、スケーラブルで高い精度を持つ予測技術を使いやすく構築および運用するための、長年の経験を詰め込んだものとなっています。これは複数のデータセットを基に深層学習 を行い、多様なアルゴリズムを自動的に切り替えて使用するので、製品需要、クラウドのコンピューティング使用量、財務計画、サプライチェーン管理システムでのリソース管理など多くのユースケースに対応できます。 Amazon Forecast を使ってみる 今回の記事では、いくつかのサンプルデータを利用します。興味深いユースケースが良いので、今回はUCI の機械学習レポジトリが提供する、個別家庭の電力消費データセットを使うことにします。作業を簡単にするため、時間ごとのデータが CSV 形式のファイルに集められたバージョンを使っていきます。次に示すのはこのデータの最初の数行で、ここにはタイムスタンプ、電力消費量、クライアント ID が記述されています。 2014-01-01 01:00:00,38.34991708126038,client_12 2014-01-01 02:00:00,33.5820895522388,client_12 2014-01-01 03:00:00,34.41127694859037,client_12 2014-01-01 04:00:00,39.800995024875625,client_12 2014-01-01 05:00:00,41.044776119402975,client_12 それでは、Amazon Forecast コンソールを使いながら、予測子の構築と予測値の取得がいかに簡単かを確かめてみましょう。より進んだユーザーのためのオプションは、Jupyter ノートブックと AWS SDK for Python から利用できます。この GitHub レポジトリにサンプルのノートブックがいくつかあります。 Amazon Forecast コンソールで先ず最初に行うステップは、データセットグループの作成です。データセットグループは、お互いに関連のあるデータのためのコンテナーとして機能します。 データセットグループに合わせて、[Forecasting domain] から一つを選択します。各ドメインは、小売り、在庫計画、ウェブのトラフィックなど、それぞれ特定のユースケースに対応しています。また、そのトレーニングに使われたデータ形式を基にしたデータセットタイプを使用します。今回は、帰属するカテゴリーがないすべてのユースケースをカバーしている、[Custom] ドメインを使用しましょう。 次に行うのは、データセットの作成です。今アップロードしようとしているデータは時間ごとに集められたものですので、[Frequency […]

Read More

Amplify フレームワークの更新 – ウェブアプリとモバイルアプリへの機械学習機能の追加がより迅速に

AWS はあらゆる開発者が機械学習を手にすることを目指しています。たとえば、コンピュータビジョンや言語などの分野向けに、事前トレーニング済の AI サービスを提供しており、これで機械学習の専門知識がなくても AI の利用が可能となります。本日より Prediction という新しいカテゴリを追加し、この目標に向かって Amplify フレームワークはさらに前進しました。この結果、ほんの数行のコードで、ウェブおよびモバイルアプリケーション向けの AI/ML ユースケースの追加や設定が可能となりました。 AWS Amplify とは、AWS でモバイルアプリケーションとウェブアプリケーションを簡単に構築するための開発フレームワークと開発者用サービスです。オープンソースの Amplify フレームワークは、ライブラリ、ユーザーインターフェイス (UI) コンポーネント、コマンドラインインターフェイス (CLI) の個性豊かなセットを提供しています。これで、クラウドバックエンドを構築し、それをウェブアプリケーションやモバイルアプリケーションと統合できるようになります。 Amplify ではストレージ、認証と承認、API (GraphQL や REST)、分析、プッシュ通知、チャットボット、AR/VR などのカテゴリにある AWS のサービスの中核となるセットを活用しています。 Amplify フレームワーク CLI を使用すれば、Amplify init で対話的にプロジェクトを初期化できます。その後、ストレージ (Amplify add storage) やユーザー認証と承認 (Amplify add auth) のオプションを選択できます。 こうして、amplify add predictions を使ってアプリを次のように設定できるようになります。 イメージ内のテキスト、エンティティ、ラベルを識別するには Amazon Rekognition を、フォーム内のフィールドのコンテンツおよびテーブルに格納した情報を取得するには Amazon Textract を使用します。 テキストを別の言語に変換するには […]

Read More

新機能 – Amplify CLI を使用したローカルモックとテスト

オープンソースの Amplify フレームワークは、ライブラリ、ユーザーインターフェイス (UI) コンポーネント、およびコマンドラインインターフェイス (CLI) のセットを提供します。AWS CloudFormation を使用してバックエンドリソースをプロビジョニングすることにより、洗練されたクラウド機能をウェブまたはモバイルアプリに簡単に追加できます。 お客様とお話しするときに、新しい機能を追加したりバグを解決したりするときは、できるだけ早く反復して、操作からすばやくフィードバックを得ることが重要だという話をよく耳にします。開発体験はどのように改善できますか? さて、先週、Amplify チームは新しい Predictions カテゴリを作り、機械学習機能をウェブまたはモバイルアプリにすばやく追加できるようにしました。今日、彼らは再び改善を試みます。Amplify CLI を使用して、提供している中で最も一般的なクラウドサービスの一部をモックし、アプリケーションをローカルで 100% テストできるようになりました。 ここでモックするということは、実際のバックエンドコンポーネントを使用する代わりに、クラウドサービスの場合は API を使用する代わりに、その API のローカルで単純化されたエミュレーションを代わりに使用できることを意味します。このエミュレーションは、開発中のテストに必要な基本機能を提供しますが、本番サービスから得られる完全な動作は提供しません。 この新しいモック機能を使用すると、すべてのステップで使用しているクラウドリソースをプロビジョニングまたは更新する必要なく、変更をすばやくテストできます。この方法で、クラウドバックエンドに影響を与えることなく、迅速に実行できる単体テストと統合テストを設定できます。アプリのアーキテクチャに応じて、バックエンドリソースをプロビジョニングせずに CI/CD パイプラインで自動テストを設定できます。 これは、Apache Velocity Template Language (VTL) で記述されたAWS AppSync リゾルバマッピングテンプレートを編集するときに非常に便利です。リクエストを入力として受け取り、リゾルバの指示を含む JSON ドキュメントを出力します。これで、編集内容に関するフィードバックをすぐに受け取ることができ、更新するたびにデプロイを待つことなく、リゾルバが期待どおりに機能するかどうかをテストできます。 最初のリリースでは、Amplify CLI をローカルでモックできます。 リゾルバマッピングテンプレートおよび Amazon DynamoDB がサポートするストレージを含む AppSync GraphQL API。 AWS Lambda 関数は、直接または GraphQL API のリゾルバとして呼び出されます。 アプリケーションのストレージとして使用する Amazon Simple […]

Read More

AWS Lake Formation – 一般公開へ

企業がデジタル形式のデータを持つようになるとすぐに、データウェアハウスを構築し、顧客関係管理 (CRM) やエンタープライズリソースプランニング (ERP) システムなどの運用システムからデータを収集し、この情報を使用してビジネス上の意思決定をサポートできるようになりました。 ストレージコストの削減と、Amazon S3 などのサービスによって大量のデータ管理の複雑さを大幅に削減することが可能になり、企業は、ログ、画像、ビデオやスキャンされたドキュメントといった構造化されていない生データなど、より多くの情報を保持できるようになりました。 これは、すべてのデータを 1 つの集中リポジトリに任意の規模で保存するという、データレイクの考え方です。このアプローチの採用は、Netflix、Zillow、NASDAQ、Yelp、iRobot、FINRA、Lyft などのお客様に見られます。単純な集計から複雑な機械学習アルゴリズムまで、このより大きなデータセットで分析を実行することで、データのパターンをより適切に発見し、ビジネスをよりよく理解できます。 昨年の re:Invent で AWS Lake Formation のプレビューを紹介しました。これは、データの取り込み、クリーニング、カタログ化、変換、セキュリティ保護を容易にし、分析や機械学習で利用できるようにするサービスです。 今日、Lake Information が一般公開されたことをお伝えできることをうれしく思います。 Lake Formation には、データベースやログなどの複数のソースからデータレイクにデータを移動するジョブを設定するなど、データレイクを管理するための中央コンソールがあります。このように大量の多様なデータがあると、適切なアクセス許可を設定することも非常に重要になってきます。 Lake Formation で定義された詳細なデータアクセスポリシーの単一セットを使用して、Glue Data Catalog のメタデータおよび S3 に保存されたデータへのアクセスを保護できます。これらのポリシーを使用すると、テーブルおよびカラムナレベルのデータアクセスを定義できます。 Lake Formation で最も気に入っている点の 1 つは、すでに S3 にあるデータで動作するところです! Lake Formation に既存のデータを簡単に登録でき、データを S3 にロードする既存のプロセスを変更する必要はありません。データはアカウントに残っているため、完全に制御できます。 Glue ML Transforms を使用して、データを簡単に重複排除することもできます。重複排除は、必要なストレージの量を減らすために重要ですが、オーバーヘッドも同じデータを 2 回見るという混乱もないため、データの分析をより効率的に行うためにも重要です。重複レコードが一意のキーで識別できる場合、この問題はささいですが、「あいまい一致」を行う必要がある場合は非常にやっかいになります。 レコードの連結にも同様のアプローチを使用できます。たとえば、一意のキーを共有しない 2 つのデータベースの「ファジー結合」を行うなど、異なるテーブルで類似のアイテムを探している場合です。 このように、ゼロからデータレイクを実装する方がはるかに高速で、データレイクを管理する方がはるかに簡単で、これらのテクノロジーをより多くのお客様が利用できます。 データレイクの作成 Lake Formation […]

Read More

AWS クラウド開発キット (CDK) – TypeScript と Python 用がご利用可能に

Infrastructure as Code を管理することで享受できるメリットは数多くあります。そのため、DevOps のプラクティスをうまく適用するきっかけとなることがよくあります。Infrastructure as Code によって、手動での実行手順に頼る代わりに、管理者と開発者の両方が構成ファイルを使用し、アプリケーションに必要なコンピューティング、ストレージ、ネットワーク、アプリケーションサービスのプロビジョニングを自動化できるようになります。 たとえば、Infrastructure as Code を定義すると、次のことが可能です。 インフラストラクチャとアプリケーションコードを同じリポジトリに保管する さまざまな環境、AWS アカウント、AWS リージョンにわたって実行されるインフラストラクチャの変更を再現かつ予測できるようにする 継続的なテストができるように、ステージング環境で本番環境を再現する ストレステストの実行に必要な時間だけ使用するパフォーマンステスト環境で、本番環境を再現する デプロイにインフラストラクチャの更新が含まれるように、コードの変更と同じツールを使用してインフラストラクチャの変更をリリースする コードレビューや小さな変更を頻繁にデプロイするなどのインフラストラクチャ管理に、ソフトウェア開発のベストプラクティスを適用する インフラストラクチャの管理に使用する設定ファイルは、従来的には YAML または JSON テキストファイルとして実装されていますが、この方法だと最新のプログラミング言語が持つ利点のほとんどを見逃してしまっています。特に YAML では、別のシステムへの転送中に切り捨てられたファイルを検出したり、あるテンプレートから別のテンプレートにコピーして貼り付けた際に行が欠落したことを検出するのは極めて困難です。 お好みのプログラミング言語が持つ表現力を大いに活用し、クラウドインフラストラクチャを定義できればいいと思いませんか? こうした考えから、昨年の開発者向けプレビューで、AWS クラウド開発キット (CDK) を発表しました。これは、使い慣れたプログラミング言語を使ってクラウドインフラストラクチャをモデル化およびプロビジョニングするための拡張可能なオープンソースソフトウェア開発フレームワークです。 そして本日、TypeScript および Python 用の AWS CDK の一般利用を開始することができました。 AWS CDK を使用すると、固有の要件を組み込んだ独自のカスタムコンポーネントを設計、構成、共有できます。たとえば、独自の標準 VPC を設定するコンポーネントや、それに関連付いたルーティングとセキュリティ設定を作成できます。あるいは、AWS CodeBuild や CodePipeline のようなツールを使用したマイクロサービス用の標準的な CI/CD パイプラインも作成可能です。 個人的に気に入っている点は、AWS CDK では同じプログラミング言語を使用し、さらに最新の IDE に組み込まれているオートコンプリートやパラメータサジェスチョンといったサポートを利用することで、インフラストラクチャを含むアプリケーションを IDE […]

Read More

Amazon Aurora PostgreSQL Serverless が一般利用可能に

データベースは通常、ソフトウェアアーキテクチャの最も重要な部分であり、データベースの管理、特にリレーショナルデータベースの管理は容易ではありませんでした。このため、Amazon Aurora の自動スケーリングバージョンであり、アプリケーションのワークロードに基づいて自動的に起動、シャットダウン、スケールアップまたはスケールダウンできる Amazon Aurora Serverless を開発しました。 Aurora Serverless の MySQL 互換エディションは少し前から入手可能です。本日、Aurora Serverless の PostgreSQL 互換エディションが一般利用可能になったことをお知らせいたします。 詳細を説明する前に、Amazon Aurora 開発チームが、2019 年の米国計算機学会 (ACM) のデータ管理分科会 (SIGMOD) システム賞を受賞したことを祝福します。 Aurora Serverless を使用してデータベースを作成するときは、最小容量と最大容量を設定します。クライアントアプリケーションは、自動的にスケーリングされるリソースプールにワークロードをルーティングするプロキシフリートに透過的に接続します。リソースが「ウォーム」であり、リクエストに応えるために追加する準備ができているため、スケーリングは非常に高速です。   Aurora によるストレージの管理方法について、Aurora Serverless では変更はありません。ストレージ層は、データベースが使用するコンピューティングリソースから独立しています。事前にストレージをプロビジョニングする必要はありません。最小ストレージは 10GB です。データベースの使用量に基づいて、Amazon Aurora ストレージは自動的に最大 64TB まで 10GB 単位で増加し、データベースのパフォーマンスには影響しません。 Aurora Serverless PostgreSQL データベースの作成 それでは、Aurora Serverless PostgreSQL データベースを起動し、自動スケーラビリティが機能していることを確認しましょう。 Amazon RDS コンソールで、Amazon Aurora をエンジンとして使用してデータベースを作成することを選択します。現在、Aurora Serverless は […]

Read More

Amazon Managed Streaming for Apache Kafka (MSK) – 一般利用可能

お客様がストリーミングデータを使用している様子を見て、いつも驚いてしまいます。たとえば、ビジネスと専門分野で世界で最も信頼されるニュース会社の 1 つである Thomson Reuter は、分析データを取り込み、分析し、可視化して、製品チームが継続的にユーザーエクスペリエンスを向上させるのを支援しています。Hay Day、Clash of Clans、Boom Beach などのゲームを提供するソーシャルゲームの会社である Supercell は、1 日あたり 450 億のイベントを処理するリアルタイムのゲーム内データ配信を行っています。 re:Invent 2013 で当社は Amazon Kinesis をローンチして以来、顧客が AWS 上でストリーミングデータを操作する方法を継続的に拡大してきました。いくつかの利用可能なツールには、次のものがあります。 Kinesis Data Streams。固有のアプリケーションでデータストリームを取り込み、保存し、処理します。 Kinesis Data Firehose。, データを変換し、 Amazon S3、Amazon Elasticsearch Service、および Amazon Redshift などの保存先に収集します。 Kinesis Data Analytics。SQL または Java (Apache Flink アプリケーション経由) を使用して継続的にデータを分析します。たとえば、異常を検出したり、時系列集約のために使用するためなどです。 Kinesis Video Streams。メディアストリームの処理を簡素化します。 re:Invent 2018 では、私達はオープンプレビューで Amazon Managed […]

Read More