Amazon Web Services ブログ

新しい Amazon S3 暗号化 & セキュリティ機能

S3 を発表した 2006 年に、私は「さらに、各ブロックは ACL (アクセスコントロールリスト) によって保護されているため、開発者はデータを非公開にしたり、共有したり、読み書きしたりすることができます。」と書きました。

最初のモデルから、プライベートバケットと ACL を使用してアクセスを許可することで、バケットポリシーサーバーアクセスロギングバージョニングAPI ロギングクロスリージョンレプリケーション、複数のクライアント側およびサーバー側の暗号化オプションのサポートが追加されました。これらはすべて、データを安全に保つために必要なツールを提供し、必要に応じてお客様やパートナーと共有できるようにすることを目的としています。私たちはまた、大規模なコンテンツの検索、分類、保護に役立つツールである Amazon Macie の開始によって、人工知能と機械学習の利点を取り込みました。

現在、S3 には 5 つの新しい暗号化とセキュリティ機能が追加されています。

デフォルト暗号化 – バケット内のすべてのオブジェクトを暗号化された形式で格納する必要性を指定できるようになりました。暗号化されていないオブジェクトを拒否するバケットポリシーを構築する必要はありません。

アクセス許可チェック – S3 コンソールには、一般にアクセス可能な各 S3 バケットの隣に目立つインジケータが表示されるようになりました。

クロスリージョンレプリケーション ACL の上書き – AWS アカウント間でオブジェクトをレプリケートするとき、オブジェクトが送信先アカウントへの完全なアクセス許可を与える新しい ACL を取得するように指定できるようになりました。

KMS によるクロスリージョンレプリケーションAWS Key Management Service (KMS) によって管理されるキーで、暗号化されたオブジェクトをレプリケートできるようになりました。

詳細なインベントリレポート – S3 インベントリレポートに、各オブジェクトの暗号化ステータスが含まれるようになりました。レポート自体も暗号化することができます。

では詳しく見てみましょう。

デフォルト暗号化
S3 オブジェクトには、S3 によって管理されるキーを使用する SSE-S3、AWS KMS によって管理されるキーを使用する SSE-KMS、ユーザーが管理するキーを使用する SSE-C の 3 つのサーバー側の暗号化オプションがあります。一部のお客様、特に安心して暗号化の使用を指示するコンプライアンス要件を満たす必要があるお客様は、バケットポリシーを使用して、新しく保存されたオブジェクトがすべて暗号化されるようにしています。これは要件を満たすのに役立ちますが、暗号化されていないオブジェクトの格納を拒否するだけでは、解決策として不完全です。

バケットの暗号化設定をインストールすることで、バケット内のすべてのオブジェクトを暗号化された形式で格納する必要性を指定できるようになりました。暗号化されていないオブジェクトが S3 に提示され、暗号化が必須であることを構成が示している場合、オブジェクトはバケットに指定された暗号化オプションを使用して暗号化されます (PUT 要求では別のオプションも指定できます)。

新しいバケットを作成するときに S3 コンソールを使用してこの機能を有効にする方法は次のとおりです。いつものようにバケットの名前を入力し、[Next] をクリックします。次に下にスクロールして [Default encryption] をクリックします。

使用するオプションを選択し、[Save] をクリックします (AWS-KMS を選択した場合は、KMS キーも指定します)。

この変更は、PUT Bucket Encryption 関数を呼び出して行うこともできます。SSE アルゴリズム (SSE-S3 または SSE-KMS) を指定する必要があり、オプションで KMS キーを参照できます。

この機能を実装するときは、次の制限事項に留意してください。

SigV4 – S3 REST API を介したバケットポリシーへのアクセスは、SigV4 で署名し、SSL 接続で行う必要があります。

バケットポリシーの更新 – 暗号化されていないオブジェクトを現在拒否している既存のバケットポリシーを調べて、慎重に変更する必要があります。

大容量の使用 – SSE-KMS を使用していて、毎秒何百または何千ものオブジェクトをアップロードしている場合は、暗号化および復号化操作の KMS 制限にぶつかる可能性があります。 サポートケースを提出して、制限を引き上げるよう依頼します。

クロスリージョンレプリケーション – 暗号化されていないオブジェクトは、送信先バケットの設定に従って暗号化されます。暗号化されたオブジェクトはそのままになります。

アクセス許可のチェック
バケットポリシー、バケット ACL、およびオブジェクト ACL の組み合わせにより、バケットやその中のオブジェクトへのアクセスをきわめて細かく制御できます。お客様のポリシーと ACL を組み合わせて目的の効果を生み出すことを目標に、私たちは最近お客様の S3 バケットを安全なものにするための一連のS3 バケットをセキュリティ保護するための管理ルールを作成しました。投稿で述べたように、これらのルールは、自動の公式推論を使用するためのいくつかの作業を利用しています。

バケットポリシーと ACL の変更がすぐに反映されるように、同じ基盤テクノロジーを使用しています。これは、パブリックアクセス用のバケットを開くとすぐにわかります。自信を持って変更を加えることができます。

S3 コンソールのメインページには、次のように表示されます (便宜上、Access カラムでソートしました)。

パブリックインジケータは、単一のバケットの内部を見るときにも表示されます。

どのアクセス許可要素 (ACL、バケットポリシー、またはその両方) がパブリックアクセスを有効にしているかを確認することもできます。

クロスリージョンレプリケーション ACL の上書き
Our customers often use S3’s Cross-Region Replication to copy their mission-critical objects and data to a destination bucket in a separate AWS account. オブジェクトのコピーに加えて、レプリケーションプロセスはオブジェクト ACL とオブジェクトに関連付けられたタグをコピーします。

