SlideShare a Scribd company logo
サーバーレスで
ガチ本番運用までやってるお話し
2016/11/16
株式会社サーバーワークス
クラウドインテグレーション部 技術4課
永田 明
Page: 2 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
自己紹介
株式会社サーバーワークス
京都事業所(自称)
Page: 3 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
自己紹介(コミュニティ)
メンター募集中!
http://coderdojo-nagaokakyo.doorkeeper.jp
3
CoderDojo高槻を設立したい人も
募集中!!
Page: 4 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
2. API Gatewayのあれこれ
本日お話ししたいこと
サーバーレスで本番サービスを開発・運用してみて、
• 事前に知っておきたかったこと
• (知ってたけど)あらためて痛感したこと
Content Index
Page: 5 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
SECTION 作ったサービス1
API Gatewayのあれこれ
Lambdaのあれこれ
本番運用での障害あれこれ
最後に
SECTION 2
SECTION 3
SECTION 4
SECTION 5
Content Index
Page: 6 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
SECTION 作ったサービス1
API Gatewayのあれこれ
Lambdaのあれこれ
本番運用での障害あれこれ
最後に
SECTION 2
SECTION 3
SECTION 4
SECTION 5
Page: 7 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
1. 作ったサービス
デジタルコンテンツ販売サービスの販売管理API
• 開発スピード、運用の省力化を追求するため、サーバーレスで開発
• アカウント管理 / 購入管理 / ライセンス管理等の機能をWEB-APIで提供
• Serverless Frameworkは当時Beta版だったので不採用
Page: 8 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
みんな大好きEC2で構築したほうが
無難ちゃうん・・
Content Index
Page: 9 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
SECTION 作ったサービス1
API Gatewayのあれこれ
Lambdaのあれこれ
本番運用での障害あれこれ
最後に
SECTION 2
SECTION 3
SECTION 4
SECTION 5
Page: 10 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
2. API Gatewayのあれこれ
認証の仕組みは自前で実装
• API Keyを認証に使うのはNG
• 自前で実装
• 接続元のIPアドレス制限
• これも自前で実装
Page: 11 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
2. API Gatewayのあれこれ
環境変数をどこにもつか
• 教科書どおり『Stage Variables』を使う
• RDS / Redisのエンドポイント、接続パスワード等の保持に利用
• 但し、Stage Variablesには利用文字制限あり。例えば、ランダムパ
スワード文字列がそのまま使えない!!
Page: 12 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
2. API Gatewayのあれこれ
30秒ルール
• API Gatewayのタイムアウトは30秒
• Lambdaのタイムアウトを延ばしても、API Gatewayで切られちゃう
• 但しLambdaは自身のタイムアウトまで走り続ける。更新系処理は
Lambdaのタイムアウトを最大まで延ばしておいたほうが無難
• 重い処理は非同期で
• Lambdaが最大のパフォーマンスを出せるようチューニングしておく
(後述)
Page: 13 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
2. API Gatewayのあれこれ
呼び出し元で、適切にリトライしてる??
https://docs.aws.amazon.com/apigateway/api-reference/handling-errors/
• API Gateway推奨のリトライ仕様がある
Page: 14 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
2. API Gatewayのあれこれ
第3者機関によるセキュリティ診断は不可
• API Gatewayに対する第3者機関によるセキュリティ診断は許可され
ていない!!
• 制限事項として、お客さまへ事前説明ができたら◎。
Content Index
Page: 15 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
SECTION 作ったサービス1
API Gatewayのあれこれ
Lambdaのあれこれ
本番運用での障害あれこれ
最後に
SECTION 2
SECTION 3
SECTION 4
SECTION 5
Page: 16 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
3. Lambdaのあれこれ
VPC使う??
• VPC内に構築されたLambdaファンクションはインターネットにアクセスできない
• つまり、、Lambdaファンクション内でAWS SDKが使えない
• 実行中のLambdaファンクションのDescriptionも取得できない
• 『NAT Gateway』or『NATインスタンス』が必要
Page: 17 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
3. Lambdaのあれこれ
デプロイどうする?
ServerlessFrameworkを採用できなかったのでスクリプトを実装
1. 開発環境用の設定ファイルを削除
2. pipパッケージをアプリケーションルート以下にインストール
pip install -r requirements.txt -t ./vendored/
3. デプロイ用のZipファイルを作成
4. S3バケットにZipファイルをアップロード
5. Lambdaファンクションにデプロイ(Aliasの参照先を変更)
Page: 18 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
3. Lambdaのあれこれ
API GWを使わないLambdaでは、環境変数をどこにもつか
• 案1)LambdaファンクションのDescriptionにConfigを値記載
• Lambdaファンクションが複数あると設定値が重複分散することに
• VPC内にLambdaファンクションがあると、インターネットアクセ
スができないためDescriptionがファンクションから参照できない
• 案2)S3に独自Configファイルを配置
• VPC内にLambdaファンクションがある場合、VPCエンドポイント
を利用することでS3アクセスを可能にした
• Lambdaファンクション起動の度にS3アクセスが発生してしまう
Page: 19 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
3. Lambdaのあれこれ
デプロイZipファイルのサイズと実行の遅延
ソースコードや、利用するライブラリ等が増えると、その分Zipファイルのサイズが大き
くなる。Lambdaファンクションは実行時にZipファイルを展開をするので、処理のスター
トがサイズと比例して遅くなる。
数分以内に再実行された際は、再利用されるので速い。
• 開発環境でしか使わないライブラリはZipに含めない
• nose
• python-lambda-local
Page: 20 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
3. Lambdaのあれこれ
バージョン管理
Page: 21 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
3. Lambdaのあれこれ
ロググループと監視
• すべてのAliaseのログが、ひとつのロググループに出力されてしまう。
• LoggerにAliase名も出力させるよう改訂し、Aliase名+監視対象文字
列で検知させる。
Content Index
Page: 22 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
SECTION 作ったサービス1
API Gatewayのあれこれ
Lambdaのあれこれ
本番運用での障害あれこれ
最後に
SECTION 2
SECTION 3
SECTION 4
SECTION 5
Page: 23 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
4. 本番運用での障害あれこれ
軽い処理なのにタイムアウトエラーだと!?
軽い処理のLambdaファンクションなのに、30秒で終わらずに、API
GatewayがHTTPステータス502を返すことがある!?
• Lambdaファンクションは、コンテナの初回利用時、(特に、VPC内に設置された
Lambdaファンクションの場合にはENIの生成に)時間を要することがある。
• メモリの増加やパッケージサイズの縮小、クライアントからのリトライ等で対処する
しかない。
Page: 24 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
4. 本番運用での障害あれこれ
Lambdaファンクションが実行されない!?
Lambdaファンクションが実行されずに、API GatewayがHTTPステー
タス400を返すことがある!?
• リクエストのBODYのデータサイズが大きくて、API Gatewayでのマッピング処理に
時間がかかった場合に発生するらしい
Page: 25 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
4. 本番運用での障害あれこれ
予期せぬエラーな・・・
API Gateway から Lambda function の呼び出しにおいて「An error
occurred and the request cannot be processed.」が発生!?
Content Index
Page: 26 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
SECTION 作ったサービス1
API Gatewayのあれこれ
Lambdaのあれこれ
本番運用での障害あれこれ
最後に
SECTION 2
SECTION 3
SECTION 4
SECTION 5
Page: 27 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
枯れてないし、制約も多い
Page: 28 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
運用では、手間要らず
Page: 29 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
5. 最後に
サーバーワークスは開発しない!?
AWSインフラに特化したCI業から、
AWS専業屋にしかできない新しいCI業へ。
Page: 30 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
サーバーレスで構築してみたら
ええんちゃう!?
Page: 31 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved.
END

