【イベントレポート】AWS re:Invent 2017 Serverless re:Capに参加してきました – ClassmethodサーバーレスAdvent Calendar 2017 #serverless #adventcalendar #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!おおはしりきたけです。今日は、AWS re:Invent 2017 Serverless re:Capに参加してきました。re:Invent 2017で多数のサーバーレス関連のサービスがリリースしました。本イベントは、そのフォローアップイベントとなります。

イベント概要

AWS re:Invent 2017 Serverless re:Capのイベント概要は以下になります。

Amazon Web Services, Inc.(以下AWS)のグローバルカンファレンスである「AWS re:Invent 2017」が今年も11月27日から12月1日まで米国ラスベガスで開催されます。 AWS re:Inventでは、1000を超えるブレイクアウトセッションやワークショップなどが提供される予定です。

そんな今年のAWS re:Inventの、特にサーバーレスにフォーカスしたフォローアップイベントを今年も開催します。 当日はサーバーレスに関する各サービスの最新情報や技術動向などをアマゾン ウェブ サービス ジャパン株式会社(AWSJ)のソリューションアーキテクトが発表致します。

Amazon API GatewayやAWS Lambdaに限らずAWSのサーバーレスに関する話題全般を扱う予定です。

 

開催概要

開催日程 2017年12月11日(月)
開場と開始時間 開場:18:30(受付開始) 開始:19:00
参加費 参加費無料
会場 アマゾン 目黒オフィス 東京都目黒区下目黒1-8-1 アルコタワー19F
定員 200名

タイムテーブル

時間 タイトル スピーカー
19:00 – 19:05 オープニング・挨拶 AWSJ Specialist SA 西谷圭介氏
19:05 - 19:30 Serverless Updates AWSJ SA 小梁川貴史氏
19:35 - 20:00 AWS AppSync AWSJ PS 塚越啓介氏
20:05 - 20:30 AWS Fargate AWSJ SA 大村幸敬氏
20:35 - 21:00 AWS Cloud9 AWSJ Specialist SA 福井厚氏
21:05 - 21:30 ML Services AWSJ Specialist SA 西谷圭介氏
21:30- クロージング -

セッションレポート

 

Serverless Updates

登壇者:AWSJ SA 小梁川貴史氏

AWS Lambdaの新発表

  • メモリ容量を最大3GBまで設定可能。容量に応じてより多くのCPUリソース割当を受けられる
  • Go言語と.NET Core2.0のサポート計画をプリアナウンス
  • CloudTrailログにLambda関数の起動イベント(invoke)も記録されるようになった
同時実行数について
  • 従来はアカウント他院で同時実行数が定義されていたが、Lambda関数単位で設定することが可能に
  • アカウントの上限が1000の場合
    • 関数A:上限100
    • 関数B:上限200
    • その他:上限700
  • Lambda関数が呼び出す下流処理の流量を制御したり、ENI/IPアドレスの利用量をコントロールできる
コンソールアップデート- コードエディタを改善
  • AWS Cloud9ベースのコードエディタを搭載して、開発・テストを行える
  • モニタリンググラフを改善
  • リポジトリとの統合(プレビュー)
  •  Lambdaでとラディックの以降とCodeDeployを利用した段階的アップデートをサポート
  • 事前に割り当てた割合に応じて、2つのバージョン間でのトラフィックを制御できる
  • CodeDeployと組み合わせて段階的リリースをサポートした
Serverless Application Repository
  • サーバーレスアプリの公開が容易になった
  • Lambdaコンソールから公開されたアプリケーションを選択して利用可能

API Gateway

  • VPC内のバックエンドをサポート
  • API GatewayのバックエンドとしてVPC内のリソースを直接呼び出すことができる
  • カナリアリリースにより新設したAPIを利用することで緩やかなリリースが可能
その他
  • タイムアウト:50ms -29sまでの範囲での設定が可能
  • アクセスログに詳細ログの生成が可能になった

Cognito

  • Advanced Security Features (ASF)の発表
  • アプリケーションのユーザーアカウント保護をさらに強化(東京リージョンは未公開)

AWS Step Functions

  • Step Functionでstate machineのupdateが可能になった
  • これまでは一度生成したstate machineに変更を加えることができず新規で再作成が必要だったが、既存のstate machineのupdateが可能になった

まとめ

  • 運用周りのところでLambda、API Gatewayが強化された。
  • Lambdaは、マルチコアなプログラミングを行うとより性能があがる。

AWS AppSync

登壇者:AWSJ PS 塚越啓介氏

