Amazon Web Services ブログ

Apache Flink と Amazon Kinesis Data Analytics for Java アプリケーションを使用して、ストリーミングアプリケーションを構築、実行する

ストリーム処理によってリアルタイムデータの収集、処理、分析が容易となるため、洞察が継続して生まれ、新たに生じる状況にも素早く対応できるようになります。この機能は得られた洞察の価値が、時間の経過とともに減少する場合に役立ちます。つまり検出した状況に迅速に対応できればできるほど、この反応がより価値のあるものとなります。たとえば不正なクレジットカードのトランザクションが発生し、それを分析してブロックするようなストリーミングアプリケーションを考えてみましょう。そのアプリケーションを従来のバッチ指向のもの、つまりその日の営業を終了する際に不正な取引を識別して、翌朝にはレポートを生成するアプローチと比較してみてください。 洞察の価値が時間の経過とともに下がっていくのは、よくあることです。そういう訳でストリーム処理をすると、分析アプリケーションの価値が大幅に向上するのです。ただしデータを継続的に受信し処理するストリーミングアプリケーションを構築して運用するのは、従来のバッチ指向の分析アプリケーションを運用するよりもはるかに困難です。 この投稿ではこうした課題に対処するため、Apache Flink と Amazon Kinesis Data Analytics for Java アプリケーションを使用する方法について解説します。自己管理環境と比較して運用上のオーバーヘッドを大幅に削減できるマネージドサービスに基づいて、信頼性が高く、スケーラブルで、可用性の高いストリーミングアーキテクチャを構築する方法を探ります。特に Kinesis Data Analytics for Java アプリケーションを使用して、Flink アプリケーションを準備および実行する方法に焦点を当てています。このため、ソースコードと AWS CloudFormation テンプレートを含む例に言及したシナリオを使用します。この例に沿ってご自身の AWS アカウントを使用するか、特定の要件に従ってコードを修正してください。

Read More

Amazon RDS を使った災害復旧戦略の実装

Amazon RDS (Relational Database Service) は、リレーショナルデータベースのセットアップ、運用、スケーリングを容易にできるマネージドサービスです。AWS のハイパフォーマンスなコンピューティングとストレージを基本としている Amazon RDS は、MySQL、SQL Server、PostgreSQL、MariaDB、および Oracle のデータベースエンジンをサポートしています。このサービスは、プロビジョニング、パッチング、モニタリング、そしてディザスターリカバリー (DR) のための、ソリューションを完備しています。このブログ記事では、自動バックアップ、手動バックアップ、そしてリードレプリカ という、Amazon RDS が DR 対応のために提供する 3 つの機能をご紹介していきましょう。 DR プランの必要性とは? 実稼動状態にあるシステムにとって、想定外のイベント発生からも復旧を可能にするための、注意を怠らないことは重要です。Amazon RDS は、Multi-AZ の非常に豊富な設定項目を提供しています。とはいえ、自然災害、悪意のある利用者、そしてデータベースの論理的な破損などの、全ての可能性に対処できるわけではありません。ビジネス機会を失わないためには、DR プランのデザインとテストをしっかり行うべきでしょう。 RTO と RPO について知る DR プランを作り上げる時、リカバリータイムオブジェクティブ (RTO) と、リカバリーポイントオブジェクティブ (RPO) の 2 つは、考慮すべき主要なメトリクスとなります。RTO は、災害が発生した後、業務再開にどの位の時間を要するかを表します。RPO も同じ様に時間で表現されますが、こちらは、災害が発生した際にどの規模のデータが失われるかを表します。例えば、RPO が 1 時間であるということは、災害の発生により 1 時間分に相当するデータが失われる可能性があるという意味です。 Amazon RDS の各機能は、それぞれ違うコストポイントにおいて、違うRTO と RPO をサポートします。 機能 […]

Read More

Amazon Cognito を使ってユーザー名を安全に検証