この機能は、転送中の ACL の置き換えを可能にして、送信先バケットの所有者に完全にアクセスできるようにすることで、この機能をさらに便利なものにしています。この変更により、送信元データと送信先データの所有権が AWS アカウントに分割され、元のオブジェクトとそのレプリカの所有権の別々のスタックを維持することができます。

レプリケーションを設定するときにこの機能を有効にするには、アカウント ID とバケット名を指定して [Save] をクリックし、別のアカウントとリージョンで送信先バケットを選択します。

次に、[Change object ownership…] をクリックします。

We’ve also made it easier for you to set up the key policy for the destination bucket in the destination account. アカウントにログインしてバケットを見つけ、[Management] と [Replication] をクリックしてから、[More] メニューから [Receive objects…] を選択します。

送信元アカウント ID を入力し、バージョン管理を有効にし、ポリシーを調べて適用し、[Done] をクリックします。

KMS によるクロスリージョンレプリケーション
現在取り組んでいる興味深い課題として、リージョンにまたがって SSE-KMS を使用して暗号化されたオブジェクトをレプリケートすることがあります。KMS キーは特定のリージョンに固有のものなので、暗号化されたオブジェクトをレプリケートするだけでは機能しません。

クロスリージョンレプリケーションを設定するときに、送信先キーを選択できるようになりました。レプリケーションプロセス中、暗号化されたオブジェクトは SSL 接続を介して送信先にレプリケートされます。送信先では、レプリケーション構成で指定した KMS マスタキーを使用してデータキーが暗号化されます。オブジェクトは元の暗号化された形式のまま残り、キーを含むエンベロープのみが実際に変更されます。

レプリケーションルールを設定するときにこの機能を有効にする方法は次のとおりです。

前述したように、この機能を使い始める前に KMS の制限を増やす必要があります。

詳細なインベントリレポート
最後に、毎日または毎週の S3 インベントリレポートに各オブジェクトの暗号化ステータスに関する情報が含まれるように要求することができます。

ご覧のとおり、レポートに対して SSE-S3 または SSE-KMS の暗号化をリクエストすることもできます。

提供開始
これらの機能はすべて利用可能であり、すぐに使用を開始できます。この機能は無料ですが、KMS への通話S3 ストレージS3 リクエスト、およびリージョン間データ転送の通常料金が請求されます。

Jeff;

AWS サービスの新しい AWS PrivateLink: VPC 内の Kinesis、Service Catalog、EC2 Systems Manager、Amazon EC2 API、ELB API

今回のブログは Colm MacCárthaigh 氏、Amazon Virtual Private Cloud のシニアエンジニアより寄稿頂きました。


2015 年に VPC エンドポイントをリリースして以来、エンドポイントの作成は、インターネットゲートウェイや NAT ゲートウェイまたはファイアウォールプロキシの必要なく、Amazon Virtual Private Cloud (VPC) から S3 や DynamoDB へ安全にアクセスする方法として人気を集めています。VPC エンドポイントを使用することで、VPC と AWS サービス間のルーティングは AWS ネットワークにより処理され、サービスリソースへのアクセス管理に IAM ポリシーを使用することができます。

そして本日、すべてのトラフィックを AWS ネットワーク内に維持しながら、可用性が高くスケーラブルな方法でユーザーが AWS サービスにアクセスできるように設計した新世代の VPC エンドポイント、AWS PrivateLink を発表しました。KinesisService CatalogAmazon EC2EC2 Systems Manager (SSM)、Elastic Load Balancing (ELB) API を VPC 内で利用できるようになりました。また、Key Management Service (KMS) や Amazon Cloudwatch といったサービスのサポートも今後提供する予定です。

従来のエンドポイントは、VPC と AWS サービス間で仮想ケーブルを繋げるようなものでした。AWS サービスとの接続にインターネットまたは NAT ゲートウェイは必要ありませんが、エンドポイントは VPC の外で維持されます。PrivateLink では、Elastic Network Interfaces (ENI) や VPC のサブネットにある IP アドレスを使用して VPC 内に直接エンドポイントが作成されます。これにより、サービスは VPC 内にあり、プライベート IP アドレスを介して AWS サービスとの接続が有効になります。つまり、エンドポイントへのアクセスを管理するために VPC セキュリティグループを使用したり、AWS Direct Connect を介してプレミスから PrivateLink エンドポイントにアクセスすることが可能になります。

PrivateLink によるサービスを使用することで、ユーザーはインスタンスのフリート管理や IT サービスのカタログ作成と管理、そしてトラフィックがインターネットを通過する必要なくデータの保存や処理を行うことができます。

PrivateLink エンドポイントの作成
PrivateLink エンドポイントを作成するため、VPC コンソールにアクセスし [Endpoints] を選び、[Create Endpoint] を選択します。

次にアクセスしたいサービスを選びます。新しい PrivateLink エンドポイントには「インターフェイス」タイプがあります。この場合は、VPC から直接 Kinesis サービスを使用したいので [kinesis-streams] サービスを選択します。

この時点で、新しいエンドポイントをどの VPC で起動するか選ぶことができます。EIN と IP アドレスが配置されるサブネットを選択します。新規または既存のセキュリティグループとエンドポイントを関連付けて、どのインスタンスがエンドポイントにアクセスできるか管理することもできます。

PrivateLink エンドポイントは VPC から IP アドレスを使用するので、VPC プライベート DNS を使用して AWS サービス DNS 名の DNS をオーバーライドするオプションがあります。[Enable Private DNS Name] をチェックした状態にしておくことで VPC 内から「kinesis.us-east-1.amazonaws.com」をルックアップでき、作成しているエンドポイントの IP アドレスにすることができます。これでアプリケーションを変更せずに、エンドポイントへの移行をシームレスに行えます。デフォルトでトラフィックを処理する前にエンドポイントをテストしたり設定したい場合は、これを無効の状態にしておき、エンドポイントを編集することでいつでも変更が可能になります。