AWS AppSyncとは

  • リアルタイム機能とオフライン機能を備えたフルマネージドなGraphQLサービス

データを扱う際のデベロッパーの課題

  • リアルタイムコラボレーション
  • 同期を考慮したオフラインプログラミング
  • 必要なデータのみの取得
  • 複数のデータソースへのアクセス
  • アクセス制御

ユースケース

  • リアルタイム
    • 最新の情報をウォッチするダッシュボード
    • ほぼリアルタイムでデータを更新
  •  コラボレーション
    • 複数ユーザーが共同編集を行うアプリケーション
    • ドキュメント、画像、テキストメッセージなど、さまざまなコンテンツタイプを自動更新
  • ソーシャルメディア
    • ソーシャルメディアやチャット
    • 複数ユーザー間でのメッセージ管理をサポート
    • オフライン時でもアプリケーションを操作でき、再接続時に自動同期

AWS AppSync(現在はプレビュー)

  • モバイルアプリとウェブアプリのリアルタイムなコラボレーション
  • オンラインシナリオ
  • データのコンフリクトを自動で解決
  • セキュアなデータ保持
  • 複数のデータソースを使ってシンプルかつ迅速なプロトタイピング
  • フルマネージドなGraphQLサービス

AppSyncのコンセプト

  • AppSyncは7つのコンセプトがある
    • AWS App Sync Client:認証、オフラインロジックなどを含んだクライアント
    • Data Source:DynamoDB/Elasticsearch/Lambda
    • Identity:GraphQL Proxyへリクエストの認証
    • GraphQL Proxy:リクエストのマッピング、コンフリクトのハンドリング
    • Operation:Query/Mutation/SubscriptionなどGraphQLのオペレーション
    • Action:GraphQLからSubcriberへの通知
    • Resolver:リクエスト/レスポンスの処理を記述する

GraphQL

  • GraphQLはAPI用のクエリ言語であり、TypeSystemを仕様してクエリを実行するためのサーバー側のランタイム
  • GraphQLは、クライアントがサーバーからデータを取得、変更、購読できるようにするためのデータ言語
  • GraphQLクエリでは、クライアントがレスポンスの形式を指定します。これにより、クライアントは必要なデータのみを必要な形式で照会できます

GraphQLはどう動くか

  • アプリのスキーマとモデルデータを定義する
  • クライアントが必要なものだけをリクエスト
  • リクエストしたデータのみが返却される

GeaphQLで変わること

  • API GatewayとLambdaでDBにアクセスするケースAppSyncでシンプルに!
  • GraphQL Subscription(ほぼリアルタイムでのデータを購読)
  • Mutationをトリガーにしたイベントベースモード
    • スケーラブルによくあるユースケースを想定して設計
  • AppSyncの任意のデータを~スを使える
    • Lambda、DynamoDB、Elasticsearch
  • オープンで宣言的なデータ取得の仕様

コンフリクトの解消と同期

  • クラウドでのコンフリクト解消
    • サーバー優先
    • サイレントリジェクト
    • カスタムロジック(AWS Lambda)
    • バージョンチェック
    • カスタムチェック
  • オプション
    • クライアントコールバックでエラーハンドリングも可能

利用料金

  • 最初の12ヶ月は無料
  • データ転送量 + データベースに注意
  • 最新の価格はAWSの料金ページを参照

まとめ

  • スケーラブルなGraphQL APIを簡単にデプロイできます
  • AWS AppSyncを利用することでリアルタイム処理、オフライン処理を簡単にサポートできます
  • サーバーアプリケーションとクライアントアプリケーションのインターフェースをシンプルにできます

AWS Fargate

登壇者:AWSJ SA 大村幸敬氏 

概要

  • なぜコンテナが愛されているのか?
    • パッケージング
    • 配布
    • イミュータブルインフラストラクチャ
  • Amazon ECS
    • 年間アクティブユーザーの成長(2016年と比較)が450+%
    • 数億コンテナが数百万ものインスタンス上で毎週起動している
    • 2015年のGA以来リリースした機能の数は50+
  • なぜコンテナ(AmazonECS)を使いたいか?
    • アプリケーションの開発に集中したい
  • AWS Fargateは計算リソースの使い方を根本的に変える
    • インスタンス管理不要
    • タスクネイティブAPI
    • リソースベースの価格
    • 結果的に簡素で、使いやすく、強力な新しいリソースの消費モデルになる
  • AWSで本番環境利用可能
    • AWS VPCネットワークモード
    • タスク配置
    • 他のAWSサービスとの深い連携
    • ECS CLI
    • グローバル展開(2018年)
    • 強力なスケジューラー
    • オートスケーリング
    • CloudWatchメトリクス
    • ロードバランサ
  • 料金
    • 課金基準:CPUとメモリ
    • 秒単位で課金される
    • タスクリソースに対する課金(CPUとメモリはそれぞれの範囲内で独立に指定)
  • ECSとFargateのSLAはEC2と同等の99.99%
  • 世の中のKubernatesをAWSで利用しているのは63%