こちらは AWS コミュニティヒーローの Larry Ogrodnek によるゲストポストです。Larry は、クラウドアーキテクチャ、DevOps、サーバーレス、そして AWS における一般的なソフトウェア開発を専門とする独立系コンサルタントです。彼は、コーヒーを飲みながらいつでも AWS について話したいと考え、開発や他の開発者のサポートを楽しんで行っています。 あなたのシステムではどのような方法でユーザーを識別していますか? ユーザー名? E メール? それらが一意であることは重要ですか? Amazon Cognito ではユーザー名も E メールも大文字と小文字を区別して取り扱っていると知ったら、あなたは驚くかもしれません。私も以前はそうでした。つまり “JohnSmith” と “johnsmith” は異なり、”jOhNSmiTh” もさらに別の人になります。 E メールアドレスも同様です。こちらはさらに SMTP RFC に指定されているので、”smith” および “Smith” というユーザーは、別のメールボックスを持つ可能性があります。すごいでしょう。 私は最近、Amazon Cognito にカスタムのサインアップ検証を追加しました。今回の投稿はこの実装についてお話します。 一意性にまつわる問題 一意性の判定は、大文字と小文字を区別すること以上に難しい問題です。私はこれまで、国際化ドメイン名のホモグラフ攻撃を取り上げたメールを多くの方々から受け取ってきました。あるサイトは、”example.com” というドメイン名で登録されていましたが、使用されている “a” はキリル文字で、真正のサイトになりすまして情報を収集することをたくらんでいたのです。こうした攻撃は、ユーザー名の登録でも行われる可能性があります。もし私がチェックをしなければ、誰かが私のサイトで別のユーザーになりすますことが可能かもしれません。 予約していますか? アプリケーションには、ユーザーが作成したメッセージやコンテンツが含まれていますか? 一意性に対処することに加えて、特定の名前を予約しておくとよいかもしれません。例えば、user.myapp.com または myapp.com/user といった場所に、ユーザーが編集できる情報を保持していた場合、誰かが “signup”、”faq”、”support” の登録を行ったらどうなるでしょう。 あるいはそれが “billing” だったら? 悪意のあるユーザーが私のサイトになりすまし、攻撃の一手段として私のサイトを利用することは起こり得るのです。ユーザーが、どんな種類のものであれ受信箱やメッセージングを利用していれば、似たような攻撃も可能です。ユーザー名を予約しておくことに加えて、混乱を避けるために、ユーザーコンテンツをそれ自身のドメインから分離させておくことも必要でしょう。GitHub が、こうした攻撃に対処するために、 […]

Read More

Amazon Comprehend と Amazon SageMaker ノートブックを使ったコンテンツの分析

