Category: Amazon AppStream


Amazon AppStream 2.0 のGPU強化によるストリーミングインスタンス

re:Invent 2016 でリリースした Amazon AppStream 2.0 についてお知らせします。このアプリケーションストリーミングサービスは、デスクトップブラウザに Windows アプリケーションを配信することができます。

フルマネージド型の AppStream 2.0 は、多目的、コンピュート最適化、メモリ最適化のストリーミングインスタンスでアプリケーションを実行することにより、一貫性のあるスケーラブルなパフォーマンスを提供し、安全で忠実度の高いストリーミングプロトコルの NICE DCV を介して配信します。エンタープライズおよび公的機関のお客様は、レガシーアプリケーションストリーミング環境の代わりにオンプレミスでインストール済みの AppStream 2.0 をすでにご利用されています。こうしたお客様は AppStream 2.0 を使用して、商用アプリケーションおよびビジネスアプリケーションをデスクトップ ブラウザに配信しています。ISV をご利用されているお客様はコードを変更せずに、AppStream 2.0 を使用してアプリケーションをそのままクラウドに移動しています。こうしたお客様はデモ、ワークショップ、企業の SaaS プランなどに注目しています。

高評価を頂いている AppStream 2.0 には新しい機能が迅速に追加されています (AWS の平均に比べても速い方です)。今年に入ってからすでに image builderSAML 2.0 のフェデレーティッドアクセスCloudWatch モニタリングFleet Auto Scalingシンプルなネットワークセットアップユーザーファイル用の永続的ストレージ (Amazon S3 によりバックアップ)、VPC セキュリティグループのサポートユーザー向けのウェブポータルを含む組み込みのユーザー管理が追加されています。

新しい GPU によるストリーミングのインスタンス
専用のデザイン、エンジニアリング、HPC、メディアアプリケーションをユーザーに提供するために AppStream 2.0 を使用したいというリクエストを数多く頂きました。こうしたアプリケーションは、通常グラフィックスを集中的に使用し GPU (グラフィックスプロセッシングユニット) と組み合わせた高額で高性能の PC で実行するように設計されています。こうしたアプリケーションのハードウェア要件により、定期的または時折アクセスする場合のみ使用することでコストを抑えることが一般的でした。そして、最近になってまた新しい要件が追加されました。ほとんどの場合、こうしたアプリケーションはクラウドで保存、処理、安全に維持することが適切とされる大量の機密データへの共有済みの読み書きアクセスが必要です。このようなユーザーやアプリケーションのニーズに応えるため、AWS は 2 つの新しいタイプのストリーミングインスタンスをリリースすることにしました。

Graphics DesktopG2 インスタンスタイプをベースにした Graphics Desktop インスタンスは、CUDA、DirectX、レンダリング用の OpenGL を使用するデスクトップアプリケーション向けに設計されています。こうしたインスタンスは 15 GiB のメモリと 8 vCPU を備えています。AppStream イメージまたは AppStream フリートを設定する際に、このインスタンスファミリーを選択できます。

Graphics Pro – 最新の G3 インスタンスタイプをベースにした Graphics Pro インスタンスは、NVIDIA API を使用または大量のメモリへのアクセスを必要とするハイエンドで高性能のアプリケーション用に設計されています。こうしたインスタンスには 3 つのサイズがあり 16 – 64 vCPU まで対応でき、122 – 488 GiB までのメモリを提供します。繰り返しになりますが、AppStream フリートを設定する際にこのインスタンスファミリーを選択できます。

ストリーミングアプリケーション環境の起動、実行、スケールの方法に関する詳細は「Amazon AppStream 2.0 でデスクトップアプリケーションストリームをスケールする (Scaling Your Desktop Application Streams with Amazon AppStream 2.0)」をご覧ください。

前述のとおり、こうした 2 つのインスタンスタイプのいずれかを使用して AppStream イメージを構築することができます。これでアプリケーションのテストや微調整を行い、インスタンスの動作を見れるようになります。

ストリーミングインスタンスインアクション
AWS は新しいインスタンスタイプのプライベートベータプログラムで複数のお客様と協力してきました。AppStream 2.0 を介してストリーミングしているアプリケーションの例を (スクリーンショットも) いくつかご紹介しましょう。

AVEVA は海運業、電力産業、プラント業界、海底油田およびガス産業において、エンジニアリングデザインと情報管理ソフトウェアソリューションで世界をリードする企業です。大規模な資本投入を伴うプロジェクトの一部として、同社の顧客はエンジニアリングの専門家から成る多数のグループをまとめて、デジタルアセット製作の共同作業を行う必要があります。この要件をサポートするため、AVEVA はストリームしたエンジニアリングアプリケーションのストリーム送信と世界中のエンジニアと共有するスケーラブルプロジェクトデータ環境へのアクセスを組み合わせた SaaS ソリューションを構築しています。新しいインスタンスは AVEVA がクオリティとパフォーマンスを最大限に活用しながら SaaS のエンジニアリングデザインソフトウェアを送信できるようにします。次のスクリーンショットは Everything 3D アプリが AppStream からストリームされている様子を表したものです。

