Author: Localization Team


Amazon ElastiCache の更新 – Redis クラスターのオンラインサイズ変更

Amazon ElastiCache では、高速なインメモリ型データストアおよびキャッシュを簡単にセットアップできます。ElastiCache は、最も人気のある 2 種類のオープンソースのソフトウェア (Redis および Memcached) をサポートしているため、要求の高いゲームのリーダーボードやインメモリアナリティクス、大規模なメッセージングのニーズに対応できます。

本日は、Amazon ElastiCache for Redis に追加された重要な機能についてご紹介します。最大 15 のシャードを作成して、それぞれに特定のスロットセットのキーと値を保存することができます (各クラスターの厳密なスロット数は 16,384 個)。1 つのクラスターで 3.55 テラバイトのインメモリデータを保存できると同時に、1 秒あたり 2,000 万回の読み取りと 450 万回の書き込みが可能です。

オンラインのサイズ変更
実行中の Redis 用 Amazon ElastiCache クラスターでシャード数を調整しながら、そのクラスターのオンライン状態を維持してリクエストに応答できるようになりました。これにより、クラスターをオフラインにしたり、空のキャッシュを使用しなくても、トラフィックやデータのボリュームの変更に対応することができます。また、シャード数を変更せずに、実行中のクラスターを再分散してスロットスペースを均一に再配置することもできます。

リシャーディングオペレーションまたは再分散オペレーションを開始すると、Redis 用 ElastiCache は、クラスターのシャード間でスロットが均等分散されるように計画の準備を開始します。その後、シャード全体にスロットを転送し、効率性を重視して並列的に多数のスロットを移動します。これは、クラスターでリクエストに応答する場合に行われ、送信時のスロットへ書き込む書き込みスループットが少し上がります。移行率は、インスタンスタイプ、ネットワーク速度、スロットへの読み込み/書き込みトラフィックによって異なり、通常 1 分あたり約 1 ギガバイトです。

リシャーディングオペレーションと再分散オペレーションは、クラスタモードを有効にして作成された Redis クラスターに適用されます。

クラスターのリシャーディング
一般的に、大幅なメモリプレッシャーの問題に直面したり、個々のノードがボトルネックになった場合は、リシャーディングでクラスターを拡張します。クラスターの CloudWatch メトリクスを監視すれば、以下のような状況を識別できます。

メモリプレッシャー – FreeableMemory、SwapUsage、BytesUsedForCache。

CPU ボトルネック – CPUUtilization、CurrConnections、NewConnections。

ネットワークボトルネック – NetworkBytesIn、NetworkBytesOut。

これらのメトリクスを監視するには CloudWatch ダッシュボード、リシャーディングプロセスを自動化するには CloudWatch アラームを使用できます。

ElastiCache ダッシュボードから Redis クラスターをリシャーディングするには、該当するクラスターをクリックして詳細ページに移動後、[Add shards] ボタンをクリックします。

シャード数、(必要に応じて) 目的のアベイラビリティーゾーンを入力し、[Add] をクリックします。

クラスターのステータスが「変更中」に変わり、リシャーディングプロセスが開始します。前述のとおり、このプロセスは数分から数時間かかります。クラスターの詳細ページで進捗を追跡できます。

シャード間を移動しているスロットを表示できます。

クラスターのイベントを監視することもできます。

リシャーディング中、KEYSSMEMBERS コマンド、および大量の演算を行う Lua スクリプトは実行しないでください。クラスターのシャードで適切にロードを行うためです。FLUSHDBFLUSHALL コマンドは一切使用しないでください。これらのコマンドを使用すると、リシャーディングプロセスは中断され、停止します。

プロセスが完了すると、各シャードのステータスは [Available] に戻ります。

シャード削除時にも同様のプロセスが行われます。

スロットの再分散
このオペレーションを実行する方法については、クラスターの詳細ページに移動し、「スロット配置の再分散」をクリックします。

主要事項
この新機能には、いくつかの注意事項があります。

エンジンバージョン – クラスターが Redis エンジンのバージョン 3.2.10 を実行している必要があります。

移行サイズ – シリアル化後、256 メガバイトより大きいアイテムを含むスロットは移行されません。

クラスターエンドポイント – リシャーディングまたは再分散を行っても、クラスターエンドポイントは変更されません。

提供開始
この機能はすでに提供が開始されているので、今すぐ使い始めることができます。

Jeff;

SSML の新しい声道機能を使用して Amazon Polly の声の音色を変更