VPC、サブネット、DNS を希望通りに設定したら [Create Endpoint] をクリックして、このプロセスを完了します。

PrivateLink エンドポイントの使用

デフォルトで、プライベート DNS 名を有効にした状態で PrivateLink エンドポイントを使用するのは、SDK、AWS CLI または VPC 内からサービス API にアクセスするその他のソフトウェアを使用する場合と同様に簡単です。コードや設定を変更する必要はありません。

テストや詳細設定をサポートするため、各エンドポイントはご自分のエンドポイントに独自の専有な DNS 名のセットを取得するようになっています。エンドポイントのプライマリ名とゾーン名があります。

プライマリ名は特に、DNS オーバーライドオンプレミスを使用せずに Direct Connect を介してエンドポイントにアクセスする場合に便利です。当然ながら、VPC 内でプライマリ名を使用することもできます。
プライマリ名とメインサービス名は (ここではオーバーライドするように選択したので) ゾーン耐障害性を含み、アベイラビリティーゾーン間のトラフィックのバランスをとります。障害抑制や区分化、低レイテンシーまたはリージョン間のデータ転送の最小化のためのゾーン分離技術を使用するアーキテクチャがある場合は、ゾーン名を使用してその間でトラフィックがフローするか、ゾーン内に留めることを明確に管理できます。

料金と提供地域
AWS PrivateLink は中国 (北京) を除くすべての AWS 商用リージョンでご利用いただけます。各サービスの提供地域に関してはこちらの「ドキュメント (documentation)」をご覧ください。

料金は 0.01 USD / 時間とデータ処理の料金 0.01 / GB からご提供しています。アベイラビリティーゾーン間のデータ転送または Direct Connect 経由のエンドポイントとプレミス間のデータ転送では、通常の EC2 リージョン別と Direct Connect データ転送料金も発生します。詳細については、「VPC の料金」を参照してください。

Colm MacCárthaigh

Apache MXNet バージョン 0.12 で Extends Gluon 機能を拡大、最先端の研究をサポート

先週、Apache MXNet コミュニティが MXNet バージョン 0.12 をリリースしました。このバージョンの主な機能は NVIDIA Volta GPU と Sparse Tensor のサポートです。同リリースには Gluon プログラミングインターフェイスの新機能がいくつも含まれています。こうした機能は特にディープラーニングモデルにおける最先端のリサーチを実装しやすくします。

  • 変分ドロップアウトは、オーバーフィッティングをリカレントニューラルネットワーク (RNN) に移行するために使うドロップアウト技術を効率的に適用できるようにします。
  • 畳み込み RNN、Long short-term memory (LSTM)、Gated Recurrent Unit (GRU) セルは、時間ベースのシーケンスと空間ディメンションの両方を示すデータセットのモデリングを可能にします。
  • 7 つの新しい損失関数、エクスポート機能、トレーナー機能の強化

変分ドロップアウト (VariationalDropoutCell) は最近のリサーチを足掛かりにして、RNN のオーバーフィッティングを移行させる新たなツールを提供しています。これは「リカレントニューラルネットワークのグランデッドアプリケーションの推論 (“A Theoretically Grounded Application of Recurrent Neural Networks”)」と「RNNDrop: ASR における RNN の新しいアプローチ (“RNNDrop: A Novel Approach for RNNs in ASR”)」を基盤にしています。オーバーフィッティングは、モデルがトレーニングデータセットに近すぎた状態でフィットしていることで発生するモデリングエラーです。そのため、新しいデータまたはテストデータセットが表れた場合に予測精度が低下してしまいます。ドロップアウトはランダムにモデルパラメータをゼロにするモデリング技術です。そのため、トレーニング中にモデルが必要以上に 1 つのインプットまたはパラメータに依存することがありません。とはいっても、この技術が RNN で適用されて成功したケースはまだありません。これまでの研究は、RNN のタイムステップ全体に渡りゼロになった完全なランダム性を持って、入力と出力に限りドロップアウトを適用することに集中してきました。変分ドロップアウトは、このタイムステップに渡るランダム性を除外し、同じランダムドロップアウト配列 (またはマスク) を各タイムステップで RNN の入力、出力そして非表示の状態に適用するようになっています。

(more…)

Apache MXNet リリースに追加された新しい NVIDIA Volta GPU と Sparse Tensor のサポート

Apache MXNet バージョン 0.12 が利用可能になりました。MXNet コミュニティに参加している貢献者の方々との協力により、強化点を追加する新機能の提供を実現することができました。今回のリリースでは、MXNet に 2 つの重要な機能が追加されています。

  • NVIDIA Volta GPU のサポートにより、ユーザーはトレーニングやニューラルネットワークモデルの推論に掛かる時間を大幅に削減することができます。
  • Sparse Tensor のサポートにより、ユーザーは保存とコンピューティングを効率的にした方法で Sparse マトリックスを使用しモデルをトレーニングすることができます。

NVIDIA Volta GPU サポートのアーキテクチャ

MXNet v0.12 リリースには NVIDIA Volta V100 GPU サポートが追加されています。これにより、ユーザーは畳み込みニューラルネットワークのトレーニングを Pascal GPU に比べて 3.5 倍も速くすることができます。ニューラルネットワークのトレーニングには、数兆にもなる浮動小数点 (FP) 倍数や追加が関係しています。通常、こうした計算には高精度にするため単精度浮動小数点 (FP32) が使われます。けれども、最近の研究結果によると、ユーザーがトレーニングで浮動小数点を半精度 (FP16) にしたデータタイプを使用しても、FP32 データタイプを使用したトレーニングと同じ精度を実現できることが分かっています。