日本の多国籍自動車メーカーの Nissan は、高価なグラフィックワークステーションで 3D シミュレーションソフトウェアを使用して自動車スペシャリストをトレーニングしています。The DiSti Corporation が開発したトレーニングソフトウェアは、スペシャリストが作業する車のリアルな 3D モデルを使用しながら、メンテナンスのプロセスをシミュレートできるようにします。AppStream 2.0 の新しいグラフィック性能により、Nissan は低価格の PC で実行するデスクトップブラウザに向けて、最新情報を含むトレーニングツールをリアルタイムで配信できるようになりました。同社のスペシャリストは、実にリアルな車のレンダリングを操作できるようになり、効率性の高いメンテナンスオペレーションのトレーニングや計画を立てられるようになりました。

Cornell University はアメリカのニューヨーク州イサカにあるアイビーリーグの私立大学で、ランドグラント大学です。同大学はコースワークや授業内容、リサーチをサポートするために、AutoDesk AutoCAD や Inventor といった高度な 3D ツールを学生や職員に提供しています。今までは、こうしたツールを使えるのは研究室や教室にある GPU によるワークステーションに限られていました。AppStream 2.0 はあらゆるデスクトップで実行するウェブブラウザでアプリケーションを提供できるようにし、ローカルワークステーションで使用しているかのように実行することができます。研究室や教室にある利用可能なワークステーションだけに限定されることがなくなり、自分のデバイスでコースソフトウェアにアクセスできるようになりました。このように柔軟性が増したことで、職員がコーススケジュールを作成する際に研究室を利用できるかどうか考慮する必要がなくなりました。同大学の AppStream で実行している Autodesk Inventor Professional のコピーはこちらをご覧ください。

提供開始
グラフィックスストリーミングインスタンスファミリーはどちらも米国東部 (バージニア北部)米国西部 (オレゴン)欧州 (アイルランド)アジアパシフィック (東京) のリージョンで今すぐご利用いただけます。アプリケーションは Windows 2012 R2 環境で実行する必要があります。また、DirectX、OpenGL、CUDA、OpenCL、Vulkan を使用することもできます。

米国東部 (バージニア北部) リージョンでの Graphics Desktop インスタンスの料金は 1 時間あたり 0.50 USD、Graphics Pro インスタンスの料金は 1 時間あたり 2.05 USD です。経済的な時間単位の支払い方法で AWS クラウドにて独自のシミュレーション、視覚化、HPC ワークロードを実行できます。Amazon Elastic Compute Cloud (EC2)Amazon Simple Storage Service (S3)AWS LambdaAmazon Redshift、その他の AWS サービスですばやい低レイテンシーアクセスを利用し、データ処理前後を扱うワークフロー処理を構築することもできます。

Jeff;

Amazon AppStream 2.0でデスクトップアプリケーションのストリームをスケールする


Deepak Sury, Principal Product Manager – Amazon AppStream 2.0

デスクトップアプリケーションを書き換えることなくWebブラウザにストリーミングしたいですか?Amazon AppStream 2.0はフルマネージドの、セキュアなアプリケーションストリーミングサービスです。このサービスでなにができるかを知るためのかんたんな方法はエンドユーザーエクスペリエンスを無料で試してみることです。

この記事では、AppStream 2.0環境をスケールさせて、コストを最適化する方法について解説します。さらにセットアップとモニタリングについていくつか付け加えます。

AppStream 2.0 ワークフロー

Image Builderを使用して自分のアプリケーションをAppStream 2.0にインポートします。Image BuilderでAWS Management Consoleからデスクトップエクスペリエンスに接続して、自分のアプリをインストールしてテストすることができます。そして、Image Builderのスナップショットとしてイメージを作成します。

アプリケーションをふくむイメージを作成したあと、インスタンスタイプを選択してストリーミングインスタンスのフリートを起動します。フリートのそれぞれのインスタンスは1ユーザーだけで使用され、フリートで使用されるインスタンスタイプがアプリケーションパフォーマンスによる必要と適合するようにします。最後に、フリートをスタックにアタッチしてユーザーアクセスをセットアップします。以下の図はワークフローのなかでのそれぞれのリソースの役割を示しています。

図1: AppStream 2.0のワークフローを記述

appstreamscaling_1.png

AppStream 2.0のセットアップ

使いはじめるためには、コンソールのクイックリンクからサンプルのAppStream 2.0スタックをセットアップします。このサンプルでは、スタックにds-sampleという名前を付け、サンプルイメージを選択して、stream.standard.mediumインスタンスタイプを選んでいます。セットアップしたリソースはAWSコンソールまたは、以下のようにdescribe-stacksやdescribe-fleetsを使用して確認することができます:

図2: AppStream 2.0スタックの確認

appstreamscaling_1.png

図3: AppStream 2.0フリートの確認

appstreamscaling_2.43%20AM

ストリーミング環境へのユーザーアクセスをセットアップするには、既存のSAML 2.0準拠のディレクトリを使用することができます。ユーザーは既存の認証情報を使用してログインすることができます。別のやり方として、クイックにストリーミング接続をテスト、または自分のWebサイトからストリーミングセッションをスタートするには、ストリーミングURLを作成することができます。コンソールで、Stacks、Actions、Create URLを選択するか、以下のようにcreate-streaming-urlを呼び出します:

図4: ストリーミングURLの作成

appstreamscaling_3.png

ブラウザにストリーミングURLをペーストして、表示されたアプリケーションを開くことができます。

appstreamscaling_4.30%20PM

これでサンプル環境のセットアップができましたので、スケーリングに移りましょう。

AppStream 2.0のスケーリングとコスト最適化

インスタントオンのストリーミング接続を提供するために、AppStream 2.0フリートのインスタンスは常時稼働しています。稼働中のインスタンスに課金され、それぞれの稼働中のインスタンスは同時に1ユーザーのみを受け付けます。コストを最適化するには、インスタンスの稼働台数を同時にアプリをストリーミングしたいユーザー数にあわせます。このセクションではそのための3つのオプションを紹介していきます:

  • フリートのオートスケーリング
  • スケジュールをベースにした固定フリート
  • スケジュールによるフリートのオートスケーリング

フリートのオートスケーリング

インスタンスの稼働台数を動的に更新するには、フリートのオートスケーリングを使用することができます。この機能はフリートのサイズを自動的に最小値と最大値の間でオンデマンドにスケールさせることができます。これはコンスタントにユーザーの需要が変動し、需要に応じてフリートを自動的にスケールさせたい場合に便利です。スケーリングポリシーのセットアップと管理の方法については、Fleet Auto Scalingを参照してください。

フリートへの変更はAmazon CloudWatchメトリクスを利用してトリガすることができます:

  • CapacityUtilization – すでに使用されている稼働中のインスタンスのパーセンテージ
  • AvailableCapacity – 未使用でユーザーからの接続を受け付けることができるインスタンスの台数
  • InsufficientCapacityError – ユーザーのリクエストに応答できる稼働中のインスタンスが存在しないときにトリガされるエラー

AWS SDKまたはAWSマネージメントコンソールを使用してスケーリングポリシーの作成とアタッチができます。コンソールを使用してポリシーをセットアップするのが便利です。以下のステップになります:

  1. AWSマネージメントコンソールで、AppStream 2.0を開きます。
  2. Fleetを選んで、フリートを選択し、Scaling Policiesを選びます。
  3. Minimum capacityMaximum capacityで、フリートの値を入力します。

図5: スケーリングポリシーを設定するフリートタブ

appstreamscaling_5.png

  1. それぞれのセクションでAdd Policyを選んでスケールアウトとスケールインポリシーを作成します。

図6: スケールアウトポリシーの追加

appstreamscaling_6.png

図7: スケールインポリシーの追加

appstreamscaling_7.png

ポリシーを作成した後、フリートの詳細の一部として表示されます。

appstreamscaling_8.png

スケーリングポリシーはCloudWatchアラームによってトリガーされます。このアラームはコンソールを使用してスケーリングポリシーを作成したときに自動的に作成されます。CloudWatchコンソールからアラームの確認と変更ができます。

図8: フリートをスケーリングするためのCloudWatchアラーム

appstreamscaling_9.png

スケジュールをベースにした固定フリート

コストを最適化して予測可能な需要に対応するための別のやり方は時刻または曜日にもとづいて稼働するインスタンスの台数を固定することです。これはトレーニングクラス、コールセンターのシフト、学校のコンピュータラボなどのシナリオで異なる時刻に固定されたユーザー数がサインインする場合に便利です。AppStream 2.0のupdate-fleetコマンドを使用して稼働中のインスタンス数をかんたんに設定することができます。フリートのコンピュートキャパシティを希望する値にアップデートしてください。稼働中のインスタンス数は、以下のように設定した希望する値に応じて変動します:

図9: フリートの希望するキャパシティをアップデート

appstreamscaling_10.png

自動的にフリートサイズをアップデートするLambdaファンクションをセットアップします。以下の例にしたがって自分のファンクションをセットアップします。以前にLambdaを使用したことがない場合は、Step 2: Create a HelloWorld Lambda Function and Explore the Consoleを参照してください。