本日、Amazon Polly チームは、開発者がテキスト読み上げ (TTS) 音声の音色を変更できるようにする、新しい音声合成マークアップ言語 (SSML) 機能のリリースを発表します。これは、Amazon Polly ポートフォリオの既存の音をカスタマイズし、ユースケース用に探している特定のペルソナの音に近づけることを希望するお客様にとって魅力的な機能です。特に、多くの異なる音が関連するシナリオを持つお客様にとって有益です。音色機能により、利用可能な各 Amazon Polly の声から複数の音のペルソナを簡単にカスタマイズできるためです。

音色とは

音色は、ピッチや大きさとは独立した、音の知覚色または品質を表します。これは、よく音楽で金管楽器と弦楽器の違いを指摘したり、ビオラとバイオリンの微妙な区別を表したりする場合などに使用されます。音色は、各楽器が同じボリュームで同じ音符を演奏していても、それぞれを区別する知覚属性です。音声においても同様に、ピッチ (基本周波数) と大きさ (振幅) が同じでも、音色により 1 つの声が別の声から区別されます。

各個人の声の音は、その人物の生理機能や発声方法を含むさまざまな要素により、独自のものになります。個人の声帯、声道、そして体全体の大きさや形でさえも、その人物の標準的な音声品質を形作るうえで重要な役割を果たします。人の舌の位置、筋肉を緊張または弛緩させる方法、空気圧を加える方法は、声のピッチ、ボリューム、音色を変えるための技法の一部にすぎません。訓練を受けた物まね役者は、自分の声をまるで他人のように変えることができるレベルまで、これらの動きを制御する方法を会得しています。

声道とピッチ

音声の音色に貢献する重要な生理機能として、声道があります。これは声帯上部から唇の端までにおよぶ空気の通り道です。声道を長くしたり短くしたり、または広げたり狭めたりして、その形を変更できるようにするさまざまな筋肉があります。こうした変更の効果によって、音声が増幅または除去されて聞こえます。

ピッチは、音声を高く、または低く聞こえるようにする聴覚属性です。音声生成においては、ピッチは声帯の振動周波数によって決定されます。一般的に、女性の声帯は男性と比較して短く、より多く (1 秒あたり 180~200 回) 振動します。男性の声帯は平均的により長く、より少なく (1 秒あたり 最大 110 回) 振動します。同様に、平均的な声道の長さは、女性が男性よりも短くなっています (最大 14cm 対最大 17cm)。

声帯の長さと声道の長さとの間には自然な相関関係があり、どちらか 1 つが大きければ、もう一方も大きくなる傾向があります。音色機能では、開発者がピッチを制御する機能を維持しながら、声道の大きさを変更することができます。

声道と音声合成

vocal-tract-length SSML タグを使用して話者の声道の長さを変更することで、入力音声の音色を制御できるようになりました。これは話者の体の大きさを変更したかのように聞こえます。 vocal-tract-length を変更すると、話者の音声は体が大きくなったかのように聞こえます。このタグを小さくすると、小さい体のような音になります。このタグは Amazon Polly のテキスト読み上げポートフォリオのいずれの声にも使用できます。

話者の声道の長さを変更する方法は次のとおりです。

  • +n% または -n%: 現在の声で、相対割合 (%) の変更により声道の長さを調整します。たとえば、+4%、-2% などです。
  • n%: 現在の声の絶対割合値 (%) に声道の長さを調整します。たとえば、104%、98% などです。
  • 声道の長さは、最大 +100% まで長くし、最小 -50% まで短くできます。
  • 声道の長さを現在の声のデフォルト値にリセットするには、<amazon:effect vocal-tract-length=“100%”> を使用します。

次の例では、Mizuki の声を使用して、声道の長さを変更する方法を示します。

<speak>
これは変更のない私の元の声です。<amazon:effect vocal-tract-length="+15%"> ここで、私の体がとても大きくなったことを想像してみてください。</amazon:effect> <amazon:effect vocal-tract-length="-15%"> 
または、私がとても小さくなったときの声をお望みですか? </amazon:effect> より細かい調整により、私の
声の音色をさらに制御できます。<amazon:effect vocal-tract-length="+10%"> たとえば、音を少し大きくしてみます。</amazon:effect> <amazon:effect vocal-tract-length="-10%"> または、少しだけ音を小さくします。</amazon:effect> 
</speak> 
聞く

Amazon Polly の声

(more…)

AWS 料金表 API の更新 – 新しいクエリとメタデータ関数