Volta GPU アーキテクチャが Tensor Core を導入しました。各 Tensor Core は 1 時間ごとに 64 fuse-multiply-add ops を実行することができます。これは 1 時間ごとの各コアにおいて CUDA コア FLOPS を 4 倍速にした状態です。Tensor Core は下記で表示したように、それぞれ D = A x B + C を実行します。この場合、A と B は半精度マトリックスで C と D は半精度または単精度マトリックスであるため、様々な精度のトレーニングを実行していることになります。新しい様々な精度のトレーニングにより、ユーザーはネットワークのほぼすべてのレイヤーで FP16 を使用、そして必要な時だけより高い精度のデータタイプを使用することで、精密性を妥協することなく最適なトレーニングパフォーマンスを実現することができます。

MXNet を使用することで、ユーザーは FP16 を利用してモデルをトレーニングし、Volta Tensor Core を活用できます。たとえば、次のコマンドオプションを train_imagenet.py スクリプトでパスすれば、MXNet で FP16 トレーニングを有効にすることができます。

--dtype float16

先日、AWS Deep Learning AMI の新しいセットをリリースしました。これは、Amazon EC2 P3 インスタンスファミリーの NVIDIA Volta V100 GPU に最適化した MXNet v0.12 を含む様々なディープラーニングフレームワークを備えた状態でプリインストールされています。AWS Marketplace にてクリック 1 回で開始またはステップバイステップガイドを使用して、最初のノートブックを始めることができます。

(more…)

新しい – AWS Direct Connect Gateway – リージョン間の VPC アクセス

今回のブログの準備をしている時に、2012 年に公開した懐かしいブログ記事を読み返してみました。これは AWS Direct Connect のリリースについて紹介したものです。エンタープライズをご利用されているお客様達から、プライバシーの強化やデータ転送の帯域幅の追加、より予測可能性に優れたデータ転送パフォーマンスを実現するため、AWS リージョンに専用接続を確立できるようにしたいというリクエストを受け、Direct Connect を提供するに至りました。当初は AWS リージョン 1 か所と 1 つのコロケーションから始まりましたが、現在ではすべてのパブリック AWS リージョンでその利用が可能となり、世界中に散在する多数のコロケーションからアクセスできるようになりました (合計 60 か所のロケーション)。当社のお客様には Direct Connect を全面的にご活用いただいており、その後も Link AggregationAmazon EFS サポートCloudWatch モニタリングHIPAA の適格性といった機能を追加しました。過去 5 週間だけでも、Direct Connect ロケーションをヒューストン (テキサス)、バンクーバー (カナダ)、マンチェスター (英国)、キャンベラ (オーストラリア)、パース (オーストラリア) に追加しました。

そして現在は、Direct Connect Gateway を追加することで Direct Connect をよりシンプルに、そしてさらにパワフルにするよう努めています。また、すべてのリージョンにおいて Direct Connect をご利用のお客様が、当社のグローバル IP ルートを受信するパブリック仮想インターフェイスを作成したり、当社サービスのパブリックエンドポイントへのアクセスの有効化、Direct Connect の価格モデルの更新などを行えるようにしています。

では詳しく見てみましょう。

新しい Direct Connect Gateway
この新しい Direct Connect Gateway を使用すると、複数の AWS リージョンに渡り Virtual Private Cloud (VPC) で接続性を確立できます。そのため、VPC にそれぞれ複数の BGP セッションを確立する必要がないので、管理作業を減らしネットワークデバイスへの負担も軽減することができます。

また、この機能はどの Direct Connect ロケーションからでも関与する VPC への接続を可能にするため、クロスリージョンベースで AWS サービスを使用する場合のコストをさらに削減することもできます。

Direct Connect Gateway を使用して実現できる簡略化の例を示した以下の図をご覧ください (「ロック」アイコンは仮想プライベートゲートウェイを意味します)。まず、このように開始します。

最後に次のようになります。

特定の Direct Connect Gateway を参照する VPC には、重複しない IP アドレス範囲が必要です。現在、VPC はすべて同じ AWS アカウントになければなりませんが、今後これをもっと柔軟にする予定です。

各ゲートウェイはパブリック AWS リージョンすべてに渡り存在するグローバルオブジェクトです。ゲートウェイを介したリージョン間の通信はすべて AWS ネットワークのバックボーンに渡って行われます。

Direct Connect Gateway の作成
Direct Connect Gateway を作成するには Direct Connect Console を使用するか、 CreateDirectConnectGateway 関数を呼び出してください。私はコンソールを使用します。

開始するには、Direct Connect Console を開き [Direct Connect Gateways] をクリックします。

まだゲートウェイがないので、リストは空の状態になっています。これを変更するには [Create Direct Connect Gateway] をクリックします。

ゲートウェイの名前を入力し、ネットワークにプライベート ASN を入力したら [Create] をクリックします。ASN (自律システム番号) は RFC 6996 でプライベートとして定義されている範囲の 1 つにする必要があります。

しばらくすると、新しいゲートウェイが別の AWS リージョンで表示されます。

VIF を作成するのに使用する Direct Connect Connection がオハイオにあります。

次に Gateway と Connection を参照するプライベート VIF を作成します。

数秒で使用できるようになります。

重複しない CIDR とそれぞれに仮想プライベートゲートウェイがアタッチされている VPC のペアがすでにあります。こちらが VPC です (これはデモなので便宜上、同じリージョンでお見せします)。

仮想プライベートゲートウェイは次のようになります。

Direct Connect Console に戻り Direct Connect Gateways にアクセスします。Gateway を選択し [Associate Virtual Private Gateway] を [Actions] メニューから選びます。

両方の仮想プライベートゲートウェイを選択し [Associate] をクリックします。

いつものように、もし自分の VPC が特定の AWS リージョンである場合も同じ手順を使用できます。このブログでは 2 回ではなく 1 回で操作をお見せした方が簡単でした。

数分ほどで仮想ゲートウェイの関連付けが完了します (associating の状態で開始)。