More Related Content

What's hot

20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
Amazon Web Services Japan
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
Amazon Web Services Japan
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
 
データ活用を加速するAWS分析サービスのご紹介
データ活用を加速するAWS分析サービスのご紹介データ活用を加速するAWS分析サービスのご紹介
データ活用を加速するAWS分析サービスのご紹介
Amazon Web Services Japan
 
AWSからのメール送信
AWSからのメール送信AWSからのメール送信
AWSからのメール送信
Amazon Web Services Japan
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
ssuser868e2d
 
Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオンAmazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
 
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
Amazon Web Services Japan
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway 20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway
Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
Amazon Web Services Japan
 
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
AWS Black Belt Online Seminar 2017 Amazon ElastiCacheAWS Black Belt Online Seminar 2017 Amazon ElastiCache
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
Amazon Web Services Japan
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
Amazon Web Services Japan
 
Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料
Amazon Web Services Japan
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
Amazon Web Services Japan
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
 
20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync
Amazon Web Services Japan
 

What's hot (20)

20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
データ活用を加速するAWS分析サービスのご紹介
データ活用を加速するAWS分析サービスのご紹介データ活用を加速するAWS分析サービスのご紹介
データ活用を加速するAWS分析サービスのご紹介
 
AWSからのメール送信
AWSからのメール送信AWSからのメール送信
AWSからのメール送信
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
 
Amazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオンAmazon Athena 初心者向けハンズオン
Amazon Athena 初心者向けハンズオン
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway 20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
 
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
 
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
AWS Black Belt Online Seminar 2017 Amazon ElastiCacheAWS Black Belt Online Seminar 2017 Amazon ElastiCache
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
 
Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 
20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync
 

Similar to サーバーレスで ガチ本番運用までやってるお話し

技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
Makoto Haruyama
 
20140404 vyatta users Group / REST API解説
20140404 vyatta users Group / REST API解説20140404 vyatta users Group / REST API解説
20140404 vyatta users Group / REST API解説Yukihiro Kikuchi
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
Hiraku Komuro
 
Internet of Toilet / Jaws festa 2016
Internet of Toilet / Jaws festa 2016Internet of Toilet / Jaws festa 2016
Internet of Toilet / Jaws festa 2016
Godai Nakamura
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
史識 川原
 
IBM Developer Dojo Online 2019 #11 OpenShift
IBM Developer Dojo Online 2019 #11 OpenShift IBM Developer Dojo Online 2019 #11 OpenShift
IBM Developer Dojo Online 2019 #11 OpenShift
Daisuke Hiraoka
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来
Syuichi Murashima
 
CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)
Shin Matsumoto
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
Takeshi Morikawa
 
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
Amazon Web Services Japan
 
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用Abe Junichiro
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019
昌桓 李
 
【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend
史識 川原
 
S&B Summit2015 SOFTLAYERクラウドデザインパターン
S&B Summit2015  SOFTLAYERクラウドデザインパターンS&B Summit2015  SOFTLAYERクラウドデザインパターン
S&B Summit2015 SOFTLAYERクラウドデザインパターン
Maho Takara
 
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
日本Javaユーザーグループ
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
 
Idcfクラウドで始める構築自動化
Idcfクラウドで始める構築自動化Idcfクラウドで始める構築自動化
Idcfクラウドで始める構築自動化
智之 大野
 

Similar to サーバーレスで ガチ本番運用までやってるお話し (20)

技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
 
20140404 vyatta users Group / REST API解説
20140404 vyatta users Group / REST API解説20140404 vyatta users Group / REST API解説
20140404 vyatta users Group / REST API解説
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
10th jan 2013_miyazaki
10th jan 2013_miyazaki10th jan 2013_miyazaki
10th jan 2013_miyazaki
 
Internet of Toilet / Jaws festa 2016
Internet of Toilet / Jaws festa 2016Internet of Toilet / Jaws festa 2016
Internet of Toilet / Jaws festa 2016
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
 
IBM Developer Dojo Online 2019 #11 OpenShift
IBM Developer Dojo Online 2019 #11 OpenShift IBM Developer Dojo Online 2019 #11 OpenShift
IBM Developer Dojo Online 2019 #11 OpenShift
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来
 
CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
 
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
 
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019
 
【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend
 
S&B Summit2015 SOFTLAYERクラウドデザインパターン
S&B Summit2015  SOFTLAYERクラウドデザインパターンS&B Summit2015  SOFTLAYERクラウドデザインパターン
S&B Summit2015 SOFTLAYERクラウドデザインパターン
 
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
Idcfクラウドで始める構築自動化
Idcfクラウドで始める構築自動化Idcfクラウドで始める構築自動化
Idcfクラウドで始める構築自動化
 