フリートサイズを変更するファンクションを作成するには

  1. Lambdaコンソールで、 Create a Lambda functionを選択します。
  2. Blank Functionブループリントを選択します。これは自分のコードを追加することができる空のブループリントを作成します。
  3. 今回はトリガーセクションをスキップします。あとで、時間を、または別のインプットをベースにしたトリガーを追加できます。
  4. Configure functionセクションでは:
    1. 名前と説明を入力します。
    2. Runtimeでは、Node.js 4.3を選択します。
    3. Lambda function handler and roleで、Create a custom roleを選択します。
    4. IAMウィザードで、例えばLambda-AppStream-Adminのようにロール名を入力します。デフォルトのままにします。
    5. IAMロールが作成されたあと、”AmazonAppStreamFullAccess”というAppStream 2.0のマネージドポリシーをロールにアタッチします。より詳細な情報は、Working with Managed Policiesを参照してください。これによりLambdaがあなたのかわりにAppStream 2.0 APIをコールすることができます。くわしくは、Controlling Access to Amazon AppStream 2.0を参照してください。
    6. のこりのフィールドではデフォルト値のままNext, Create functionを選択します。
  5. AppStream 2.0のフリートサイズを変更するには、Codeを選択して以下のようにサンプルコードを追加します:
    JavaScript
    'use strict';
    
    /** This AppStream2 Update-Fleet blueprint sets up a schedule for a streaming fleet **/
    
    const AWS = require('aws-sdk');
    const appstream = new AWS.AppStream();
    const fleetParams = {
      Name: 'ds-sample-fleet', /* required */
      ComputeCapacity: {
        DesiredInstances: 1 /* required */
    
      }
    };
    
    exports.handler = (event, context, callback) => {
        console.log('Received event:', JSON.stringify(event, null, 2));
    
        var resource = event.resources[0];
        var increase = resource.includes('weekday-9am-increase-capacity')
    
        try {
            if (increase) {
                fleetParams.ComputeCapacity.DesiredInstances = 3
            } else {
                fleetParams.ComputeCapacity.DesiredInstances = 1
            }
            appstream.updateFleet(fleetParams, (error, data) => {
                if (error) {
                    console.log(error, error.stack);
                    return callback(error);
                }
                console.log(data);
                return callback(null, data);
            });
        } catch (error) {
            console.log('Caught Error: ', error);
            callback(error);
        }
    };
  6. コードをテストします。Testを選択して”Hello World”テストテンプレートを使用します。はじめてこれを実行するには、Save and Testを選択します。以下のようにスケーリングのアップデートをトリガーするテストインプットを作成します。appstreamscaling_11.png
  7. update-fleetコールの結果がアウトプットのテキストとして表示されます。CLIを使用してLambdaファンクションの実行結果を確認することもできます。

つぎに、タイムベーススケジュールをセットアップするために、Lambdaファンクションを呼び出すトリガーをセットします。

Lambdaファンクションのトリガーをセットするには

  1. Triggers, Add triggerを選択します。
  2. CloudWatch Events – Scheduleを選択します。
  3. Schedule expressionでは、cronを選択します。cronの値はあとで編集することができます。
  4. トリガーが作成された後、weekday-9am-increase-capacityのイベントを開きます。
  5. CloudWatchコンソールで、イベントの詳細を編集します。平日の午前8時にフリートをスケールアウトするには、時間を00 17 ? * MON-FRI *になるように調整します。(シアトル(太平洋時間)ではない場合は、それぞれのタイムゾーンに変更してください)
  6. 平日の終わりにトリガーする別のイベントを追加することもできます。

appstreamscaling_12.png

これでセットしたスケジュール時刻に合わせて自動的にスケールアウトとスケールインするトリガーをセットアップしました。

スケジュールでのフリートのオートスケーリング

もっと複雑なシナリオをマネージするためにフリートスケーリングと時間ベースのスケジュールのアプローチを組み合わせて使用することができます。これは業務時間と業務時間外とで稼働するインスタンス数をマネージしながら需要の変更に対応するのに便利です。時刻または日付に基づいてフリートの最小および最大サイズをプログラムから変更し、デフォルトのスケールアウトおよびスケールインポリシーを適用することができます。これによってスケジュールをベースにした予測可能な最小の需要に応答することができます。

たとえば、平日のはじめに、同時に一定数のユーザーがストリーミング接続をリクエストすることが予測されます。フリートがスケールアウトして要求を満たすまで待っていたくはありません。しかしながら、一日のうちに、需要がスケールインまたはアウトすることが予測され、フリートのサイズを需要に合わせたいと思います。

これを実現するには、コンソールからスケーリングポリシーをセットアップして、スケジュールをベースにフリートの最小、最大および希望するキャパシティの変更をトリガーするLambdaファンクションを作成します。以前作成したLambdaファンクションのコードを以下のようなコードで置き換えます:

JavaScript
'use strict';

/** This AppStream2 Update-Fleet function sets up a schedule for a streaming fleet **/

const AWS = require('aws-sdk');
const appstream = new AWS.AppStream();
const applicationAutoScaling = new AWS.ApplicationAutoScaling();