新規 – AWS 料金表 API に記載されている元の AWS 料金表が、構造化された URL を使用して JSON 形式と CSV 形式で料金にアクセスできるようになりました。これはいくつかの種類のコスト管理ツールでうまく機能しましたが、そのファイルのサイズと複雑さのためダウンロードが困難で、解析が面倒でした。今回は API を更新し、新しい関数を追加して必要な料金だけを返すきめ細かな料金クエリを実行できるようにしました。これにより、モバイルおよびブラウザベースのアプリケーションで料金表を利用することができるようになります。

新しい関数
新しい関数は以下のとおりです。

DescribeServices – サービス内の製品を定義するために使用される属性キーのセットを返します。たとえば、EC2 に返されるキーには、physicalProcessormemoryoperatingSystemlocationtenancy があります。

GetAttributeValues – 指定された属性キーのすべての許容値を返します。たとえば、operatingSystem キーの値には、WindowsRHELLinuxSUSE があり、location キーの値には米国東部 (バージニア北部)アジアパシフィック (ムンバイ) があります。

GetProducts – サービス名と属性値に基づくフィルタ式に一致する、すべての製品を公表価格とともに返します。

これらの関数には、AWS SDK からアクセスできます。それらを試してみるために、私は Python と AWS SDK for Python を使用しました。まず、SDK をインポートしてクライアントを作成するところから始めます。

import boto3
import json
import pprint

pricing = boto3.client('pricing')

すべてのサービスと属性を一覧表示する方法は次のとおりです。

print("All Services")
print("============")
response = pricing.describe_services()
for service in response['Services']:
    print(service['ServiceCode'] + ": " + ", ".join(service['AttributeNames']))
print()

出力は次のようになります。

All Services
============
SnowballExtraDays: productFamily, termType, usagetype, locationType, snowballType, feeDescription, servicecode, feeCode, location, operation
OpsWorks: productFamily, servicecode, termType, usagetype, locationType, location, operation, serverLocation, group
mobileanalytics: productFamily, servicecode, includedEvents, termType, usagetype, description, locationType, location, operation
IngestionServiceSnowball: productFamily, fromLocationType, termType, usagetype, locationType, toLocationType, toLocation, snowballType, servicecode, groupDescription, transferType, location, fromLocation, operation, group
IngestionService: productFamily, termType, usagetype, locationType, servicecode, groupDescription, dataAction, location, operation, group
ElasticMapReduce: productFamily, softwareType, instanceType, termType, usagetype, locationType, instanceFamily, servicecode, location, servicename, operation
datapipeline: productFamily, frequencyMode, termType, usagetype, locationType, description, executionFrequency, servicecode, location, operation, group, executionLocation
...

EC2 のすべての料金属性の値をすべて取得する方法は次のとおりです。

print("Selected EC2 Attributes & Values")
print("================================")
response = pricing.describe_services(ServiceCode='AmazonEC2')
attrs = response['Services'][0]['AttributeNames']

for attr in attrs:
    response = pricing.get_attribute_values(ServiceCode='AmazonEC2', AttributeName=attr)

    values = []
    for attr_value in response['AttributeValues']:
        values.append(attr_value['Value'])

    print("  " + attr + ": " + ", ".join(values))

出力は次のようになります。

Selected EC2 Attributes & Values
================================
  volumeType: Throughput Optimized HDD, Provisioned IOPS, Magnetic, General Purpose, Cold HDD
  maxIopsvolume: 500 - based on 1 MiB I/O size, 40 - 200, 250 - based on 1 MiB I/O size, 20000, 10000
  instanceCapacity10xlarge: 1
  locationType: AWS Region
  instanceFamily: Storage optimized, Micro instances, Memory optimized, GPU instance, General purpose, Compute optimized
  operatingSystem: Windows, SUSE, RHEL, NA, Linux
...

そして、ここでは、サービス名と属性値を使用して、64 の vCPU、256 GiB のメモリ、あらかじめインストールされた SQL Server Enterprise を持つ EC2 インスタンスのアジアパシフィック (ムンバイ) リージョンにおける料金表の取得方法を示します。各料金は JSON 文字列です。

print("Selected EC2 Products")
print("=====================")

response = pricing.get_products(
     ServiceCode='AmazonEC2',
     Filters = [
         {'Type' :'TERM_MATCH', 'Field':'operatingSystem', 'Value':'Windows'              },
         {'Type' :'TERM_MATCH', 'Field':'vcpu',            'Value':'64'                   },
         {'Type' :'TERM_MATCH', 'Field':'memory',          'Value':'256 GiB'              },
         {'Type' :'TERM_MATCH', 'Field':'preInstalledSw',  'Value':'SQL Ent'              },
         {'Type' :'TERM_MATCH', 'Field':'location',        'Value':'Asia Pacific (Mumbai)'}
     ],
     MaxResults=100
)