この状態が [associated] になると、VPC がある AWS リージョンにかかわらず、AWS Direct Connect 接続でオンプレミスネットワークと VPC 間でトラフィックが移動するようになります。

サービスエンドポイントのパブリック仮想インターフェイス
これで、あらゆる AWS リージョンで実行している AWS サービスの AWS パブリックサービスエンドポイントへのアクセスを可能にするパブリック仮想インターフェイスを作成できるようになりました。こうしたインターフェイスは Amazon のグローバル IP ルートを受信 (BGP 経由) します。[Public] オプションを選択し Direct Connect Console でインターフェイスを作成できます。

価格モデルの更新
AWS リージョンや AWS Direct Connect ロケーションの数が日々増えていくことを考慮し、データ転送料金が Direct Connect とソース AWS リージョンのロケーションをベースにするようになりました。新しい料金設定は AWS Direct Connect ロケーションをベースにしたこれまでのモデルに比べ、よりシンプルになりました。

提供開始
この機能はすでに利用可能となっており、今すぐ使用を開始できます。Direct Connect Gateways は追加費用なしに作成し使用することができます。いつものようにポート時間とデータ転送に基づいた Direct Connect 料金を支払うことになります。

Jeff;

98、99、100 か所の CloudFront 接続ポイントを提供

9 年前のことになりますが「Amazon CloudFront でコンテンツを分散させるには (Distribute Your Content with Amazon CloudFront)」というブログを書いたことがあります。2008 年のリリース以来、14 の接続ポイントで始まった CloudFront は急速な拡大を遂げてきました。そして本日、100番目の接続ポイントを東京で 5 番目の、そして日本で 6 番目の接続ポイントとして提供を始めました。89 か所のエッジロケーションと 11 か所のリージョン別エッジキャッシュを備えた CloudFront は、世界中の何百万ものユーザーが生成するトラフィックをサポートするようになりました。

23 か国、50 都市、今後もさらに増加
100 か所の接続ポイントは世界中の 23 か国 50 都市で展開されています。過去 12 か月間に渡りネットワークサイズを 58% 拡大、次の 9 都市を含む 37 か所の接続ポイントを追加しました。

  • ベルリン (ドイツ)
  • ミネアポリス (米国ミネソタ)
  • プラハ (チェコ共和国)
  • ボストン (米国マサチューセッツ)
  • ミュンヘン (ドイツ)
  • ウィーン (オーストリア)
  • クアラルンプール (マレーシア)
  • フィラデルフィア (米国ペンシルバニア)
  • チューリッヒ (スイス)

2018 年第 1 四半期にエッジロケーションを追加予定のアラブ首長国連邦を始め、今後その他の都市も追加してきます。

顧客に向けたイノベーション
先述のように、当社のネットワークはエッジロケーションとリージョン別エッジキャッシュで構成されています。2016 年の re:Invent で発表したリージョン別エッジキャッシュは、エッジロケーションとユーザーのオリジンサーバーの間に位置し、エッジロケーション以上のメモリを備えています。オリジンサーバーのロードを減らしながら、視聴者に向けて配信を迅速に提供できるように、コンテンツを身近に保存することを可能にしています。

ロケーションが大切なことには変わりませんが、それは単なる開始点です。先日はセキュリティポリシー機能をリリースするなど、当社は引き続きセキュリティを重視しています。また、CloudFront は HIPAA 対応サービスであることもお知らせしました。Lambda@Edge のリリースにより、これまで以上にコンテンツ提供やコンテンツ生成のオプションを提供し、ユーザーに近い状態で AWS Lambda 関数を実行できるようにしています。

また、キャッシュの無効化や設定変更の処理の高速化にも力を注いでいます。リクエストからミリ秒以内に無効化を受け入れるようになり、通常 60 秒以内にそのリクエストが世界中で処理できるようになりました。これにより、顧客がタイムリーに最新のコンテンツにアクセスすることを可能にしています。

サインアップ情報、チュートリアル、オンラインセミナー、オンデマンド動画、営業時間などに関する情報については「Amazon CloudFront の使用を開始 (Getting Started with Amazon CloudFront)」ページをご覧ください。

Jeff;

AWS HIPAA 利用資格の更新 (2017 年 10 月) – 16 の追加サービス

「医療顧客の事例 (Health Customer Stories)」 ページでは、AWS で実行するヘルスケアやライフサイエンスのアプリケーションを構築し実行している数多くのお客様の中から数件をご紹介しています。Verge HealthCare CloudOrion Health といったお客様は、HIPAA や HITECH の規制に準拠する取り組みの一環として、保護されるべき医療情報 (PHI) や個人識別情報 (PII) において AWS に信頼を寄せています。

その他 16 のサービス
前回の「HIPAA 利用資格の更新 (HIPAA Eligibility Update)」と題したブログでは、HIPAA 利用資格サービスのリストに 8 つのサービスを追加したことについてお知らせしました。そして本日、それに加え 16 のサービスをリストに追加し、ご利用可能なサービスの合計数はこれで 46 件になりました。次に、今回追加したサービスの簡単な概要と過去のブログ記事へのリンクをご紹介します。

PostgreSQL と互換性を持つ Amazon Aurora Amazon Aurora に追加したこのサービスは、AWS Key Management Service (KMS) で作成し管理するキーを使用してリレーショナルデータベースを暗号化できるようにします。Amazon Aurora データベースで暗号化を有効にすると、基盤となるストレージが暗号化されます。また、自動バックアップやリードレプリカ、スナップショットにおいても同様です。詳しくは「Amazon Aurora の保管時の暗号化 (Read New – Encryption at Rest for Amazon Aurora)」をご覧ください。