const fleetParams = {
  Name: 'ds-sample-fleet', /* required */
  ComputeCapacity: {
    DesiredInstances: 1 /* required */
  }
};

var scalingParams = {
  ResourceId: 'fleet/ds-sample-fleet', /* required - fleet name*/
  ScalableDimension: 'appstream:fleet:DesiredCapacity', /* required */
  ServiceNamespace: 'appstream', /* required */
  MaxCapacity: 1,
  MinCapacity: 6,
  RoleARN: 'arn:aws:iam::659382443255:role/service-role/ApplicationAutoScalingForAmazonAppStreamAccess'
};

exports.handler = (event, context, callback) => {
    
    console.log('Received this event now:', JSON.stringify(event, null, 2));
    
    var resource = event.resources[0];
    var increase = resource.includes('weekday-9am-increase-capacity')

    try {
        if (increase) {
            //usage during business hours - start at capacity of 10 and scale
            //if required. This implies at least 10 users can connect instantly. 
            //More users can connect as the scaling policy triggers addition of
            //more instances. Maximum cap is 20 instances - fleet will not scale
            //beyond 20. This is the cap for number of users.
            fleetParams.ComputeCapacity.DesiredInstances = 10
            scalingParams.MinCapacity = 10
            scalingParams.MaxCapacity = 20
        } else {
            //usage during non-business hours - start at capacity of 1 and scale
            //if required. This implies only 1 user can connect instantly. 
            //More users can connect as the scaling policy triggers addition of
            //more instances. 
            fleetParams.ComputeCapacity.DesiredInstances = 1
            scalingParams.MinCapacity = 1
            scalingParams.MaxCapacity = 10
        }
        
        //Update minimum and maximum capacity used by the scaling policies
        applicationAutoScaling.registerScalableTarget(scalingParams, (error, data) => {
             if (error) console.log(error, error.stack); 
             else console.log(data);                     
            });
            
        //Update the desired capacity for the fleet. This sets 
        //the number of running instances to desired number of instances
        appstream.updateFleet(fleetParams, (error, data) => {
            if (error) {
                console.log(error, error.stack);
                return callback(error);
            }

            console.log(data);
            return callback(null, data);
        });
            
    } catch (error) {
        console.log('Caught Error: ', error);
        callback(error);
    }
};

注:このコードを実行するには、Lambdaファンクションで使用されるロールにIAMポリシーを追加する必要があります。このポリシーによってLambdaがあなたのかわりにアプリケーションオートスケーリングサービスを呼び出すことができます。

図10: Lambdaでアプリケーションオートスケーリングを使用するインラインポリシー

{
"Version": "2012-10-17",
"Statement": [
   {
      "Effect": "Allow", 
         "Action": [
            "iam:PassRole"
         ],
         "Resource": "*"
   }
]
}
{
"Version": "2012-10-17",
"Statement": [
   {
      "Effect": "Allow", 
         "Action": [
            "application-autoscaling:*"
         ],
         "Resource": "*"
   }
]
}

利用状況のモニタリング

フリートのスケーリングをセットアップした後、AppStream 2.0でCloudWatchメトリクスを使用して、モニタリングのためのダッシュボードを作成することができます。これは確認した利用量をもとに時間ベースのスケーリングポリシーを最適化するのに役立ちます。

例えば、初期セットアップが非常に保守的でリソースをオーバープロビジョンしていたら、フリートの利用率が低い状態が長く続くでしょう。一方で、フリートサイズが小さすぎる場合、高利用率またはユーザーの接続をブロックしているキャパシティ不足のエラーがみられるでしょう。最大15ヶ月までCloudWatchメトリクスを確認してフリートスケーリングポリシーを調整することができます。

図11: カスタムAmazon CloudWatchメトリクスのダッシュボード

appstreamscaling_13.53%20PM

まとめ

これらはAppStream 2.0をスケーリングしてコストを最適化するためのいくつかのアイデアです。これが役に立ち、同様の記事を観たいと思ったらお知らせください。サービスに関してコメントがあれば、AWS forum for AppStream 2.0にフィードバックを投稿してください。

翻訳は渡邉が担当しました。原文はこちら

Amazon AppStream 2.0 の新機能 – Fleet Auto Scaling、Image Builder、SAML、メトリクス、フリート管理

昨年終わりに私の同僚 Gene Farrell が紹介したのは Amazon AppStream 2.0 です。そのゲスト投稿で、彼は AppStream 2.0 を使用することにより HTML5 ウェブブラウザを快適に使いながら、どのデバイスでも安全にデスクトップアプリケーションを実行できる方法について説明しました (詳しくはこちらのブログをご覧ください)。たとえば、起動時に AppStream 2.0 Try it Now ページを使用したところ、すぐに Siemens Solid Edge を使い始めることができました。Try it Now ページで好きなアプリケーションを選んだだけです。

数秒後には Solid Edge を実行していました。インストールや設定の必要もありません。

 

