SlideShare una empresa de Scribd logo
1 de 42
AWS で作る
Serverless ASP.NET Core 2.x WebApp
はじめの一歩
.NET Developer AWS Community
2019/4/22
Shinya Terasaki
Shaxware Inc.
本日の目標
AWSは怖くないよ!
About Speaker
• 寺崎 真哉
• コンシューマ向け市販ソフトウエアの開発
• モバイルアプリケーションの研究開発
• 立体視、AR/VRなどの研究開発
• デスクトップ~組み込み~モバイル~クラウド全般のソフトウ
エア開発
• Windows/Win32, Android/Xamarin, C/C++, C#, Scala,
Quantum Computing
About Company
• Shaxware Inc.
• スマートスピーカー向けソフトウエア開発
• これまたサーバーレス
• スマートスピーカー向けニュース配信プラット
フォーム Piconews
• 三遠ネオフェニックス ~公式ニュース~
なぜサーバーレスなのか
Amazon Virtual Private Cloud
• Amazon Virtual Private Cloud (Amazon VPC) では、AWS クラウドの論
理的に分離されたセクションをプロビジョニングし、お客様が定義した仮
想ネットワーク内の AWS リソースを起動することができます。自分の IP
アドレス範囲の選択、サブネットの作成、ルートテーブルやネットワーク
ゲートウェイの設定など、仮想ネットワーキング環境を完全に制御できま
す。VPC では、リソースやアプリケーションに安全かつ簡単にアクセス
できるよう、IPv4 と IPv6 を両方とも使用できます。
• できます=自分でやれ
https://aws.amazon.com/jp/vpc/
なぜサーバーレスなのか
サーバーレス
• サーバーの管理が不要
• 柔軟性のあるスケーリング
• 価値に対する支払い
• 高可用性の自動化
VPC
• サーバーの管理が必要
• 自分でスケーリング設定
• 立ち上げっぱなし
• 自分で耐障害対策
https://aws.amazon.com/jp/serverless/
アプリケーション開発だけしたい
×No VPC settings
×No Internet Gateway settings
×No TPC/UDP Port settings
×No Subnet definitions
×No Routings
×No Security Group settings
Serverless ASP.NET Core 2.1
WebApp
開発に必要なもの
• AWS アカウント
• Visual Studio 2017
• AWS Toolkit for Visual Studio 2017 (and 2019)
AWS Toolkit for Visual Studio
https://aws.amazon.com/jp/visualstudio/
プロジェクトテンプレート
ASP.NET Core Web App
Publish to AWS Lambda...
Publish to AWS
https://aws.amazon.com/jp/blogs/developer/serverless-asp-net-core-2-0-applications/
このアプリの名前
ビルドしたパッケー
ジをアップロードす
る先
2.1を選ぶ
AWSのアカウント
プロファイル
リージョンは普段は東京 (ap-
northeast-1) だと思われ
Publish to AWS
• Doing...
• Upload .zip to S3
• CloudFormation
• IAM role
• Lambda
• API Gateway
• Command line
• dotnet lambda deploy-
serverless
https://aws.amazon.com/jp/blogs/developer/serverless-asp-net-core-2-0-applications/
WebApp のアドレス
あっさりWebサーバが立ちました
https://aws.amazon.com/jp/blogs/developer/serverless-asp-net-core-2-0-applications/
アドレスは API Gateway  ステージ から確認できます
サーバーレスの仕組み
仕組みについてちょっとだけ
Amazon API Gateway AWS Lambda AWS Identity and Access
Management (IAM)
AWS CloudFormation
インターネット接続
ASP.NET Core WebApp
Roleを割り当て
デプロイ
Lambdaについてちょっとだけ
• インスタンスタイプみたいなものはありません
• メモリを多く割り当てるとパフォーマンスが上がります
• Amazon Linuxで動いてる
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/current-supported-versions.html
今回のコスト
• S3
• 無料枠内
• API Gateway
• 無料枠内
• Lambda
• 無料枠内
• CloudFormation
• 無料
• Identity and Access
Management (IAM)
• 無料
はまりどころ
はまりどころ
• オートスケーリング
• ファイルアップロード
• 最大リクエスト・レスポンスサイズ
• タイムアウト時間
• 実行権限
オートスケーリング
Lambdaはオートスケーリングする
cookie
WebApp
暗号化キーは共通化する
WebApp
cookie
https://github.com/hotchkj/AspNetCore.DataProtection.Aws
ファイルアップロード
HTTPリクエスト・レスポンスはJSON化
されている
http protocol JSON
テキスト扱いされている
multipart/form-dataもテキスト扱いされる
バイナリファイルをアップロードしてもテキスト扱い
API Gatewayの設定で、multipart/form-dataを
バイナリメディアタイプとして登録する
最大リクエスト・レスポンス
サイズ
Lambdaのペイロードの最大サイズは6MB
http protocol JSON
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/limits.html
ここの最大サイズが6MB
S3に直接アップロードする
• 大きなファイルはS3に直接アップロードする
• 署名付きオブジェクトURLを生成し、PUTする
• 大きなファイルはS3からダウンロードする
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/ShareObjectPreSignedURLDotNetSDK.html
タイムアウト時間
API Gatewayは29秒でタイムアウトする
http protocol JSON
タイムアウトは最大15分タイムアウトは最大29秒
実行権限
デプロイ後のIAM Roleの権限に注意
ローカル実行 デプロイ後
AWS Account IAM Role
必要な権限を与えておく
はまりどころのまとめ
• オートスケーリング
• マルチインスタンスの運用で考える
• ファイルアップロード
• バイナリファイルをアップロードする場合の設定に注意
• 最大リクエスト・レスポンスサイズ
• 大きなリクエスト・レスポンスはS3直接で
• タイムアウト時間
• 29秒しかない
• 実行権限
• デプロイ後に必要な権限を与えておいてね
まとめ
Serverless WebAppに向かないもの
• RDBを使うもの
• 最大同時接続数をあっさり超えちゃうかも
• スロットリングできるけど、サーバーレスっぽくなくなっちゃう
• VPCを使うもの
• 使っちゃいけないわけではないが、レイテンシがある
https://www.keisuke69.net/entry/2017/06/21/121501
Serverless WebAppに向くもの
• 使用頻度が少ないもの
• 一時的なもの
• RDB/VPCを使わないもの
総まとめ
• ASP.NET Core WebAppはAWS上にサーバーレスであっという
間に立ち上げることができる
• シングルインスタンスでの運用とは異なる点に注意
• ファイルアップロード機能や大きなレスポンスを返す際には注意
• VPC必須の業務アプリなどで使う場合はタイムアウトに注意
コンタクト先
• Company
• http://www.shaxware.com/
• Speaker
• Shinya.Terasaki@shaxware.com
• https://www.facebook.com/sterasaki
• https://twitter.com/ShinyaTerasaki
• https://www.linkedin.com/in/shinyaterasaki/

