aws re:invent 2018 サーバーレスアップデート...aws lambdaがrubyをサポート • aws...

66
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS re:Invent 2018 サーバーレスアップデート 西谷圭介 マネージャ/シニアソリューションアーキテクト アマゾン ウェブ サービス ジャパン株式会社

Upload: others

Post on 25-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS re:Invent 2018

    サーバーレスアップデート

    西谷圭介マネージャ/シニアソリューションアーキテクトアマゾン ウェブ サービス ジャパン株式会社

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    • 本資料では2018年12月13日時点のサービス内容および価格についてご説明しています。最新の情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。

    • 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。

    • 価格は税抜表記となっています。日本居住者のお客様が東京リージョンを使用する場合、別途消費税をご請求させていただきます。

    • AWS does not offer binding price quotes. AWS pricing is publicly available and is

    subject to change in accordance with the AWS Customer Agreement available at

    http://aws.amazon.com/agreement/. Any pricing information included in this document is

    provided only as an estimate of usage charges for AWS services based on certain

    information that you have provided. Monthly charges will be based on your actual use

    of AWS services, and may vary from the estimates provided.

    内容についての注意点

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Who am I ?

    Keisuke NishitaniSpecialist Solutions Architect

    Amazon Web Service Japan K.K

    @Keisuke69 Keisuke69 Keisuke69 Keisuke69Keisuke69x

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS LambdaがSLAを提供

    • AWS LambdaでService Level Agreement (SLA)を定義

    • 毎月の請求期間における月間使用可能時間割合が99.95%以上で使用できるようにするため商業的に合理的な努力をする(サービスコミットメント)

    • サービスコミットメントを満たさない場合には、サービス利用者はサービスクレジットを受け取れる• 99%未満の場合25%、99%以上99.95%未満の場合10%

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Amazon API GatewayがAWS WAFをサポート

    • Amazon API Gatewayに対して直接的にAWS WAFを有効化できるように

    • AWS WAF を Amazon API Gatewayに使用することでSQL インジェクションやクロスサイトスクリプト (XSS) などの攻撃から API を保護• ルールを使用することで、IP アドレス、地理的領域、リクエストサイズ、文字列や正規表現のパターンに基づいてウェブリクエストのフィルタリングも可能

    • 複雑なルールを作成して特定のユーザーエージェント、悪質なボット、コンテンツスクレイパーからの攻撃をブロックすることも可能

    • AWS Marketplace から入手したマネージドルールを活用すると、OWASP Top 10 セキュリティリスクや一般的な脆弱性と暴露 (CVE) といったよく見られる脅威から API を即座に保護

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Amazon SQS のFIFO キューがアジアパシフィック (東京) 使用可能に

    • Amazon Simple Queue Service (SQS) の First-in, First-out (FIFO) キューが、アジアパシフィック (東京) でも使用可能に

    • Amazon SQS FIFOキューは、基本的に標準キーと同じ機能だが順序と 1 回だけの処理をサポート

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Amazon API Gateway が段階的価格設定を発表

    • API リクエスト向けの段階的価格モデルの適用を開始• 利用するAWSアカウント全体でリージョンごとの API リクエスト数をベースにコスト削減が可能

    • 従来は月次でリージョンあたり、100 万件あたりの API リクエストに対して均一料金で課金

    • 最上位価格帯の料金でAPI リクエスト100 万件あたり 1.51 ドルから利用可能

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS Lambdaで非同期実行のペイロードサイズが2倍に

    • 128KB ⇒ 256KB

    • 非同期に実行される場合のみ

    • SNSのような大きいペイロードをサポートするサービスとシームレスに連携できるように

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS LambdaがKinesis Data Streams拡張ファンアウトとHTTP/2をサポート

    • Kinesis Data Streams (KDS) 拡張ファンアウトとHTTP/2をサポート

    • HTTP/2により、データのデリバリスピードを65%以上改善

    • 拡張ファンアウトにより、性能劣化なしに、同一ストリームの複数Lambdaファンクションを並列実行可能

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS LambdaでPython 3.7が利用可能に

    • これまでサポートされていた2.7/3.6に加え、最新メジャーリリースである3.7が利用可能に

    • Lambdaが利用可能な全てのリージョンで利用可能

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS Lambdaのコンポーネント

    • Front End Invoke• 同期呼び出し、非同期呼び出しの両方をオーケストレーション

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS Lambdaのコンポーネント

    • Front End Invoke• 同期呼び出し、非同期呼び出しの両方をオーケストレーション

    • Counting Service• 同時実行数の制限を行うための同時実行数のリージョン別のビューを提供

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS Lambdaのコンポーネント

    • Front End Invoke• 同期呼び出し、非同期呼び出しの両方をオーケストレーション

    • Counting Service• 同時実行数の制限を行うための同時実行数のリージョン別のビューを提供

    • Worker Manager• コンテナのアイドル状態とビジー状態をトラッキングし、呼び出しリクエストを利用可能なコンテナへとスケジューリング

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS Lambdaのコンポーネント

    • Front End Invoke• 同期呼び出し、非同期呼び出しの両方をオーケストレーション

    • Counting Service• 同時実行数の制限を行うための同時実行数のリージョン別のビューを提供

    • Worker Manager• コンテナのアイドル状態とビジー状態をトラッキングし、呼び出しリクエストを利用可能なコンテナへとスケジューリング

    • Worker• カスタマーのコード実行のためのセキュアな環境を提供

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS Lambdaのコンポーネント• Front End Invoke

    • 同期呼び出し、非同期呼び出しの両方をオーケストレーション

    • Counting Service• 同時実行数の制限を行うための同時実行数のリージョン別のビューを提供

    • Worker Manager• コンテナのアイドル状態とビジー状態をトラッキングし、呼び出しリクエストを利用可能なコンテナへとスケジューリング

    • Worker• カスタマーのコード実行のためのセキュアな環境を提供

    • Placement Service• カスタマー・エクスペリエンスやコールドパスレイテンシに影響を与えずにパッキングの密度を最大化するようにWorkerにサンドボックスを配置

    https://www.youtube.com/watch?v=QdzV04T_kec

    https://www.slideshare.net/AmazonWebServices/a-serverless-journey-aws-lambda-under-the-hood-srv409r1-aws-reinvent-2018

    https://www.youtube.com/watch?v=QdzV04T_kechttps://www.slideshare.net/AmazonWebServices/a-serverless-journey-aws-lambda-under-the-hood-srv409r1-aws-reinvent-2018

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    サーバレス向けのマイクロ仮想マシンテクノロジを実現するFirecrackerを発表

    • コンテナのリソース利用効率と仮想サーバのセキュリティ・独立性を兼ね備えるKVMテクノロジベースのマイクロVMテクノロジ

    • LambdaやFargateの基盤技術の一部として利用されており、大規模な運用にも耐えられる実績あり

    • 短時間の利用を想定しており約125msで起動。マイクロVMあたりわずか5MiBのメモリオーバーヘッド

    • オープンソースプロジェクトとして開発を実施https://github.com/firecracker-microvm/firecracker

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Firecrackerのよくある誤解

    • AWS Lambdaで利用されている基盤技術を公開したものではない• あくまでも利用率向上とスケーラビリティのための新規テクノロジ

    • 一部で既にFirecrackerへと移行済なのは事実だが、現時点では全てのお客様環境に適用されているわけではない• 今後順にロールアウト

    • 利用者が意識することは全くないし、意識できない、わからない

    • コールドスタートが早くなるというわけではない

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    PyCharm, IntelliJ, Visual Studio Codeでサーバレス開発を容易にAWS Toolkitsを発表

    • Python、Java、ノード、.NET など、任意のIDE および言語でのサーバーレスアプリケーションの開発、デバッグ、デプロイを可能に

    • Apache License, Version 2.0によるオープンソース

    • 現時点でPyCharm向けはGA、IntelliJとVisual Studio Code向けはデベロッパープレビューの扱いとなる

    • AWS Serverless Application Model(SAM) CLIに依存しているため、予めインストールが必要

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    PyCharmプラグインインストール

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    PyCharm AWS設定

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    PyCharm AWS New Project

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    PyCharm Sample Lambda Function

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    PyCharm Sample Lambda Test Function

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS Explorer

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Serverless App Project

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS LambdaがRubyをサポート

    • AWS LambdaのファンクションをRubyで記述することができるようになった

    • 現時点で利用可能な言語は以下の通り Python 2.7, 3.6, 3.7

    Node.js 4.3, 6.10, 8.10

    .NET Core 1.0(C#), 2.0(C#), 2,1(C#/PowerShell)

    Go 1.x

    Java 8

    Ruby

    • Lambdaが利用可能な全リージョンで一般利用開始

    Lambda Function

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS LambdaがRubyをサポート

    require 'json’

    def handler(event:, context:)

    { event: JSON.generate(event), context: JSON.generate(context.inspect) }

    end

    • --path vendor/bundleを指定してbundle install

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS LambdaがRubyをサポート

    module LambdaFunctions

    class Handler

    def self.process(event:,context:)

    "Hello!"

    end

    end

    end

    source.LambdaFunctions::Handler.process.

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    言語ランタイムを持ち込むことで好みの言語を利用するAWS LambdaでCustom Runtimesをサポート

    • Linuxで互換のランタイムを持ち込むことで、任意の言語をLambda関数を記述できるようになった

    • 新たにリリースされたRuntime APIによって可能になった。Rubyのサポートはこの方式による

    • AWSからはC++/RustをOSSでリリース https://github.com/awslabs/aws-lambda-cpp-runtime

    https://github.com/awslabs/aws-lambda-rust-runtime

    • パートナーからはPHP/Erlang/Elixir/COBOLなどが提供される予定

    https://github.com/awslabs/aws-lambda-cpp-runtimehttps://github.com/awslabs/aws-lambda-rust-runtime

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Custom Runtime

    • ファンクションに“bootstrap”と呼ばれる実行ファイルを含める必要がある• デプロイパッケージに含めてもLayerとして登録してもいい

    • bootstrap• 単純なHTTPベースのインターフェースでevent payloadを新しいLambdaの呼び出しに通知

    • 関数からのレスポンス受け取り

    • Lambdaファンクション実行時にデプロイパッケージ、もしくは指定されたLayer内にbootstrapという名前を実行する

    • 存在しなければエラーとなる

    • Layerとして登録すればRuntime管理者とRuntime利用者の責務を分離できる• 利用者はRuntimeを気にせず実装すればよい

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Custom Runtimeの作り方

    • Custom Runtimeのエントリポイントはbootstrapという名前の実行ファイル

    • bootstrap内では初期化処理を実行したのち、ファンクションの実行処理を実装する• Initialization Tasks

    • Processing Tasks

    • Processing Taskはループしてイベントを待ち受ける必要がある

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Initialization Tasks

    • 環境変数の読み取り(例)• _HANDLER

    • ファンクションで設定されたハンドラのロケーション。通常ファイル名.メソッド

    • LAMBDA_TASK_ROOT

    • ファンクションのコードを含むディレクトリ

    • AWS_LAMBDA_RUNTIME_API

    • Runtime APIのホスト名とポート

    • ファンクションの初期化• ハンドラファイルを読み込み、グローバルスコープの処理を実行する

    • エラーハンドリング• エラー発生時、initialization errorをコールし、即座に終了させる

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Processing Tasks ①

    • イベントの取得• next invocation APIをコールして次のイベントを取得

    • レスポンスボディにはイベントデータが含まれる

    • トレーシングヘッダの伝播• APIレスポンスに含まれるLambda-Runtime-Trace-IdヘッダからX-Rayのトレーシングヘッダを取得

    • _X_AMZN_TRACE_IDに値をセット

    • コンテキストオブジェクトの作成• コンテキスト情報を含むオブジェクトの作成

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Processing Tasks ②

    • ファンクションのハンドラ呼び出し• イベントとコンテキストオブジェクトをハンドラに渡す

    • レスポンスのハンドリング• レスポンスをポストするためにInvocation response APIをコール

    • エラーハンドリング• エラー発生時はinvocation errorをコール

    • クリーンアップ• 使われないリソースをリリースし、他サービスへとデータ送信するもしくは次のイベントを処理する前の追加処理を実行する

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Example#!/bin/sh

    set -euo pipefail

    # Initialization - load function handlersource $LAMBDA_TASK_ROOT/"$(echo $_HANDLER | cut -d. -f1).sh"

    # Processingwhile truedoHEADERS="$(mktemp)"# Get an eventEVENT_DATA=$(curl -sS -LD "$HEADERS" -X GET "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-

    01/runtime/invocation/next")REQUEST_ID=$(grep -Fi Lambda-Runtime-Aws-Request-Id "$HEADERS" | tr -d '[:space:]' |

    cut -d: -f2)

    # Execute the handler function from the scriptRESPONSE=$($(echo "$_HANDLER" | cut -d. -f2) "$EVENT_DATA")

    # Send the responsecurl -X POST "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-

    01/runtime/invocation/$REQUEST_ID/response" -d "$RESPONSE"done

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Custom Runtimeの使いどころ

    • Lambdaがサポートしている言語の新しいバージョンを待てない場合• 新バージョンをCustom Runtimeとして用意し、サポートされたのちに移行

    • Lambdaがサポートを打ち切った言語のバージョンを使い続けたい場合

    • AWS Lambdaでサポートされていない言語を利用したい場合

    • AWS Lambdaが提供するのはあくまでもRuntime APIであり、Runtimeそのものは自身で管理もしくはパートナー管理となる• ランタイム起因のトラブルに対するサポートは得られない

    • パートナーが提供しているものはパートナーからのサポート提供

    • 管理対象が増えることをよく考慮すること

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    関数間で共通するロジックやライブラリを参照可能にAWS Lambda Layersを発表

    • 様々なLambdaファンクションで共通利用するコンポーネントを個別に持つのではなく、Lambda Layerとして定義し参照することができるようになった

    • 複数のLayerを適用することでコールドスタートに影響する場合あり

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Lambda Layersの注意点

    1) /optの下に指定した順番で展開される• 特定のモジュールのバージョンを上書きすることも可能

    • 同じパスや、同名ファイルを使うと意図せず上書きされることに注意

    2) Layerは1つの関数で5個まで• デプロイパッケージのサイズ制限は変わらず、関数あたり非圧縮で250MBまで

    • Layerへの登録はzip or S3で登録のみ

    3) /optの下に各言語の依存を解決する固有のパスがある• Python – python, python/lib/python3.7/site-packages (site directories)

    • Node.js – nodejs/node_modules, nodejs/node8/node_modules (NODE_PATH)

    https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

    https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Layersで使えるもの

    1) 外部モジュール例えば、pythonであればpipで取得するモジュールをそのままや、node.jsのnpmのモジュールを登録

    2) 関数ではなくモジュールで登録できるご自分で作ったutilモジュールなどを関数個別に登録するのではなく、Layerとして登録することで関数のみにもっとフォーカスできる

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS LambdaがApplication Load Balancerをサポート

    • ALBのバックエンドとしてLambdaファンクションを呼び出せるようになった。つまり、Lambdaに対するHTTPエンドポイントとして機能する

    • 既存のWebアプリケーションのなかにLambdaファンクションを埋め込むことが容易に

    • ファンクションはALB経由で呼び出される前提で記述する必要がある点には注意

    • ALBとLambdaが利用可能な全リージョンで一般利用開始

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    ALB Integrationの使いどころ

    • API Gatewayが提供するAPI管理機能が不要な場合• APIキー

    • Auth

    • スロットリング

    • etc

    • HTTPによる公開を行いたい場合

    • 既存のEC2/ECS/Fargateバックエンドと同一ドメインで混在させたい場合

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    ALB Invoke Lambda

    • パスごとにLambdaファンクションを紐づけ

    • Eventとしてファンクションではmethodやquery strings, bodyの取得が可能

    • Lambdaファンクションからのレスポンス形式が定められている

    • Health checkの設定が可能• Heath checkによるfail overなどはEC2とは違うので必要かどうかは検討

    • Heath checkをすることにより定常的なInvokeが発生する

    • Web アクセスの特性上コールドスタートの対策にもなりにくい(同時に多数アクセスが見込まれるため)

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    ALBから渡されるevent{

    "body": "",

    "requestContext": {

    "elb": {

    "targetGroupArn": ”ARN-hoge"

    }

    },

    "queryStringParameters": {},

    "httpMethod": "GET",

    "headers": {

    "accept-language": "ja,en-US;q=0.9,en;q=0.8",

    "accept-encoding": "gzip",

    "x-forwarded-port": "80",

    "x-forwarded-for": ”xxx.xxx.xxx.xxx",

    "connection": "keep-alive",

    "accept": "text/html,application/hogehoge",

    "upgrade-insecure-requests": "1",

    "x-amzn-trace-id": ”TRACE-ID-Info",

    "x-imforwards": "20",

    "host": ”ALB-URI",

    "x-forwarded-proto": "http",

    "cache-control": "max-age=0",

    "user-agent": ”hogehoge"

    },

    "path": "/",

    "isBase64Encoded": false

    }

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Lambdaファンクションからのresponse形式

    Lambdaの応答の例

    {

    "statusCode": 200,

    "statusDescription": "HTTP OK",

    "isBase64Encoded": False,

    "headers": {

    "server": "my-server",

    "set-cookie": "name=value",

    "Content-Type": "text/html; charset=utf-8”

    },

    "body": "Welcome"

    }

    https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html

    • statusCodeやheaders、bodyの属性が必須でJSONで応答する

    https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    属性が足りないなど、レスポンスがおかしい場合

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    様々なサービスをプログラミングレスでつなぎ合わせるAWS Step Functions API Connectorsを発表

    • Step Functionsのステートマシンから他のAWSサービス群に対して直接操作できるようになり、Lambdaを介在させる必要がなくなった DynamoDB: 既存のテーブルからitemの取り出し、新規itemの追加

    AWS Batch: バッチジョブの開始と完了待機

    Amazon ECS/Fargate: ECSまたはFargateのタスクを実行する

    Amazon SNS: SNSトピックにメッセージをパブリッシュする

    Amazon SQS: キューにメッセージをプッシュする

    AWS Glue: ジョブを開始する

    Amazon SageMaker: 学習ジョブ、変換ジョブを開始する

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Amazon API Gateway for WebSocketをプレアナウンス

    • WebSocketを利用したリアルタイムかつ双方向通信のあるAPIをAPI Gatewayで処理可能に

    • フルマネージドでWebSocketベースのAPIを提供することが可能に

    • バックエンドとしてはAWS Lambdaをはじめ、他のAWSサービスに対応。また、EC2ベースのもや、外部のエンドポイントを利用できる

    • 提供開始時期については追って発表予定

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    AWS SAMがAWS Serverless Application Repositoryを利用してネストされたアプリケーションをデプロイ可能に

    • AWS SAMがAWS Serverless Application Repositoryと連携することで疎結合なコンポーネント群からなるサーバレスアプリケーションを構築可能に

    • コンポーネントを再利用することが可能になり、同じ処理内容を複数回書く必要がなくなった。保守の効率化やベストプラクティスの展開が容易になる

    • アプリケーションはCloudFormationのネストされたスタックとしてデプロイされる。SAMテンプレートでAWS:Serverless:Applicationを指定すれば良い

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Happy Coding Dojo

    • ソリューションアーキテクト3人がお届けする新たなライブ配信• 今後月に1回くらいのペースで配信予定

    • ウェブ開発、プログラミング、モバイル、AWSにフォーカス• Microservicesとか世間の流行りなどアプリケーション開発にまつわる話全般

    • アプリ開発者向けの新機能や新サービスをライブコーディングなど交えつつ紹介

    • 視聴者の皆さんからの質問やコメントを拾いつつインタラクティブにライブでお届け

    • 2019年1月23日(水)18:00 ~ 19:00

    #HappyCodingDojo

  • © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.

    Meguro.dev #5

    • AWSを使ってアプリ開発をするデベロッパーが集まるコミュニティ

    • 少人数でコードを書いたり、もくもくしたり、モブプロしたり、実際に手を動かす

    • 2018年12月14日(金)に#5としてre:InventのrecapならびにLT大会を開催• 場所はAWS Loft

    • LT大会はre:Inventでの発表を元にした内容で公募

    https://meguro-dev.connpass.com/event/110965/

  • Thank you!

    © 2018, Amazon Web Services, Inc. or its affiliates. All rights

    reserved.