皆様からのリクエスト – Enterprises、SMB、ISV の新機能を追加
re:Invent でリリースしてから、皆様からのリクエストにお応えするため AppStream 2.0 の微調整を行い、いくつかの機能を追加しました。こうした新機能は、今まで以上に簡単にアプリケーションをデプロイ、アクセス、管理、トラックできるようにし、AppStream で利用できます。すでに大方の新機能をリリースしていますが、各機能に関するブログは公開していなかったので、今回はこうした新機能について簡単にご説明します。では最新機能をご紹介します。Fleet Auto Scaling – この新機能は CloudWatch メトリクスを使用してデマンドの変化に対応すべく、フリートのスケールアップやスケールダウンを可能にします。これにより瞬時のアクセスを実現しながら、できる限り安価にアプリケーションを提供することができます。Image Builder – 自分が選んだアプリケーションを含む AppStream 2.0 イメージを構築できます。SAML 2.0 認証 – AppStream 2.0 と既存の SAML 2.0 に準拠したディレクトリを使用できます。ユーザーは既存の認証情報でログインすることができます。フリート管理 – アプリケーションを実行するインスタンスの管理オプションを追加しました。CloudWatch メトリクス – サイズやフリート全体の使用率を含む 7つの Amazon CloudWatch メトリクスを観察しモニタリングすることができます。では詳しく見てみましょう。

Fleet Auto Scaling
この新機能は新しい CloudWatch メトリクスにサポートされています。各フリートにスケーリングポリシーを関連付けることができるようになりました。様々なタイプのユーザーからの要求に応えたりコスト管理に利用できます。ユーザーに生産性アプリケーションを提供するために AppStream 2.0 を使用している場合は、営業時間中にキャパシティーがオンラインになっていることを確実にしたり、ユーザーの就業時間終了後はそれに合わせられるようにスケーリングポリシーを使用できます。スケールアウト (キャパシティー追加) そしてスケールイン (キャパシティー削除) ポリシーを持つフリートについては、次をご覧ください。

この機能を活用するにはフリート作成時にキャパシティーの最小値と最大値を設定しておきます。

これによりデフォルトポリシーを作成することができます。後日にポリシーを編集、追加、削除することができます (各フリートにつき 50 件までのポリシーを作成できます)。詳細は AppStream Fleet Auto Scaling をご覧ください。

Image Builder
この機能ではお好きな商用アプリケーションやプロプライエタリアプリケーションを含むカスタムイメージを作成することができます。これを行うには image builder というインスタンスを起動します。次にインスタンスにログインし、お好きなアプリケーションをインストールして設定、インスタンスの状態をイメージとしてキャプチャします。ログインやカスタマイズのプロセスはすべてお使いのウェブブラウザ内で行われます。キーのダウンロードやパスワードを覚える必要はありません。アプリケーションはイメージレジストリで表示され、ユーザーが利用できます。AppStream 2.0 コンソールから image builder を起動できます。

次に開始点 (既存のイメージ) を選びます。

名前を指定し、インスタンスのサイズを選び VPC をセットアップすることでビルダーを設定します。

[Review] をクリックして設定を確認し、ビルダーが起動するのを待ちます。

image builder に接続できるようになったら、アプリをセットアップしイメージを作成します。接続時には管理者とテストという 2 つの選択肢があります。

[ImageBuildAdmin] を選び (パスワード入力がリクエストされたら) [Log me in] を Admin Commands で見つけてクリックします。

ログイン後、Image Assistant アプリを起動しアプリのインストールやテストに使用します。

詳細については Image BuildersAppStream 2.0 Image Builder のチュートリアルをご覧ください。

SAML 2.0 認証
この機能は SAML 2.0 をサポートするあらゆる外部 ID プロバイダーの使用を許可します。これは Active Directory フェデレーションサービスPingFederate サーバーOktaShibboleth を含みます。

Setting Up SAML の手順を完了すると、ユーザーは既存の ID や認証情報を使用して AppStream 2.0 にログインすることができます。ユーザーやグループを管理したり、ユーザーの ID または場所をベースにアプリケーションへのアクセスを管理することができ、Multi-Factor Authentication (MFA) を使用できます。詳細については SAML 2.0 を使用して AppStream 2.0 でシングルサインオンアクセスを有効にするをご覧ください。すでに AWS マネジメントコンソールにフェデレーションアクセスをセットアップしている場合は、すでにご存知の情報を大方適用できます。

フリート管理
この機能はフリート (ユーザーのアプリケーションを実行しているインスタンスのグループ) をさらにコントロールできるようにします。1 つの画面で自分のフリートをすべて見ることができます。

フリートを 1 つ選び、それに対応することができます。

フリートのプロパティにはいつでも編集できるものもあります。VPC プロパティを含むその他においては、フリートが停止した場合のみ編集することができます。詳細についてはスタックとフリートをご覧ください。