Más contenido relacionado

La actualidad más candente

[AWS re:invent 2013 Report] Amazon AppStream
[AWS re:invent 2013 Report] Amazon AppStream[AWS re:invent 2013 Report] Amazon AppStream
[AWS re:invent 2013 Report] Amazon AppStream
Amazon Web Services Japan
 
モバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャモバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャ
Rikitake Oohashi
 
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
都元ダイスケ Miyamoto
 

La actualidad más candente (20)

【IVS CTO Night & Day】Networking Technology
【IVS CTO Night & Day】Networking Technology【IVS CTO Night & Day】Networking Technology
【IVS CTO Night & Day】Networking Technology
 
JAWS DAYS 2015
JAWS DAYS 2015JAWS DAYS 2015
JAWS DAYS 2015
 
AWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYSAWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYS
 
[AWS re:invent 2013 Report] Amazon AppStream
[AWS re:invent 2013 Report] Amazon AppStream[AWS re:invent 2013 Report] Amazon AppStream
[AWS re:invent 2013 Report] Amazon AppStream
 
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
 
AWSを使って沖縄から世界へ (JAWS DAYS 2015 A-1 GP LT大会)
AWSを使って沖縄から世界へ (JAWS DAYS 2015 A-1 GP LT大会)AWSを使って沖縄から世界へ (JAWS DAYS 2015 A-1 GP LT大会)
AWSを使って沖縄から世界へ (JAWS DAYS 2015 A-1 GP LT大会)
 
Aws amplify studioが変えるフロントエンド開発の未来とは v2
Aws amplify studioが変えるフロントエンド開発の未来とは v2Aws amplify studioが変えるフロントエンド開発の未来とは v2
Aws amplify studioが変えるフロントエンド開発の未来とは v2
 
Cloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイ
Cloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイCloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイ
Cloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイ
 