Amazon CloudWatch ログ)」 – ログを使用してシステムやアプリケーションをモニタリングしたり、トラブルシューティングを行うことができます。既存のシステム、アプリケーション、カスタムログファイルをほぼリアルタイムでモニタリングするので、特定のフレーズ、値、パターンなどを監視できます。ログデータは永続的そして低コストで必要な限り保存されます。詳しくは「Amazon CloudWatch で OS とアプリケーションログファイルの保存とモニタリング (Store and Monitor OS & Application Log Files with Amazon CloudWatch)」と「CloudWatch ログとダッシュボードの改良 (Improvements to CloudWatch Logs and Dashboards)」をご覧ください。

Amazon Connect – このセルフサービスによるクラウドベースのサポートセンターは、低コストでより良いカスタマーサービスを提供できるようにしています。ビジュアルデザイナーを使用すれば、問い合わせフローやエージェント管理、パフォーマンスのトラッキングを特別なスキルなしにセットアップすることができます。詳しくは「Amazon Connect – クラウドを使用したサポートセンター (Amazon Connect – Customer Contact Center in the Cloud)」と「Amazon Connect と Amazon Lex の統合 (New – Amazon Connect and Amazon Lex Integration)」をご覧ください。

Amazon ElastiCache for Redis – このサービスはアプリケーションのパフォーマンス改善に使用するため、インメモリ型データストアやキャッシュをデプロイ、操作、スケールできるようにします。ElastiCache for Redis クラスターは、それぞれ Amazon CloudWatch にキーパフォーマンスメトリクスを発行するようになっています。詳しくは「Amazon ElastiCache とクラウドでキャッシング (Caching in the Cloud with Amazon ElastiCache)」と「Amazon ElastiCache – Dash of Redis を使用 (Amazon ElastiCache – Now With a Dash of Redis)」をご覧ください。

Amazon Kinesis Streams – このサービスでは、ウェブサイトのクリックストリーム、金融取引、ソーシャルメディアフィード、ロケーション追跡イベントなどのストリーミングデータを処理したり分析するアプリケーションを構築できるようにします。詳しくは「Amazon Kinesis – ビッグデータをリアルタイムで処理 (Amazon Kinesis – Real-Time Processing of Streaming Big Data)」と「Amazon Kinesis Streams のサーバー側で行う暗号化 (New: Server-Side Encryption for Amazon Kinesis Streams)」をご覧ください。

Amazon RDS for MariaDB – このサービスは スケーラブルでマネージド型 MariaDB インスタンスを数分でセットアップできるようにし、高パフォーマンス、高可用性そして保管時および転送中のデータを暗号化しやすくする簡略化したセキュリティモデルを提供しています。詳細については「Amazon RDS の更新 – MariaDB が利用可能に (Amazon RDS Update – MariaDB is Now Available)」をご覧ください。

Amazon RDS SQL Server – このサービスはスケーラブルでマネージド型 Microsoft SQL Server インスタンスを数分でセットアップできるようにします。また、高パフォーマンス、高可用性そして簡略化したセキュリティモデルも提供しています。詳細については「AWS Elastic Beanstalk の Amazon RDS for SQL Server と .NET サポート (Amazon RDS for SQL Server and .NET support for AWS Elastic Beanstalk)」および「Amazon RDS for Microsoft SQL Server – 透過的なデータ暗号化 (TDE) (Amazon RDS for Microsoft SQL Server – Transparent Data Encryption (TDE))」をご覧ください。

Amazon Route 53 – これは可用性の高いドメイン名サーバーです。www.example.com といった名前を IP アドレスに変換します。詳しくは「Amazon Route 53 の活用 (Moving Ahead with Amazon Route 53)」をご覧ください。

AWS Batch – このサービスは大規模なバッチのコンピューティングジョブを AWS で実行できるようにします。特別なバッチソフトウェアのインストールや維持、または独自のサーバークラスターを構築する必要はありません。詳細は「AWS Batch – AWS でバッチのコンピューティングジョブを実行 (AWS Batch – Run Batch Computing Jobs on AWS)」をご覧ください。