for price in response['PriceList']:
 pp = pprint.PrettyPrinter(indent=1. width=300)
 pp.pprint(json.loads(price))
 print()

出力は次のようになります (その他多数)。

Selected EC2 Products
=====================
{'product': {'attributes': {'clockSpeed': '2.3 GHz',
                            'currentGeneration': 'Yes',
                            'dedicatedEbsThroughput': '10000 Mbps',
                            'ecu': '188',
                            'enhancedNetworkingSupported': 'Yes',
                            'instanceFamily': 'General purpose',
                            'instanceType': 'm4.16xlarge',
                            'licenseModel': 'No License required',
                            'location': 'Asia Pacific (Mumbai)',
                            'locationType': 'AWS Region',
                            'memory': '256 GiB',
                            'networkPerformance': '20 Gigabit',
                            'normalizationSizeFactor': '128',
                            'operatingSystem': 'Windows',
                            'operation': 'RunInstances:0102',
                            'physicalProcessor': 'Intel Xeon E5-2686 v4 (Broadwell)',
                            'preInstalledSw': 'SQL Ent',
                            'processorArchitecture': '64-bit',
                            'processorFeatures': 'Intel AVX, Intel AVX2, Intel Turbo',
                            'servicecode': 'AmazonEC2',
                            'servicename': 'Amazon Elastic Compute Cloud',
                            'storage': 'EBS only',
                            'tenancy': 'Shared',
                            'usagetype': 'APS3-BoxUsage:m4.16xlarge',
                            'vcpu': '64'},
             'productFamily': 'Compute Instance',
             'sku': '24GRA8RB2KZ9NPCS'},
 'publicationDate': '2017-10-07T00:26:55Z',
 'serviceCode': 'AmazonEC2',
...

レスポンスの次の部分には、インスタンスを購入する特定の方法を説明する用語の配列が含まれています (オンデマンド またはさまざまなタイプのリザーブドインスタンス)。

 'terms': {'OnDemand': {'24GRA8RB2KZ9NPCS.JRTCKXETXF': {'effectiveDate': '2017-09-01T00:00:00Z',
                                                        'offerTermCode': 'JRTCKXETXF',
                                                        'priceDimensions': {'24GRA8RB2KZ9NPCS.JRTCKXETXF.6YS6EN2CT7': {'appliesTo': [],
                                                                                                                       'beginRange': '0',
                                                                                                                       'description': '$30.88 per On Demand Windows with SQL Server Enterprise m4.16xlarge Instance Hour',
                                                                                                                       'endRange': 'Inf',
                                                                                                                       'pricePerUnit': {'USD': '30.8800000000'},
                                                                                                                       'rateCode': '24GRA8RB2KZ9NPCS.JRTCKXETXF.6YS6EN2CT7',
                                                                                                                       'unit': 'Hrs'}},
                                                        'sku': '24GRA8RB2KZ9NPCS',
                                                        'termAttributes': {}}},
           'Reserved': {'24GRA8RB2KZ9NPCS.38NPMPTW36': {'effectiveDate': '2017-04-30T23:59:59Z',
                                                        'offerTermCode': '38NPMPTW36',
                                                        'priceDimensions': {'24GRA8RB2KZ9NPCS.38NPMPTW36.2TG2D8R56U': {'appliesTo': [], 'description': 'Upfront Fee', 'pricePerUnit': {'USD': '374227'}, 'rateCode': '24GRA8RB2KZ9NPCS.38NPMPTW36.2TG2D8R56U', 'unit': 'Quantity'},
                                                                            '24GRA8RB2KZ9NPCS.38NPMPTW36.6YS6EN2CT7': {'appliesTo': [],
                                                                                                                       'beginRange': '0',
                                                                                                                       'description': 'Windows with SQL Server Enterprise (Amazon VPC), m4.16xlarge reserved instance applied',
                                                                                                                       'endRange': 'Inf',
                                                                                                                       'pricePerUnit': {'USD': '14.2400000000'},
                                                                                                                       'rateCode': '24GRA8RB2KZ9NPCS.38NPMPTW36.6YS6EN2CT7',
                                                                                                                       'unit': 'Hrs'}},
                                                        'sku': '24GRA8RB2KZ9NPCS',
                                                        'termAttributes': {'LeaseContractLength': '3yr', 'OfferingClass': 'standard', 'PurchaseOption': 'Partial Upfront'}},
...

これらの関数とそれらが返すデータの詳細については、「AWS の料金表 API の使用」を参照してください。

提供開始
新しい関数は今すぐご利用いただけます。現在、米国東部 (バージニア北部) および アジアパシフィック (ムンバイ) リージョンでこれらの関数を使用して、すべてのパブリック AWS リージョンおよび AWS GovCloud (US)のメタデータおよび料金表に無料でアクセスすることができます。

これらの関数を使用する方法の実際の例を見るには、「AWS マネジメントツールのブログ」の新しい投稿「Controlling Projected User Costs Through Monthly Budget Policies」を参照してください。

Jeff;

EC2 コンバーティブルリザーブドインスタンスの更新 – 新しい 1 年間の CRI、マージ & 分割

当社は、ちょうど 1 年前に EC2 のコンバーティブルリザーブドインスタンスを開始しました。コンバーティブル RI は大幅な割引 (通常オンデマンドと比較して 54%) を提供し、必要に応じてインスタンスファミリーや RI に関連するその他のパラメータを変更することができます。

現在は、従来の 3 年の期間に加えて 1 年間のコンバーティブル RI を導入しています。また、RI の一部を交換したり、バルク交換を実行できるようにすることで、コンバーティブルリザーブドインスタンスモデルの柔軟性を高めています。

新しい 1 年間のコンバーティブル RI
1 年間のコンバーティブル予約済みインスタンスが利用可能になりました。これにより、より多くのオプションと柔軟性が得られます。お客様はニーズに合わせて、1 年と 3 年のコンバーティブルリザーブドインスタンス (CRI) を組み合わせて購入することができます。財務的な制約を受けるスタートアップ企業は、この選択肢が魅力的であると考えています。他のベンチャー企業は、1 年を超える継続の確約を行う立場にない可能性があります。

コンバーティブル RI のマージと分割
M4 インスタンスでウェブサーバーとアプリケーションサーバーの稼働を開始して、コンバーティブル RI で費用を節約したとします。次に、チューニングの後で、アプリケーションサーバーを C4 インスタンスに移動します。今日は、M4 コンバーティブル RI の一部を C4 コンバーティブル RI と交換することを発表しました。また、2 つ以上の CRI をマージし (おそらくはより小さなインスタンスのために)、より大きなインスタンスに対して 1 つの CRI を取得することもできます。

コンバーティブルリザーブドインスタンスの交換モデルは、分割、交換、およびマージに基づいています。私は、次の t2.micro の 4 つのインスタンスについて、3 年間の一部前払い CRI を所有しているとします。

私のアプリケーションは変更されましたが、今は t2.micro インスタンスとシングル r4.xlarge のペアを使用したいと考えています。最初のステップは、この CRI を保持したい部分と交換したい部分に分割することです。その部分を選択して [Modify Reserved Instances] をクリックします。次に、使用する構成を作成して [Continue] をクリックします。

リクエストを確認して、[Submit Modifications] をクリックします。

CRI の状態が変わり、CRI が変更されたことを示します。しばらくすると、active のペアに代わって retired とマークされます。

これで、2 つのインスタンス CRI のうちのいずれかを交換することができます。それを選択して、[Exchange Reserved Instance] をクリックし、新しい CRI に使用する設定を入力します:

[Find Offering] をクリックして自分のオプションを表示し、使用する r4.xlarge Partial Upfront を選択します。ご覧のように、コンソールは、前払いを計算するときに、不要な CRI の残りの前払い金額 (この場合は 139.995 ドル) を考慮して計算を行います。

先に進む準備ができたら、[Exchange] をクリックします。これにより交換プロセスが開始されます。完了するまでに数分かかることがあります。

また、2 つ以上のコンバーティブルリザーブドインスタンスを一緒にマージして、交換の出発点として使用することもできます。これを行うには、既存の CRI を選択し、[Action] をクリックし、[Exchange Reserved Instances] を選択します。選択した CRI の残りの前払い金額の合計を確認し、それに応じて先に進むことができます。

異なる開始日や期間の CRI をマージすることができます。マージされた CRI は、交換日から最も遠い RI の有効期限を持つことになります。異なる期間の CRI をマージすると、常に 3 年間の CRI が生成されます。

AWS コマンドラインインターフェイス (CLI) と EC2 API を使用して、分割、交換、およびマージ操作を実行することもできます。

提供開始
この記事で説明したすべての機能と 1 年間の CRI が利用可能で、今すぐ使用することができます。

Jeff;

新しい 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;