アンチパターンで気づくAWS Well-Architected Framework入門編 信頼性の柱 総集編
アンチパターンで気づくAWS Well-Architected Framework入門編 信頼性の柱 総集編アンチパターンで気づくAWS Well-Architected Framework入門編 信頼性の柱 総集編
アンチパターンで気づくAWS Well-Architected Framework入門編 信頼性の柱 総集編
 
エンジニアの為のAWS実践講座
エンジニアの為のAWS実践講座エンジニアの為のAWS実践講座
エンジニアの為のAWS実践講座
 
地方のユーザとクラウド
地方のユーザとクラウド地方のユーザとクラウド
地方のユーザとクラウド
 
IoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレスIoT(Bluetooth mesh) × サーバーレス
IoT(Bluetooth mesh) × サーバーレス
 
AWS amplify studioが変えるフロントエンド開発の未来とは
AWS amplify studioが変えるフロントエンド開発の未来とはAWS amplify studioが変えるフロントエンド開発の未来とは
AWS amplify studioが変えるフロントエンド開発の未来とは
 
ADC MEETUP 01
ADC MEETUP 01ADC MEETUP 01
ADC MEETUP 01
 
モバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャモバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャ
 
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
 
NW-JAWS x Tech-on勉強会:AWS Transit Gateway で広がる ネットワークアーキテクチャ
NW-JAWS x Tech-on勉強会:AWS Transit Gateway で広がるネットワークアーキテクチャNW-JAWS x Tech-on勉強会:AWS Transit Gateway で広がるネットワークアーキテクチャ
NW-JAWS x Tech-on勉強会:AWS Transit Gateway で広がる ネットワークアーキテクチャ
 
AWS管理を自動化する奥義
AWS管理を自動化する奥義AWS管理を自動化する奥義
AWS管理を自動化する奥義
 
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
 
Mobile Hubで変わる、アプリ開発最前線
Mobile Hubで変わる、アプリ開発最前線Mobile Hubで変わる、アプリ開発最前線
Mobile Hubで変わる、アプリ開発最前線
 

Similar a AWS で作る Serverless ASP.NET Core 2.x WebApp はじめの一歩

AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシングAWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
江藤 武司
 
Aws seminar-tokyo dan-jp-final-publish
Aws seminar-tokyo dan-jp-final-publishAws seminar-tokyo dan-jp-final-publish
Aws seminar-tokyo dan-jp-final-publish
awsadovantageseminar
 

Similar a AWS で作る Serverless ASP.NET Core 2.x WebApp はじめの一歩 (20)

AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシングAWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
 
Aws dan jp-final-publish
Aws dan jp-final-publishAws dan jp-final-publish
Aws dan jp-final-publish
 
Aws seminar-tokyo dan-jp-final-publish
Aws seminar-tokyo dan-jp-final-publishAws seminar-tokyo dan-jp-final-publish
Aws seminar-tokyo dan-jp-final-publish
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
 
AWSクラウドデザインパターン - JEITA講演 -
AWSクラウドデザインパターン - JEITA講演 - AWSクラウドデザインパターン - JEITA講演 -
AWSクラウドデザインパターン - JEITA講演 -
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
 
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
 
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
 
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayerSoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
 
OpenWhisk Serverless への期待
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampインフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
 
Scala: Mobile Backend on AWS
Scala: Mobile Backend on AWSScala: Mobile Backend on AWS
Scala: Mobile Backend on AWS
 
モバイル開発者から見た サーバーレスアーキテクチャ
モバイル開発者から見た サーバーレスアーキテクチャモバイル開発者から見た サーバーレスアーキテクチャ
モバイル開発者から見た サーバーレスアーキテクチャ
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
 
AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)
 
アマゾンのゲーム関連ソリューションを活用してゲームの開発力・商品力の底上げを! / GTMF2019
アマゾンのゲーム関連ソリューションを活用してゲームの開発力・商品力の底上げを! / GTMF2019アマゾンのゲーム関連ソリューションを活用してゲームの開発力・商品力の底上げを! / GTMF2019
アマゾンのゲーム関連ソリューションを活用してゲームの開発力・商品力の底上げを! / GTMF2019
 
Serverless for VUI
Serverless for VUIServerless for VUI
Serverless for VUI
 
これからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしようこれからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしよう
 

AWS で作る Serverless ASP.NET Core 2.x WebApp はじめの一歩