今日の「つながった」世界では、企業にとってソーシャルメディアチャネルを監視し、それぞれのブランドと顧客関係を保護することが重要です。企業はソーシャルメディア、E メール、およびその他のコミュニケーションを通じてその顧客、製品、およびサービスについて理解しようとしています。機械学習 (ML) モデルは、これらのニーズに対応するために役立ちますが、独自のモデルを構築して訓練するプロセスは、複雑で時間がかかるものになり得ます。Amazon Machine Learning プラットフォームは、Jupyter ノートブックを使用して Amazon SageMaker 内でアクセスできる事前に訓練されたモデルを提供します。Amazon SageMaker は、モジュラー設計の完全マネージド型エンドツーエンド ML プラットフォームですが、この例ではホストされているノートブックインスタンスのみを使用します。Amazon Comprehend は、テキスト内のインサイトと関係性を見つけるために機械学習を使用する自然言語処理 (NLP) サービスです。 このブログ記事では、ノートブック内で Twitter センチメントを分析するために Amazon Comprehend を使用する方法を説明します。 Amazon Comprehend の仕組み Amazon Comprehend は、ソーシャルメディアの記事、E メール、ウェブページ、ドキュメント、およびトランスクリプションなどの非構造型データを入力として使用します。次に、NLP アルゴリズムの力を使ってその入力を分析し、キーフレーズ、エンティティ、およびセンチメントを自動的に抽出します。また、入力データの言語を検知したり、トピックモデリングアルゴリズムを使用してデータの関連グループを見つけたりすることもできます。以下の図は、Amazon Comprehend のワークフローを説明したものです。 Amazon Comprehend Custom を使用すると、あらかじめ設定された汎用エンティティタイプとしてサポートされていない新しいエンティティタイプを識別する、またはビジネス固有の用語とフレーズについて顧客フィードバックを分析することができます。例えば、顧客がいつチャーン (解約) するか、またはいつ固有の製品 ID の 1 つに言及するかを学ぶことが可能です。 ステップ 1: Amazon SageMaker ノートブックをセットアップする AWS マネジメントコンソールで [すべてのサービス] を選択してから、機械学習にある [Amazon […]

Read More

[AWS Black Belt Online Seminar] Amazon VPC Advanced 資料及び QA 公開

先日 (2019/4/17) 開催しました AWS Black Belt Online Seminar「Amazon VPC Advanced」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20190417 AWS Black Belt Online Seminar Amazon VPC Advanced AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. Transit Gatewayが使えるようになった今、Virtual Gatewayを用いたVPN・DXを敢えて採用するようなケース・利点はあるものでしょうか A. VPC間で通信しない、従来通りのユースケースでは引き続き有効です。Transit Gatewayは機能が多い代わりに通常のVPN/DXとVGWを使うものよりコストがかかりますので、比較検討することが重要になります。https://aws.amazon.com/jp/transit-gateway/pricing/ Q. VPC Sharing にはAWS Organizationsが必要とのことなのですが、一括請求機能の利用だけで要件を満たすのでしょうか? A. いいえ。一括請求機能では要件を満たしません。 https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-sharing.html#vpc-share-prerequisites より — 共有 VPC の前提条件 組織のマスターアカウントで、リソース共有を有効にしておく必要があります。リソース共有の有効化の詳細については、AWS RAM User Guide の「AWS Organizations での共有の有効化」を参照してください。 — Q. P.39 TransitGatewayのVPC-CIDRとProduction, TestingといったVPC-CIDRは、従来のVPC運用と同じように分けて考える認識であっていますか?TransitGatewayのVPC-CIDRを広めに取って、その中で個々のVPCを定義しない認識であっていますか? […]

Read More

Amazon SageMaker Ground Truth を使って大量ラベル付けの品質保証を簡単に行う

このブログの記事では、大量のデータにラベル付けする機械学習システムを構築したばかりで、ラベルの一部に対して手動の品質保証(QA)を行おうとしている皆さんにご覧いただきたいと思います。限られた人員を大量の作業で困らせることなく、これを実現するためにはどうすれば良いでしょうか。本記事では、Amazon SageMaker Ground Truth のカスタムラベリングジョブを使用した実現方法を示します。 一度に1項目ずつワーカーに検証を依頼すると多くの作業が発生してしまいます。そこで、同じラベルが付与された項目をまとめて提示するカスタムラベル付け方法を実現し、各ワーカーには正しくないものをマークするように依頼します。 こうすると、ワーカーは、すべて最初からラベル付けするよりもはるかに多くのデータ量を迅速に評価できます。 品質保証が必要なユースケースの作業には、次のようなものがあります。 判断が難しいユースケースにおいて、実際に使用する前に対象分野の専門家によるレビューと承認を必要とする ラベルを確認して、ラベルを作成したモデルの品質をテストする ラベルに誤りがある項目を特定してカウントし、修正し、学習データセットに戻す モデルによって割り当てられたラベルの正確性と確信度の分析する 単一のしきい値をすべての分類クラスに適用できるか、あるいはクラスごとに異なるしきい値を使用するかどうかを確認する 初期データのラベル付けにより単純なモデルを使用し、次に品質保証のプロセスにより結果を検証し、再学習させることでモデルを改善する このブログ記事では、これらのユースケースに対応する例について説明します。 背景とソリューションの概要 Amazon SageMaker Ground Truth は、パブリックおよびプライベートのラベル付けワーカーに簡単にアクセスする機能や、一般的なラベリングタスクのための組み込みのワークフローとインターフェイスを提供します。 このブログ記事では、Ground Truth のカスタムラベリングワークフローを活用することで、システムやビジネスプロセス全体で時間のかかるもう一つの部分である、機械学習または人により付与されたラベルの品質保証を行う方法を説明します。 このサンプルケースでは、入力は個々のワーカーによって検証されるラベル付き画像のリストです。 ワーカーは一つの画面上に同じラベルのついた画像をまとめて表示し、一度にラベルのセットを検証できます。 こうすることで、セット全体を素早く確認し、正しくラベル付けされていないものをマークし、「適合しない」ものを選び出すことができます。 検証された結果は、Amazon DynamoDB テーブルに保存されます。 まとめて確認するバッチの項目数は、作業の複雑さと、容易に比較・確認するため一度に表示できる数に応じて、タスクに対し適切に選択する必要があります。 この例では、バッチサイズは 25 (テンプレートで設定可能)を選択し、確認作業の負荷とレビュー対象の画像の量のバランスをとっています。 Amazon SageMaker Ground Truthカスタムラベリングジョブの構造 Amazon SageMaker Ground Truthカスタムラベリングワークフローは、以下の要素から構成されています。 ラベリングタスクを実行するワーカー。パブリックワークフォース(Amazon Mechanical Turk を使用する場合など)またはプライベートワークフォースから選択できます。 JSON マニフェストファイル。 マニフェストは、ジョブの入力場所を Ground Truth に伝えます。 各行項目は単一のオブジェクトであり、単一のタスクに対応します。 この例では、各オブジェクトは、品質保証の作業において、一度にワーカーに提示される同じラベルを持った一群の画像を指すカスタムラベリング入力です。 ラベリング前の AWS […]

Read More

Serverless Tech/事例セミナー(2019年3月27日 実施) レポート Vol.2

2019年3月27日 実施のセミナーのレポート 3部編の Vol.2 です。他の回は以下のリンクよりアクセスください。 Vol.1 : 手段先行でも悪くはない!Ruby on LambdaではじめるServerless Vol.2 : Ruby on Lambdaで変わる大規模サービスの裏側 [本記事] Vol.3 : Webアプリエンジニアに贈るアプリケーション開発におけるサーバーレス流の考え方     Ruby on Lambdaで変わる大規模サービスの裏側 [資料はこちら] Sansan株式会社 Eight事業部 Engineering Group/エンジニアリングマネージャー 藤井洋太郎氏

Read More

【開催報告】EdTech LT Night & Meetup ~ 教育業界&学生向けサービス事例 ~

教育業界ゆえの悩みや苦労を共にするエンジニア交流を目的として”EdTech LT Night & Meetup”と題したイベントを開催しました。 教育業界、学生向けのサービスを展開するユーザ様からのLightning Talkの他、このイベントに合わせて来日したアジアパシフィックジャパン(以降 APJ)でEdStart(※1)プログラムのマネージャーを担当するHarris Samuelからのセッションも行いました。 (※1) 教育や学生向けサービスを展開するEdTech(Education × Technology)スタートアップ企業をAWSが支援するプログラム。詳細はこちら(https://aws.amazon.com/jp/blogs/news/edstart20190207/)をご参照ください。   1. 「グローバルの EdTech 業界動向と AWS EdStart に関して」 Harris, Samuel – Education Program Manager, Amazon Web Services Samuelからは、APJを中心に各国の教育業界/EdTechのトレンドやEdStartの詳細について紹介がありました。EdStartはグローバルでのプログラムのため、日本国内のみならず海外展開を目指すEdTech企業にとってメリットがあることを熱弁しておりました。   2. 「Classiサービスの運用を通してわかった、学校教育市場の現場で起きていること」 本間 知教 氏 – Classi 株式会社 プロダクト部 副部長 兼 AI室室長 学校向けに学習支援サービスを展開するClassi株式会社様からはプロダクト部の本間様がご登壇くださいました。教育現場ゆえの課題やエンジニアの苦労についてのみならず、ビジネスの特徴や考え方、校務支援システム/学習支援システムの違いや文部科学省のガイドラインの紹介など、公教育にサービスの導入を行っている彼ら故の深い話が印象的でした。   3. 「教育分野で感じる技術課題とテクノロジーによる教育の変化」 奥苑 佑治 氏 – ライフイズテック株式会社 技術統括マネージャー IT・プログラミングキャンプとオンラインサービスを展開するライフイズテック株式会社様からはオンラインサービスを統括する奥苑様がご登壇くださいました。オンライン教育プログラムで学習効率を高めるための自社での工夫に加え、ビジネス面での課題についてもお話しいただきました。また、AWSのみならず、今後新しい技術要素に対する見解、展望についても言及されておりました。 […]

Read More

今すぐ視聴しよう!AWS Innovate 見どころ紹介

2019年4月8日から開始している「AWS Innovate」をお楽しみ頂いていますでしょうか? AWS Innovate はグローバルでも人気のあるオンラインカンファレンスで,開催期間内であれば「いつでも」視聴することができ「何度でも」学び直すことができます.そしてなんと「無料で」参加することができます.今年の AWS Innovate は,2019年4月8日 から 2019年5月7日 までの「1ヶ月間」毎日開催をしていますし,全てのセッションは「30分」と短くまとまっていますので,スキマ時間を有効活用してご視聴頂くこともできます. 本記事では,AWS テクニカルトレーナーである吉田慶章が,私自身の観点から AWS Innovate の見どころを紹介したいと思います.まだ参加申込みをされていない方は,以下の公式サイトから申込みをして,視聴しましょう.いつ申し込むの?今でしょ! AWS Innovate AWS Innovate お申し込み(無料) AWS Innovate ページ AWS Innovate にアクセスして頂きますと,以下のようなリッチなページが表示されます.セッションを視聴するのはもちろんのこと,セッション資料のダウンロードも可能ですので,是非アクセスしてみてください. セッションカテゴリ 今年の AWS Innovate では,以下「全7種類」のセッションカテゴリから「全30種類」のセッションを提供しています.AWS 初学者の方も,AWS 経験者の方もお楽しみ頂けます.皆さんの「学びたいことは何か?」というモチベーションに合ったセッションから優先的に見て頂くのが良いでしょう. AWS イントロダクション AWSome Day AWS 認定 – 試験対策 「ソリューションアーキテクト – アソシエイト」 AWS 認定 – 試験準備をはじめよう AWS 最新事例とサービス紹介 AWS コアコンセプト クラウド活用のための組織と仕組み作り イノベーションカルチャー […]

Read More

Amazon Translate で分析を多言語コンテンツに拡張する Protagonist

 Protagonist の COO (最高執行責任者) である Bryan Pelley 氏のゲスト投稿です。Protagonist 流に言うと「公共の場でデータに基づいた議論を行えば、企業はもっと効率よくコミュニケーションを図ることができます。」 Protagonist はナラティブの理解において先駆け的企業です。弊社が定義するナラティブとは視聴者が抱く想念のことをいい、そこでは相互に関連し合うコンセプト、テーマ、イメージ、アイデアが 1 つのストーリーとしてまとめられたものです。ナラティブは意識的にも無意識的にも人間の意思決定に大きく関わるニーズ、欲求、欲望を深く反映するため無視できません。Protagonist では Amazon Translate を使用することで英語以外の言語でナラティブを分析できるようになり、世界を相手に顧客を獲得することが可能となりました。 Protagonist Narrative Analytics プラットフォームでは人が持つ専門知識に基づいた自然言語処理 (NLP) と機械学習 (ML) を使用して、従来のメディア、ソーシャルメディア、その他のオンラインメディア全体でお客様にとって重要なナラティブを明確にし、推定し、追跡を行います。次の図は当社の Narrative Analytics によるソリューションを示しています。 Protagonist はいくつかの例外を除き英語のみのコンテンツしか分析できず、そのせいで長期的成長が制限されていました。多くのお客様だけでなく見込み顧客も、国境を超えたナラティブに関するプロジェクトに大きな関心を示しているにもかかわらずです。 こうしたナラティブを作成するには母国語のコンテンツに取り組む必要があります。 言語に達者なスタッフのおかげで、以前は主にフランス語とスペイン語でのプロジェクトを少し行うことができました。このような場合、チームは翻訳なしでコンテンツの分析を実行することになり、使用できる NLP ツールの範囲が制限されました。またはコンテンツ全体のコーパスのサンプルセットを手動で翻訳し、その翻訳済みのセットでツール一式をすべて実行していました。これら両方のプロセスを組合わせることもありました。しかしながらこのようなスタッフの人手によるソリューションでは拡張性がなく、効率的ではありませんでした。1,000 本のメディア記事サンプルを手動で翻訳するには、約 2 週間かかります。これではお客様にタイムリーなナラティブ分析を提供するには遅すぎます。 こうした状況を Amazon Translate は変えてくれました。多言語コンテンツを英語に素早くそして効率的に翻訳し、当社のナラティブプラットフォームで分析できるようになったのです。過去に他の機械翻訳サービスをいくつか試してみましたが、パフォーマンス、コスト、場合によっては長期契約しなければならないという点でどれも満足行くものではありませんでした。一方 Amazon Translate は、スピード、翻訳の正確さ、費用対効果、そしてオンデマンドの柔軟性という最適な組み合わせで当社のニーズを満たしてくれたのです。これまで翻訳に 2 週間以上かかっていたものが、Amazon Translate を使用することで今では数分で完了できます。 2018 年にお客様の 1 社である Omidyar Network (ON) […]

Read More