Amazon EKS(プレビュー)

  • 世の中のKubernates(以下:k8s)をAWSで利用しているのは63%
  • 4つの方針
    • Tenet 1:EKSはエンタープライズ企業が本番のワークロードを実行するためのプラットフォームであること
    • Tenet 2:EKSはネイティブで最新のk8sの体験を提供する
    • Tenet 3:EKSのユーザーが他のAWSサービスを使う時、シームレスな連携を実現し、不要な作業を取り除くこと
    • Tenet 4:EKSチームは積極的にk8sプロジェクトに貢献していくこと
  • FargateのEKSサポートは2018年の予定
  • ECSでもEKSでもFargateを利用できEC2インスタンスを管理しないというエクスペリエンスを提供する
LambdaとFargateの使い分け
  • イベント・ドリブン、ミリ秒単位のコンピュート、ランタイム管理をしたくない場合はLambdaを利用する。それ以外はFargate

Fargate Under the Hood

  • タスクディフェンションを登録し、これを使ってタスクを実行することができる
  • Per task ENIで動作するため、今までの利用していたVPCでのアクセス制御が可能で、Public IPをサポートしている
  • ALB又はNLBと組み合わせが可能
    • ALB/NLBのターゲットグループのtarget typeは ip とする(ECS/Fargate両方)
  • 監視についてはCloudWatchでメトリクスを確認を行うことが可能
  • PermisionはCluster、Application(Task)、Housekeepingの設定が可能

Fagate 関連セッション

  • CON333
  • CON201
  • CON404
  • CON401
  • CON402
  • youtubeで公開されている

AWS Cloud9

登壇者:AWSJ Specialist SA 福井厚氏

AWS Cloud9とは

  • リリースプロセスの4つ主なフェーズがある
    • ソース
    • ビルド
    • テスト
    • 運用
  • AWS Cloud9でできること
    • クラウドネイティブID
    • リッチエディタ、統合デバック、AWS CLIがプリインストールされている
    • 数分で利用開始可能で、ローカル開発マシンのインストールや環境構成は不要
    • EC2インスタンス- ダッシュボードを利用して、多数のAWS Cloud9環境を切り替えることができる
    • CodeStarと連携、環境構築可能

環境構築の手順

  • リージョンの選択を行う
    • 現在は、オレゴン、オハイオ、北バージニア、アイルランド、シンガポールの5つのリージョンで利用可能(東京リージョンは未展開)
    • 名前と説明を入力して次へ
  • 設定画面
    • EC2か任意のSSHにインストールするかを選択
    • インスタンスタイプを選択して、コストセービングオプションを選択
    • Hibernationの機能があり、30分触らないとEC2が停止する
    • 使っていない時は課金されないようにすることが可能
    • 設定を確認してCreate
  • 数分でAWS Cloud9環境ができる

エディット、デバッグ

  • AWSのマネジメントコンソールに接続できれば開発環境が利用できる
  • 最近のブラウザであればサポートされている(Chrome、Firefox、Edgeなど)
  • ファイルの作成
    • 拡張子によりシンタックスハイライトされる
  • 編集
    • 40近い言語でサポート
    • 自動保管機能
  • ファイルの保存
    • ⌘ + Sでの保存もできる
  • デバッグ
    • ソースコードにブレークポイントの設定をすることで任意のところで停止できる
    • ローカル変数
    • コールスタック
    • 変数のウォッチ

サーバーレスアプリケーションとの統合

  • リモートのLambdaファンクションビュー
    • ダブルクリックでリモートのLambdaファンクションをインポートすることができる
    • SAMのテンプレートを自動作成されるので、SAMの編集もできる
    • Lambdaのコードを生産性高く管理できる
  • ローカルファンクションの編集とデバッグ
    • パラメーターのペイロード
    • 実行結果

コラボレーション機能

  • 環境の共有
    • IAMユーザー毎に環境を作ることができる
    • IAMユーザーから別のIAMユーザーへShareクリックすることで共有したい相手に共有できる
    • 他のユーザーでIDEの共有をすることでコラボレーションユーザーが追加される
    • ペアプログラミング(同時編集)をリモートで行うことが可能