CloudWatch メトリクス
AppStream は 8 つのメトリクスを各フリートの CloudWatch に発行します。

  • RunningCapacity – 実行中のインスタンス数
  • InUseCapacity – 使用中のインスタンス数
  • DesiredCapacity – 実行中または保留中のインスタンス数
  • AvailableCapacity – 使用可能なアイドル中のインスタンス数
  • PendingCapacity – プロビジョニング中のインスタンス数
  • CapacityUtilization – 使用中のフリートの割合 (%)
  • InsufficientCapacityError – キャパシティー不足により拒否されたセッション数

AppStream 2.0 コンソールでこうしたメトリクスを見ることができます。

こうしたメトリクスはフリートのサイズを微調整する場合に全体の使用状況を把握する上で便利です。どの CloudWatch メトリクスでも同じ様に、アラートを生成しメトリクスが希望範囲外にある場合に警告を発することができます。AWS Lambda 関数を使用して環境を変更したり、専用の通知を生成することもできます。詳細については Amazon AppStream 2.0 リソースのモニタリングをご覧ください。

今すぐ利用可能
これらのすべての機能は今すぐご利用いただけます。

Jeff;

 

Amazon AppStream 2.0 – AWSからデスクトップアプリをストリーミング

私の同僚であるGene FarrellがオリジナルバージョンのAmazon AppStreamがお客様のフィードバックをもとにしていかに進化したかについてゲスト投稿を書きました。

Jeff;


AWSでは、お客様の問題を解決することを手助けしテクノロジーによってお客様にサービスを提供するのが私たちのミッションです。それが私たちに考えることをうながし、私たちがイノベーションを実現する方法の中心となっています。私たちのお客様はAWSのサービスを使用して次世代のモバイルアプリを構築し、快適なWebエクスペリエンスを作成し、そしてコアのITワークロードをグローバルスケールで実行しています。

モバイル、Web、そしてコアITにおけるイノベーションとトランスフォーメーションにはめざましいものがありますが、デスクトップとデスクトップアプリケーションについてはほとんど変化がありませんでした。エンドユーザーはどこでどのように仕事をするのかの自由をまだ享受できていません。ITは、デスクトップ、アプリケーション、そして無数のデバイスを管理するための堅牢で高価なシステムに悩まされています。そして企業情報をセキュアにすることはますますむずかしくなっています。おおくのやり方でクラウドはITのこの側面を迂回しているようです。

私たちのお客様はそれを変えたいと思っています。 モバイル、Web、およびコアITで見られるように、デスクトップとアプリケーションの柔軟性、スケール、セキュリティ、パフォーマンス、そしてコストのメリットが求められます。 たった2年以上前に、私たちはフルマネージドのセキュアなクラウドデスクトップサービスであるAmazon WorkSpacesを発表し、AWS上で永続的なデスクトップを提供しています。 本日、私はデスクトップアプリケーションをWebブラウザに配信するためのフルマネージドでセキュアなアプリケーションストリーミングサービスであるAmazon AppStream 2.0を紹介することにワクワクしています。

お客様は、さまざまなプラットフォームで動作することを必要としている従来のデスクトップアプリケーションがたくさんあると言っていました。 これらのアプリケーションの保守は複雑で高価であり、お客様はよりよいソリューションを求めています。 AppStream 2.0によって、任意のデバイス上のWebブラウザを使用することで、AWSからのストリーミングによってデスクトップアプリケーションへのインスタンスアクセスを提供することができます。 クラウドのためにアプリケーションを書き直す必要はなく、ひとつのバージョンをメンテナンスするだけですみます。 アプリケーションとデータはAWS上でセキュアにたもたれ、アプリケーションストリームはエンドツーエンドで暗号化されます。

オリジナルのAppStreamをふりかえって
AppStream 2.0の詳細について説明する前に、オリジナルのAmazon AppStreamサービスの歴史についてみる価値があります。 2013年に私たちはAppStreamをSDKベースのサービスとしてローンチし、お客様はデスクトップアプリケーションのストリーミング体験を構築してこれらのアプリケーションをクラウドに移行することができるようになりました。 私たちはSDKによるアプローチがお客様がアプリケーションストリーミングを自分たちの製品に統合できるようにすると考えていました。 私たちは、ゲーム開発者やグラフィックスISVがこの開発モデルを採用するだろうと考えていましたが、予想していたより多くの作業が必要であり、つかいはじめるためには重要なエンジニアリングへの投資が要求されることがわかりました。それを試した人たちはその機能セットが自分たちのニーズを満たしていないことに気づきました。 たとえば、AppStreamはg2.2xlarge EC2インスタンスをベースとしたひとつインスタンスタイプだけを提供していました。 これによって、パフォーマンスがコストを正当化できるハイエンドなアプリケーションへのサービスのみに限定されました。 しかし、経済性は多くのアプリケーションにとって割に合わないものでした。