AWS CloudHSM – クラウドスケールでのキーストレージや管理用のクラウドベースのハードウェアセキュリティモジュール (HSM) です。重要なワークロード用に設計された CloudHSM では、FIPS 140-2 のレベル 3 認証済み HSM を使用して独自のキーを管理することができます。詳細については「AWS CloudHSM – 安全なキーストレージと暗号化オペレーション (AWS CloudHSM – Secure Key Storage and Cryptographic Operations」および「AWS CloudHSM の更新 – 重要および規制対象ワークロード用のクラウドスケールにおけるコスト効率に優れたハードウェアキーの管理 (AWS CloudHSM Update – Cost Effective Hardware Key Management at Cloud Scale for Sensitive & Regulated Workloads)」をご覧ください。

AWS Key Management Service – このサービスはデータの暗号化に使用する暗号化キーの作成や管理を容易にします。キーを保護するために HSM を使用し、すべてのキー使用のログを提供するため、AWS CloudTrail と統合されています。詳しくは「新しい AWS Key Management Service (New AWS Key Management Service (KMS))」をご覧ください。

AWS Lambda – このサービスはサーバーを考慮したり管理する必要なくイベント駆動型アプリケーションまたはバックエンドコードを実行できるようにします。詳しくは「AWS Lambda – クラウドでコードを実行 (AWS Lambda – Run Code in the Cloud)」、「AWS Lambda – 2016 年を振り返って (AWS Lambda – A Look Back at 2016)」、「AWS Lambda – モバイル開発における新機能を備えた本稼働環境 (AWS Lambda – In Full Production with New Features for Mobile Devs)」をご覧ください。

Lambda@Edge – この AWS Lambda の新機能を使用して Node.js 関数を AWS ロケーションのグローバルネットワークに渡り実行することができます。豊富なコンテンツや個人化されたコンテンツを低レイテンシーでユーザーに提供する場合にサーバーをプロビジョニングしたり管理する必要がありません。詳しくは「Lambda@Edge を読む – Edge での HTTP リクエストの知的処理 (Read Lambda@Edge – Intelligent Processing of HTTP Requests at the Edge)」をご覧ください。

AWS Snowball Edge – これはオンボードのストレージとコンピューティング能力を搭載した 100 TB のデータ転送デバイスです。Snowball Edge は一時的なストレージ層として使い、AWS との間で大量のデータを移動するために使用することも、遠隔地やオフラインのロケーションにあるローカルワークロードを実行するために使用することもできます。詳細は「AWS Snowball Edge – より多くのストレージ、ローカルエンドポイント、Lambda 関数を提供 (AWS Snowball Edge – More Storage, Local Endpoints, Lambda Functions)」をご覧ください。

AWS Snowmobile – これはエクサバイト規模のデータ転送サービスです。セミトレーラートラックが牽引する長さ 14 m の丈夫な輸送コンテナで、Snowmobile 1 台あたり 100 PB まで転送できます。詳細は「AWS Snowmobile – エクサバイトのデータを数週間でクラウドに移行 (AWS Snowmobile – Move Exabytes of Data to the Cloud in Weeks)」をご覧ください (ついでに私の素晴らしい LEGO プロジェクトもお見逃しなく)。

AWS Storage Gateway – このハイブリッドストレージサービスはボリューム、ファイル、仮想テープ用のストレージを備え、シンプルかつシームレスな方法でオンプレミスアプリケーションが AWS クラウドストレージを使用できるようにします (Amazon Simple Storage Service (S3)Amazon GlacierAmazon Elastic File System)。詳しくは「AWS Storage Gateway – 既存のオンプレミスアプリケーションと AWS Cloud Storage を統合 (The AWS Storage Gateway – Integrate Your Existing On-Premises Applications with AWS Cloud Storage)」と「AWS Storage Gateway へのファイルインターフェイス (File Interface to AWS Storage Gateway)」をご覧ください。

以上です。HIPAA や HITECH に準拠するアプリケーション構築に便利なリソースについては過去のブログ記事をご覧ください。

Jeff;

Amazon CloudWatch で GPU 使用率をモニタリング

GPU には何千ものコアがあるため、ディープラーニングには大量のマトリックス乗算と GPU (グラフィックス処理ユニット) により並列化できるベクトルオペレーションが必要です。アマゾン ウェブ サービスでは P2 または P3 インスタンスにサインアップすることが可能です。このようなインスタンスは、大規模なディープニューラルネットワークのデプロイの加速化を強調する MXNet のようなディープラーニングフレームワークの実行に優れています。

データサイエンティストや開発者はネットワークを微調整する場合、適切なバッチサイズを使用できるように GPU 使用率を最適化したいと考えています。今回のブログでは、Amazon CloudWatch メトリクスを使用して GPU とメモリ使用量をモニタリングする方法をご説明します。Amazon マシンイメージ (AMI) では、インスタンスが Amazon Deep Learning AMI を使用することを勧めています。

GPU を有効にしたインスタンスのモニタリングや管理をサポートするために使用されている現在の一般的な方法は、コマンドラインユーティリティの NVIDIA システム管理インターフェイスを利用することです (nvidia-smi)。nvidia-smi の使用により、ユーザーは GPU 使用率、メモリ消費量、ファンの使用量、電力消費量、そして NVIDIA GPU デバイスの温度などの情報をクエリすることができます。

nvidia-smi は NVIDIA 管理ライブラリをベースにしているので (NVML)、C ベースの API ライブラリを使用し、カスタムメトリクスとして Amazon CloudWatch に送信するのと同じデータポイントをキャプチャできます。このライブラリに関する詳細については「リファレンスマニュアル (reference manual)」をご覧ください。このブログではライブラリに Python ラッパーの pyvnml を使用します。

Amazon CloudWatch は、システムやインフラストラクチャのセットアップ、管理、スケールを必要とせずに EC2 インスタンスでワークロードをモニタリングする場合に大変優れています。デフォルトにより、CloudWatch は CPUUtilization、DiskReadOps、DiskWriteOps、NetworkIn、NetworkOut といったメトリクスを提供するようになっています。(インスタンスのメトリクス一覧についてはこちらをご覧ください)

こうしたメトリクスの他にも API、SDK または CLI を使用し Amazon CloudWatch カスタムメトリクス を介して独自のデータポイントをプッシュすることもできます。Python Boto3 SDK を使用します。

(more…)

AWS がエモリー大学とのコラボレーションを通じ、Apache MXNet を活用したクラウドベースの NLP 研究プラットフォームを開発

自然言語処理 (NLP) は、コンピュータプログラムに人間の言語 (自然言語) を理解させるという、人工知能の研究分野のひとつです。NLP についてあまりご存じない方でも、日々の生活の中でこれを使っている可能性は高いでしょう。携帯電話の仮想キーボードで文字入力を行う際、入力内容の分析結果に基づき、次に打ち込むべきであると予測される単語がリスト表示されます。これは言語モデリングと呼ばれ、入力された単語にどの単語が続くかの確率をその内容に基づいて測定する技術であり、NLP の中核的タスクのひとつです。NLP はすでに多くのアプリケーションに採用されており、世の中を大きく変えつつあります。

エモリー大学の NLP 研究グループである Evolution of Language and Information Technology (ELIT) チームは、研究者たちに最先端の NLP と機械学習テクノロジーをもたらす取り組みを行っています。ELIT プロジェクトは、AWS クラウドの豊富なリソースを活用し、ビッグデータ解析に向けたスケーラブルなエンドツーエンドの NLP パイプラインを提供することに主眼を置いています。他の多くの NLP フレームワークとは異なり、ELIT はウェブ API をサポートすることで、プラットフォームに依存しない体制を実現しています。そのお陰で、研究者たちはいつでもどこでも大規模なコンピューティングを利用できます。また、ELIT プロジェクトは、GitHub にも参加しています。これは、エモリー大学の NLP 研究グループが AWS の MXNet チームとの緊密なコラボレーションの下で立ち上げたサービスです。今回のブログ投稿では、ELIT のプラットフォームをご紹介するとともに、そこで活用されているウェブ API や、NLP の可視化についてもご説明します。

ELIT の研究用プラットフォーム

近年、NLP においてディープラーニングが盛んに活用され始めた結果、機械学習に基づく NLP モデルには多大な計算処理能力が要求されるようになり、研究者たちは強力なマシンなしには NLP の最新技術をフル活用できなくなっています。AWS のようなクラウドコンピューティングプラットフォームは、研究者たちがこれらのモデルを実行できるよう、無制限のコンピューティングリソースを提供します。しかしこれは、クラウドにさほど通じていない方々にとっては面倒でもあるでしょう。そこで ELIT プロジェクトが目指すのは、NLP のためのウェブサービスを提供し、インターネット接続さえあれば誰でもリクエストを行えるようにすることです。つまり、ローカルインストールは不要ですし、クラウドコンピューティングに関する予備知識も必要ありません。では、感情分析などの一般的な NLP タスクにおける ELIT プラットフォームの活用例をご紹介しましょう。

感情分析

具体的なデモンストレーションをご覧いただく前に、感情分析に対する当チームのアプローチを簡単にご説明します。感情分析とは、各ドキュメントをネガティブニュートラルポジティブという 3 つの感情に分類することです。ELIT は、感情分析を行うための畳み込みニューラルネットワーク (CNN) モデルを 2 種類提供しており、これを活用することでソーシャルメディアおよび映画のレビューからのデータを分析できます。対象ドキュメント (ツイートまたは映画のレビュー) を指定すると、まずは各単語のベクトル表現がスタッキングされ、インプットとして行列が作成されます。このインプット行列が畳み込みおよびプーリング層に入力され、畳み込みの結果は、対象ドキュメントに含まれる各 n グラム (この例では n = [1、…、5]) の強度を表現するアテンションの行列と一致します。そして、このアテンションのアウトプットがソフトマックス層に入力され、対象データがネガティブニュートラルポジティブの各感情に分類される可能性について予測が行われます (ここで使用した CNN モデルの詳細については、Shin et al., 2017 をご覧ください)。

デモンストレーション

まず、ELIT のデモページ (http://demo.elit.cloud/) のスクリーンショットをご覧ください。

(more…)

Amazon Rekognition とグラフデータベースを使って映画スターのソーシャルネットワークを理解する

Amazon Rekognition は、イメージの分析をアプリケーションに簡単に追加できるようにする AWS サービスです。ディープラーニングを活用したこのコンピュータビジョン向け API に追加された最新機能が、有名人の認識です。この使いやすい機能は、各分野の有名人や著名人を多数検出、認識します。このツールにより、ユーザーは自身の関心に基づいて有名人のデジタルイメージライブラリのインデックスを作成し、検索することができます。

当社のお客様が個人に関するデータの保存に用いる一般的な方法の 1 つが、グラフデータベースです。過去のブログ投稿で詳しく説明したとおり、Facebook や LinkedIn、Twitter といった企業は巨大な関係性ネットワークの管理能力を通じ、社会が相互に関わり合う方法を革新してきました。このブログ投稿の目的は、Rekognition の有名人の認識および顔認識機能をグラフデータベースに保存された関係情報に組み合わせるのがいかに簡単かをご紹介することです。

これらのテクノロジーを組み合わせることで、お客様は 1 枚の写真を通じて、その写真に含まれる人物が他の関心対象である人物とどのように関連しているかを把握できます。さらに、2 枚の写真を送信し、それぞれの写真に含まれる人々の間にどのような相互関係があるかを素早く見極めることも可能です。この関係マッピングを活かしたコミカルな例が、有名な Six Degrees of Kevin Bacon (ケヴィン・ベーコンとの六次の隔たり) ゲームです。しかし、このようなアプリケーションのビジネス価値は実に大きなものです。法執行機関は 2 枚の写真を基に Rekognition を活用して各人物の身元を特定し、グラフデータベースを参照して関心対象である 2 名の人物が知り合いかどうかを突き止めることができます。同様に、ホスピタリティ企業は Rekognition とグラフデータベースを使って敷地内にいる有名人を素早く特定し、その人物の知り合いである他の有名人のうち、近隣に宿泊している人物を把握できます。

このブログ投稿では、グラフデータベース (ここでは Neo4j Community Edition を使用) を採用した Rekognition と、D3.js ライブラリを使用した Jupyter Notebook の併用方法のデモンストレーションをご紹介します。

設定

このテクノロジーの組み合わせの使用を開始するには、まず AWS ラボの Github リポジトリからプロジェクトのコピーを取得します。  プロジェクト構成には 2 つの主なエリアが含まれます。

  • <project root> – ここに、実際の Jupyter Notebook がすべての依存関係とともに保存されています。
  • <project root>/cft – インフラストラクチャを作成するための AWS CloudFormation テンプレートおよびサンプルプロパティ、サンプルコマンド。

ここに新たな/既存の ssh キーを追加する必要があります。AWS CloudFormation テンプレートが Neo4j Community Edition をインストールし、Rekognition を操作するための Python コード例を含む Jupyter Notebook を AWS ラボからダウンロードして、スピーディな利用開始に必要となるその他の Amazon EC2 設定を構成します。また、Cloud Formation テンプレートが Neo4j ブラウザまたは Jupyter Notebook のいずれかのクエリ対象となる一般的なムービーグラフデータベースを自動的にロードします。

(more…)