AWS CodeStar Integration

  • AWS CodeStarからCloud9からも構築することができるようになった

Machine Learning Update

登壇者:AWSJ Specialist SA 西谷圭介氏

  • AWSが提供するMLサービススタック
    • Serivese
    • Platform
    • Engines
    • Infrastruture
  • 今日はService群についてお話
    • Amazon Rekognition
    • Amazon Polly
    • Amazon Lex
    • Amazon Comprehend
    • Amazon Translate
    • Amazon Rekogtnition Video
    • Amazon Transcribe

Amazon Comprehend

  • 入力されたテキストに対してさまざまな分析を実施
  • 英語とスペイン語に対応
  • ユーザーは解析対象の文章を渡すことで自然言語処理をしてくれる
    • エンティティーの抽出
    • キーフレーズの抽出
    • 言語の認識
    • センチメント分析
  • バッチデータに対するトピックモデリング
    • S3に保存してあるデータに対してもできる
  • ユースケース
    • カスタマーの声を分析
      • Twitterなどのデータを読み込んでタグ付けや分類を行いRedshiftで分析することができる
    • ナレッジマネジメントと検索
      • 既存のドキュメントに対してトピック分類を行い、その結果を付与した形で新たに利用する
  • Amazon.comのカスタマーセンター等から学習している

Amazon Translate

  • 多言語翻訳サービス(プレビュー開始)
  • 深層学習に基づいた、高品質な多言語
  • バージニア北部、オハイオ、オレゴンリージョンに対応(東京は未対応)
  • 6ヶ国語で利用できる
  • Translateは翻訳することに特化したシンプルなサービス
  • ユースケース
    • ウェブサイトのローカライズ
    • ユーザー生成コンテンツをジャストインタイムで翻訳
    • コミュニケーションアプリケーションにリアルタイム翻訳機能を追加
  • チャットだけではなくヘルプデスクなどにも利用できる

Amazon Rekognition Video

  • 動画解析サービス
  • S3に蓄積された動画やライブストリーミング動画に対してさまざまな分析ができる
  • H264コーデックで、拡張子が.mp4/.movの必要あり
  • バージニア北部、オレゴン、アイルランドで提供
  • 現時点(2017/12/11)で解析できる動画の最大サイズは8GB
  • 動画に対する分析
    • 人物認識
    • 有名人認識
    • オブジェクトや動作の認識
    • 動画のモデレーション
  • 分析結果はJSONで返される。Timestampがついているのでどの時点でその認識処理が行われたかを記録されている。様甘な分析結果がJSONに入っている
  • ユースケース
    • 監視カメラで問題行動に反応
      • Kinesis Video Streamsから読み込んだ監視カメラのストリームをリアルタイムで分析して素早いアクション
    • 動画データを検索しやすく
      • ユーザーがアプロードした動画に対して定期的にタグ付けを行い、あとから簡単に検索できるようにする

Amazon Transcribe

  • 音声をテキストに変換するサービス(プレビュー開始)
  • 音声をテキストに変換する
  • リアルタイム処理だけではなくS3に置いてあるファイルも扱える
  • 英語とスペイン語に対応
  • 特徴
    • 通常音声と電話音声の両方をサポート
    • カスタム語録を登録することが可能(今後提供予定
    • 発話されたタイムスタンプと書き起こし
    • 複数話者の属性を付けられる
    • 句読点の保管にも対応し、人間に読みやすくしてくれる
  • ユースケース
    • コールセンターの音声データの可視化
    • 動画のキャプションやサブタイトルの文字起こし

AWS ML Service Portfolio

  • 映像
    • 画像認識:Amazon Rekognition
    • 動画認識:Amazon Rekognition Video
  • 音声
    • Speech-to-Text:Amazon Transcribe
    • Text-to-Speech:Amazon Polly
  • 自然言語
    • 自然言語理解:Amazon Comprehend
    • テキスト翻訳:Amazon Translate
    • チャットボット:Amazon Lex

まとめ

今回、re:Capに参加させて頂き、今回re:Inventで発表されたサービスについてより深く学ぶことができました。今回特に興味があったFargateは、既に本番で利用できるのでどんどん実戦投入していきたいと思っています!LambdaやAppSyncも積極的に利用したいなと思ったのと、普段開発環境を作っていない私には、Cloud9は非常に魅力的なサービスだと思いました。クラスメソッドでもサーバーレスのサービスを使っていきノウハウを貯めていきたいと思います!