AppStreamで、お客様の重要な問題を解決するために取り組んでいましたが、解決策を正しく得ることに失敗しました。 これは、アマゾンではあえて受け入れるリスクです。 われわれは迅速に動き、お客様を手助けすることができる分野を探求していますが、失敗の準備をします。 私たちは失敗するときに学習し、すばやく反復します。 この場合、お客様からデスクトップアプリケーションのためのよりよいソリューションが必要であることを継続的にヒアリングし、そしてふりだしに戻りました。 その結果がAppStream 2.0です。

AppStream 2.0の特長
AppStream 2.0では、オリジナルのAppStreamサービスを試していだいたお客様から聞いた課題の多くに対応しています。 こちらがにいくつかの特長です:

  • デスクトップアプリケーションをセキュアにWindowsおよびLinux PC、Mac、Chromebook上のHTML5ウェブブラウザでどのデバイスでも実行できます。
  • ユーザーがどこからでもデスクトップアプリケーションに即座にアクセスできます。遅延はなく、大きなファイルをダウンロードすることもなく、時間のかかるインストールもありません。ユーザーは、ネイティブにインストールされたアプリを実行するのと同じように、敏感で流動的なエクスペリエンスを得ることができます。
  • シンプルなエンドユーザーインターフェイスで、ユーザーはフルスクリーンモードで実行し、ブラウザタブ内で複数のアプリケーションを開き、簡単にスイッチして操作することができます。ファイルをセッションにアップロードし、アクセスして編集し、完了したらダウンロードすることができます。また、印刷や、音声の再生、そしてネットワークの状態に最適化するために帯域幅を調整することもできます。
  • アプリケーションとデータをセキュアにAWS上に保持 – 暗号化されたピクセルのみがエンドユーザーにストリーミングされます。アプリケーションストリームとユーザー入力は、HTTPS経由でAWS上のセキュアなストリーミングゲートウェイを通過するため、ファイアウォールと親和性が高いものになります。自身のVirual Private Cloud(VPC)内でアプリケーションを実行でき、Amazon VPCのセキュリティ機能を使用してアクセスを制御できます。 AppStream 2.0は、ユーザーが自社の認証情報を使用してアプリケーションにアクセスできるようにするIDフェデレーションをサポートしています。
  • フルマネージドなサービスのため、アプリケーションストリーミングインフラストラクチャを計画、デプロイ、管理、およびアップグレードする必要はありません。 AppStream 2.0は、アプリケーションのホストおよび実行に必要なAWSリソースを管理し、自動的にスケールし、必要に応じてエンドユーザへのアクセスを提供します。
  • 一貫したスケーラブルなパフォーマンスをAWSで、一般的にローカルデバイスでは利用できないコンピューティング能力にアクセスすることができます。ローカルおよびグローバルに即座にスケールし、ユーザーが低レイテンシーのエクスペリエンスをつねに得られることを保証します。
  • さまざまなストリーミングインスタンスタイプでアプリケーションを実行します。 General Purpose、Compute Optimized、およびMemory Optimizedインスタンスファミリーのインスタンスタイプを使用して、アプリケーションのパフォーマンスを最適化し、全体のコストを削減することができます。
  • ハイパフォーマンスなストリーミングのためのNICE DCVは、アプリケーションにセキュアでハイパフォーマンスなアクセスを提供します。 NICE DCVは流動的でインタラクティブな体験を提供し、ネットワークの状態に自動的に適応します。

価格と利用可能なリージョン
AppStream 2.0では、使用するストリーミングインスタンスに対してのみ料金を支払います。 ストリーミングインスタンスの料金は、選択したインスタンスの種類、およびアプリケーションにアクセスする同時ユーザーの最大数によります。

特定の月にリージョン内のアプリケーションにアクセスするユニークな認可されたユーザーごとにユーザーフィーが課金されます。 ユーザーフィーはMicrosoft RDS SALライセンスをカバーしており、MicrosoftのライセンスモビリティプログラムによってRDS CALライセンスを持ち込むする場合は免除されます。 AppStream 2.0には、つかいはじめるための管理者体験を提供する無料利用枠があります。 無料利用枠には、最長2ヶ月間、月40時間が含まれます。 詳細については、こちらのページを参照してください。

AppStream 2.0は、米国東部(北バージニア)、米国西部(オレゴン)、ヨーロッパ(アイルランド)、および東京リージョンで利用可能です。 AppStream 2.0に既にインストールされているサンプルアプリケーションにアクセスすることで、今すぐに無料でAppStream 2.0のエンドユーザエクスペリエンスを試すことができます。Try It Nowにアクセスするには、AWSアカウントでログインし、Get Startedを選択してください。

AppStream 2.0,についてもっとよく知るには、AppStream pageにアクセスしてください。

Gene Farrell, Vice President, AWS Enterprise Applications & EC2 Windows

(日本語訳はSA渡邉が担当しました。原文はAmazon AppStream 2.0 – Stream Desktop Apps from AWS