Recently uploaded

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 

Recently uploaded (9)

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 

サーバーレスで ガチ本番運用までやってるお話し

  • 2. Page: 2 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 自己紹介 株式会社サーバーワークス 京都事業所(自称)
  • 3. Page: 3 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 自己紹介(コミュニティ) メンター募集中! http://coderdojo-nagaokakyo.doorkeeper.jp 3 CoderDojo高槻を設立したい人も 募集中!!
  • 4. Page: 4 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 2. API Gatewayのあれこれ 本日お話ししたいこと サーバーレスで本番サービスを開発・運用してみて、 • 事前に知っておきたかったこと • (知ってたけど)あらためて痛感したこと
  • 5. Content Index Page: 5 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. SECTION 作ったサービス1 API Gatewayのあれこれ Lambdaのあれこれ 本番運用での障害あれこれ 最後に SECTION 2 SECTION 3 SECTION 4 SECTION 5
  • 6. Content Index Page: 6 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. SECTION 作ったサービス1 API Gatewayのあれこれ Lambdaのあれこれ 本番運用での障害あれこれ 最後に SECTION 2 SECTION 3 SECTION 4 SECTION 5
  • 7. Page: 7 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 1. 作ったサービス デジタルコンテンツ販売サービスの販売管理API • 開発スピード、運用の省力化を追求するため、サーバーレスで開発 • アカウント管理 / 購入管理 / ライセンス管理等の機能をWEB-APIで提供 • Serverless Frameworkは当時Beta版だったので不採用
  • 8. Page: 8 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. みんな大好きEC2で構築したほうが 無難ちゃうん・・
  • 9. Content Index Page: 9 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. SECTION 作ったサービス1 API Gatewayのあれこれ Lambdaのあれこれ 本番運用での障害あれこれ 最後に SECTION 2 SECTION 3 SECTION 4 SECTION 5
  • 10. Page: 10 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 2. API Gatewayのあれこれ 認証の仕組みは自前で実装 • API Keyを認証に使うのはNG • 自前で実装 • 接続元のIPアドレス制限 • これも自前で実装
  • 11. Page: 11 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 2. API Gatewayのあれこれ 環境変数をどこにもつか • 教科書どおり『Stage Variables』を使う • RDS / Redisのエンドポイント、接続パスワード等の保持に利用 • 但し、Stage Variablesには利用文字制限あり。例えば、ランダムパ スワード文字列がそのまま使えない!!
  • 12. Page: 12 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 2. API Gatewayのあれこれ 30秒ルール • API Gatewayのタイムアウトは30秒 • Lambdaのタイムアウトを延ばしても、API Gatewayで切られちゃう • 但しLambdaは自身のタイムアウトまで走り続ける。更新系処理は Lambdaのタイムアウトを最大まで延ばしておいたほうが無難 • 重い処理は非同期で • Lambdaが最大のパフォーマンスを出せるようチューニングしておく (後述)
  • 13. Page: 13 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 2. API Gatewayのあれこれ 呼び出し元で、適切にリトライしてる?? https://docs.aws.amazon.com/apigateway/api-reference/handling-errors/ • API Gateway推奨のリトライ仕様がある
  • 14. Page: 14 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 2. API Gatewayのあれこれ 第3者機関によるセキュリティ診断は不可 • API Gatewayに対する第3者機関によるセキュリティ診断は許可され ていない!! • 制限事項として、お客さまへ事前説明ができたら◎。
  • 15. Content Index Page: 15 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. SECTION 作ったサービス1 API Gatewayのあれこれ Lambdaのあれこれ 本番運用での障害あれこれ 最後に SECTION 2 SECTION 3 SECTION 4 SECTION 5
  • 16. Page: 16 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 3. Lambdaのあれこれ VPC使う?? • VPC内に構築されたLambdaファンクションはインターネットにアクセスできない • つまり、、Lambdaファンクション内でAWS SDKが使えない • 実行中のLambdaファンクションのDescriptionも取得できない • 『NAT Gateway』or『NATインスタンス』が必要
  • 17. Page: 17 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 3. Lambdaのあれこれ デプロイどうする? ServerlessFrameworkを採用できなかったのでスクリプトを実装 1. 開発環境用の設定ファイルを削除 2. pipパッケージをアプリケーションルート以下にインストール pip install -r requirements.txt -t ./vendored/ 3. デプロイ用のZipファイルを作成 4. S3バケットにZipファイルをアップロード 5. Lambdaファンクションにデプロイ(Aliasの参照先を変更)
  • 18. Page: 18 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 3. Lambdaのあれこれ API GWを使わないLambdaでは、環境変数をどこにもつか • 案1)LambdaファンクションのDescriptionにConfigを値記載 • Lambdaファンクションが複数あると設定値が重複分散することに • VPC内にLambdaファンクションがあると、インターネットアクセ スができないためDescriptionがファンクションから参照できない • 案2)S3に独自Configファイルを配置 • VPC内にLambdaファンクションがある場合、VPCエンドポイント を利用することでS3アクセスを可能にした • Lambdaファンクション起動の度にS3アクセスが発生してしまう
  • 19. Page: 19 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 3. Lambdaのあれこれ デプロイZipファイルのサイズと実行の遅延 ソースコードや、利用するライブラリ等が増えると、その分Zipファイルのサイズが大き くなる。Lambdaファンクションは実行時にZipファイルを展開をするので、処理のスター トがサイズと比例して遅くなる。 数分以内に再実行された際は、再利用されるので速い。 • 開発環境でしか使わないライブラリはZipに含めない • nose • python-lambda-local
  • 20. Page: 20 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 3. Lambdaのあれこれ バージョン管理
  • 21. Page: 21 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 3. Lambdaのあれこれ ロググループと監視 • すべてのAliaseのログが、ひとつのロググループに出力されてしまう。 • LoggerにAliase名も出力させるよう改訂し、Aliase名+監視対象文字 列で検知させる。
  • 22. Content Index Page: 22 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. SECTION 作ったサービス1 API Gatewayのあれこれ Lambdaのあれこれ 本番運用での障害あれこれ 最後に SECTION 2 SECTION 3 SECTION 4 SECTION 5
  • 23. Page: 23 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 4. 本番運用での障害あれこれ 軽い処理なのにタイムアウトエラーだと!? 軽い処理のLambdaファンクションなのに、30秒で終わらずに、API GatewayがHTTPステータス502を返すことがある!? • Lambdaファンクションは、コンテナの初回利用時、(特に、VPC内に設置された Lambdaファンクションの場合にはENIの生成に)時間を要することがある。 • メモリの増加やパッケージサイズの縮小、クライアントからのリトライ等で対処する しかない。
  • 24. Page: 24 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 4. 本番運用での障害あれこれ Lambdaファンクションが実行されない!? Lambdaファンクションが実行されずに、API GatewayがHTTPステー タス400を返すことがある!? • リクエストのBODYのデータサイズが大きくて、API Gatewayでのマッピング処理に 時間がかかった場合に発生するらしい
  • 25. Page: 25 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 4. 本番運用での障害あれこれ 予期せぬエラーな・・・ API Gateway から Lambda function の呼び出しにおいて「An error occurred and the request cannot be processed.」が発生!?
  • 26. Content Index Page: 26 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. SECTION 作ったサービス1 API Gatewayのあれこれ Lambdaのあれこれ 本番運用での障害あれこれ 最後に SECTION 2 SECTION 3 SECTION 4 SECTION 5
  • 27. Page: 27 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 枯れてないし、制約も多い
  • 28. Page: 28 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 運用では、手間要らず
  • 29. Page: 29 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. 5. 最後に サーバーワークスは開発しない!? AWSインフラに特化したCI業から、 AWS専業屋にしかできない新しいCI業へ。
  • 30. Page: 30 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. サーバーレスで構築してみたら ええんちゃう!?
  • 31. Page: 31 CONFIDENTIALCopyright © Serverworks Co.,Ltd. All Rights Reserved. END