SlideShare a Scribd company logo
1 of 134
Download to read offline
サーバーレスの基本と
CI/CD構築 & 運⽤
システムは動いてからが本番だ
2019年11⽉1⽇
藤井元貴
スライドは後で⼊⼿することが出来ますので
発表中の内容をメモする必要はありません。
写真撮影をする場合は
フラッシュ・シャッター⾳が出ないようにご配慮ください
Attention
#cmdevio
#cmdevio3
3
ぜひ、ツイートお願いします!😃
#cmdevio
#cmdevio3
#cmdevio
#cmdevio3
4
⾃⼰紹介
藤井 元貴
クラスメソッド株式会社(2019年1⽉〜)
CX事業本部‧サーバーサイドエンジニア
前職は主に、組み込み系のエンジニア
変わった資格?
無⼈航空機操縦技能証明証
無⼈航空機安全運⾏管理証明証
↑⼀般社団法⼈⽇本UAS産業振興協議会(JUIDA)発⾏
簡単な質問です
#cmdevio
#cmdevio3
6
質問1
Lambdaを使ったことは?
(プライベート、お仕事問わず)
" 🙋
#cmdevio
#cmdevio3
7
質問2
構成管理ツールを使ったことは?
CloudFormation
AWS SAM
AWS CDK
Serverless Framework
など
" 🙋
#cmdevio
#cmdevio3
8
質問3
CI/CDしてますか?
(サーバーレスに限らず)
" 🙋
#cmdevio
#cmdevio3
9
ちょっと脱線します(昔々あるところに……)
プライベートで、スマホアプリを作っています
⽇々データを登録する系(体重みたいな)
機種変更で貯めたデータがリセットされるのツライ……
データ移⾏の仕組みを作りたいけど、
⾃分で作るの超⼤変そう
サーバー⽤意?
そもそもAPIってどう作るの?
データベースは何をどうするの??
#cmdevio
#cmdevio3
10
ちょっと脱線します(昔々あるところに……)
AWSのサービスを使えば簡単にできそう、と知る
Lambda
DynamoDB
API Gateway
Simple Storage
Service (S3)
#cmdevio
#cmdevio3
11
ちょっと脱線します(昔々あるところに……)
実際に作れた!!!
でも……
画⾯ポチポチ
CI/CDなし
監視?美味しいの?
(利⽤頻度:数回/⽉)
#cmdevio
#cmdevio3
12
ちょっと脱線します(昔々あるところに……)
実際に作れた!!!
でも……
画⾯ポチポチ
CI/CDなし
監視?美味しいの?
(利⽤頻度:数回/⽉)
当時の⾃分にとって、
CI/CDで良さそうな情報を
⾒つけられなかった
#cmdevio
#cmdevio3
13
ちょっと脱線します(昔々あるところに……)
実際に作れた!!!
でも……
画⾯ポチポチ
CI/CDなし
監視?美味しいの?
(利⽤頻度:数回/⽉)
イイカンジに作れる
CloudFormation
AWS SAM
テストコード
CI/CD
監視
今なら
#cmdevio
#cmdevio3
14
というわけで、おすすめの⽅
サーバーレスに興味がある
サーバーレスでCI/CDをしている / したい
サーバーレスで何らかのシステムを
開発‧運⽤している / したい
#cmdevio
#cmdevio3
15
⼤事なこと
CI/CDを構築し、⼩さく試して
⾼速に改善を繰り返すサイクルを作る
監視内容を考え、必要な通知を実現する
#cmdevio
#cmdevio3
16
⼤事なこと
CI/CDを構築し、⼩さく試して
⾼速に改善を繰り返すサイクルを作る
監視内容を考え、必要な通知を実現する
これらに必要なことを、
お話していきます
#cmdevio
#cmdevio3
話すこと
サーバーレスの基本
サーバーレスの運⽤
CI/CDやってみた
監視と通知、がんばるぞい
#cmdevio
#cmdevio3
話すこと
サーバーレスの基本
サーバーレスの運⽤
CI/CDやってみた
監視と通知、がんばるぞい
#cmdevio
#cmdevio3
サーバーレスの基本
サーバーレスとは
よく使うサービス
よくある例
#cmdevio
#cmdevio3
20
サーバーレスとは
Server management less
サーバーを意識しない
(管理‧運⽤が不要)
#cmdevio
#cmdevio3
21
クラウドの良さ
サーバー(物理)の導⼊や管理が不要
使いたいときにすぐ使える
電源等の冗⻑化や⼊退出管理などが不要
従量課⾦
使った時間や量に対して課⾦
#cmdevio
#cmdevio3
22
さらに、サーバーレスの良さ
OSバージョンアップやセキュリティパッチなどが不要
AWS側が対応してくれる
⾼可⽤性
冗⻑化やスケールアップ/スケールアウトが⾃動
やりたいこと‧作りたいものに注⼒できる
サービスを組み合わせれば動く
#cmdevio
#cmdevio3
23
サーバーレス開発でやること
利⽤者側
設計‧開発作業
リリース作業
エラー等の監視
クラウド側
サーバー保守
冗⻑化
ログ管理
リトライ処理
こっちに注⼒できる
#cmdevio
#cmdevio3
24
サーバーレスで嬉しいこと🥰
「やりたいこと‧作りたいもの」
に注⼒できる
#cmdevio
#cmdevio3
25
たとえば
WebAPIを作りたい!!
<⾃前で作る @ Ruby on Rails>
サーバーを⽤意する
VPC作る
EC2インスタンス⽴てる
セキュリティグループとか設定する
etc
Ruby と Ruby on Railsをインストール
コード書く
#cmdevio
#cmdevio3
26
たとえば
WebAPIを作りたい!!
<サーバーレスで作る>
API GatewayでWebAPIを作る
Lambdaでロジックを書く
#cmdevio
#cmdevio3
27
たとえば
WebAPIを作りたい!!
<サーバーレスで作る>
API GatewayでWebAPIを作る
Lambdaでロジックを書く
コードを書くだけで動く 👍
不要: サーバーの準備
不要: 実⾏環境の導⼊‧設定
不要: 冗⻑化考慮
#cmdevio
#cmdevio3
サーバーレスの基本
サーバーレスとは
よく使うサービス
よくある例
#cmdevio
#cmdevio3
29
よく使うサービス
KinesisLambda DynamoDB IoT Core
CloudFormation
API Gateway Simple Storage
Service (S3)
Cognito
And more…
#cmdevio
#cmdevio3
30
DynamoDB
マネージド型のNoSQLデータベースサービス
単⼀障害点が無い(分散データベース)
スケーリングをお任せ
保管時の暗号化
スループット性能に対して課⾦
プロビジョニング(事前に決めた性能)
オンデマンド(実際に使った性能)★オススメ
ストレージの容量制限が無い
#cmdevio
#cmdevio3
31
API Gateway
REST API / WebSocket APIを作れる
作成、公開、保守、モニタリング
AWSの各サービスに直接、接続可能
API Gateway ⇔ Lambda
API Gateway ⇔ DynamoDB
API Gateway ⇔ S3
など
#cmdevio
#cmdevio3
32
Lambda
FaaS(Function as a Service)
サーバーレスの中核
任意のコードを実⾏可能な環境
AWS各種サービスとの連携が楽
Input(駆動トリガー) / Output(出⼒先)
安い
使⽤した回数と時間に課⾦
0.20 USD/100万回 (最初の100万回は無料)
#cmdevio
#cmdevio3
33
CloudFormation
AWSサービスの管理をテキスト(YAML)で記述
Infrastructure as Code
画⾯ポチポチからの解放(⼀部除く)
複数環境の作成が楽
パラメータを変えるだけ
サーバーレスに特化したAWS SAMもある
Serverless Application Model
(CloudFormationを拡張したもの)
#cmdevio
#cmdevio3
サーバーレスの基本
サーバーレスとは
よく使うサービス
よくある例
#cmdevio
#cmdevio3
35
よくある例
IoTデバイスと接続して処理するバックエンド
WebAPIとそのバックエンド
#cmdevio
#cmdevio3
36
IoTデバイスと接続して処理するバックエンド
AWS Lambda Amazon DynamoDBAmazon IoT Core
AWS Lambda
デバイスからデータを受け取って、担当者に電話
Amazon Connect
#cmdevio
#cmdevio3
37
WebAPIとそのバックエンド
AWS Lambda Amazon DynamoDB
AWS Lambda
Amazon API Gateway
Amazon API Gateway
スマホアプリやWebアプリから使われるAPI
#cmdevio
#cmdevio3
38
よく使うパターンがAWS公式で紹介
https://aws.amazon.com/jp/serverless/patterns/serverless-pattern/
#cmdevio
#cmdevio3
39
よく使うパターンがAWS公式で紹介
https://aws.amazon.com/jp/serverless/patterns/serverless-pattern/
全16パターン
#cmdevio
#cmdevio3
話すこと
サーバーレスの基本
サーバーレスの運⽤
CI/CDやってみた
監視と通知、がんばるぞい
#cmdevio
#cmdevio3
41
そもそも運⽤とは(本セッションで扱う範囲)
システムは作って終わりでは無く、育てていく
新機能の追加
既存機能の改善
不要機能の削除
不具合の修正
また、何らかのトラブルも起こり得る
Lambdaのエラー‧同時実⾏数の上限
DynamoDBのキャパシティ不⾜
などなど
#cmdevio
#cmdevio3
42
そもそも運⽤とは(本セッションで扱う範囲)
育てるときに、CI/CDがあると良いね!
デグレに気づける
⾃動デプロイで楽になる
⼩さく試して⾼速に改善を繰り返すサイクルができる
Lambda等のエラーを監視&通知できると良いね!
エラーに気づいて対処できる
#cmdevio
#cmdevio3
43
サーバーレスの運⽤
利⽤者側
設計‧開発作業
リリース作業
エラー等の監視
クラウド側
サーバー保守
冗⻑化
ログ管理
リトライ処理
サーバーレスの運⽤
#cmdevio
#cmdevio3
44
サーバーレスの運⽤
利⽤者側
設計‧開発作業
リリース作業
エラー等の監視
クラウド側
サーバー保守
冗⻑化
ログ管理
リトライ処理
サーバーレスの運⽤
<本セッションで扱う範囲>
CI/CD
エラー等の監視通知
#cmdevio
#cmdevio3
45
サーバーレス開発の勘所
https://speakerdeck.com/sinofseven_/sabaresukai-fa-falsekan-suo
#cmdevio
#cmdevio3
話すこと
サーバーレスの基本
サーバーレスの運⽤
CI/CDやってみた
監視と通知、がんばるぞい
#cmdevio
#cmdevio3
47
質問1
「CI/CD」という⾔葉を
聞いたことがある
(やってなくてもOK!)
" 🙋
#cmdevio
#cmdevio3
48
質問2
CI/CDをやっている
やってみたい" 🙋
#cmdevio
#cmdevio3
CI/CDやってみた
CI/CDとは
とあるプロジェクトのCI/CDをご紹介
プロジェクト概要
テストコードを書くコツ
デプロイとリリース作業の様⼦
少しでも安全にデプロイする⽅法
#cmdevio
#cmdevio3
50
Continuous Integration:継続的インテグレーション
いつでも正しく動くようにしておこう
CD (Continuous Delivery):継続的デリバリー
いつでもデプロイ(リリース)できるように
しておこう
CI/CDをひとことで
#cmdevio
#cmdevio3
51
CI/CDをするために
Continuous Integration:継続的インテグレーション
いつでも正しく動くようにしておこう
→ テストコードを書く
CD (Continuous Delivery):継続的デリバリー
いつでもデプロイ(リリース)できるように
しておこう
→ デプロイを⾃動化する
#cmdevio
#cmdevio3
52
CI/CDのイメージ
develop
master
1. Lambda関数のコードが正しく動くこと
2. 開発環境(AWS)にデプロイできること
3. デプロイしたAPIが正しく動くこと
or
#cmdevio
#cmdevio3
53
CIの嬉しさ😊
いつでも動く、安⼼感
意図通り動くことを確認できる
デグレに気づける
昔書いたコードの期待動作を思い出せる
#cmdevio
#cmdevio3
54
CDの嬉しさ😊
テストコードで⾒つけれない不具合に気づける
⼿順ミスによるデプロイ失敗を無くす
xxxさんしかできない(知らない)を無くす
#cmdevio
#cmdevio3
55
テストコードで⾒つけれない不具合の例
CloudFormationのミス
スペルミス、インデント違い、など
デプロイ権限の不⾜
IAMのCreate権限が不⾜、など
AWSサービスを実際に使って判明する事柄
AWS SDKの使い⽅が違う(ユニットテストはMockでPASS)
必要なリソースの作成漏れ(SNS Topicなど)
実⾏権限の不⾜(DynamoDBに対するRead/Write権限)
など
#cmdevio
#cmdevio3
CI/CDやってみた
CI/CDとは
とあるプロジェクトのCI/CDをご紹介
プロジェクト概要
テストコードを書くコツ
デプロイとリリース作業の様⼦
少しでも安全にデプロイする⽅法
#cmdevio
#cmdevio3
CI/CDやってみた
CI/CDとは
とあるプロジェクトのCI/CDをご紹介
プロジェクト概要
テストコードを書くコツ
デプロイとリリース作業の様⼦
少しでも安全にデプロイする⽅法
#cmdevio
#cmdevio3
58
プロジェクト概要
環境 API
GitHub + CircleCI 数⼗本ある
実証実験フェーズ Lambda
実際に使われている(社外の⽅) Python 3系 + pytest (数⼗本)
毎週⽔曜⽇にリリース(交互) DynamoDB
ステージング環境 or 本番環境 約20テーブル
開発⼿法 構成管理
スクラム AWS SAM
CloudFormation
#cmdevio
#cmdevio3
CI/CDやってみた
CI/CDとは
とあるプロジェクトのCI/CDをご紹介
プロジェクト概要
テストコードを書くコツ
デプロイとリリース作業の様⼦
少しでも安全にデプロイする⽅法
#cmdevio
#cmdevio3
60
テストコードの種類
ユニットテスト
Lambda関数のコードに対するテスト
Lintも実施する
E2Eテスト
WebAPIに対するテスト
(実際にデプロイしたAPIを叩く)
#cmdevio
#cmdevio3
61
ユニットテストのコツ
テストしやすいコードを書く
メソッド化(処理を分離する)
Interfaceを活⽤する
Lambdaハンドラーをロジックから分離する
#cmdevio
#cmdevio3
62
Lambdaハンドラーをロジックから分離する (例)
index.py create.py
#cmdevio
#cmdevio3
63
AWSサービスに絡むテストが⼤変😒
DynamoDB や S3に対するCRUD操作
IoT CoreのDevice Shadowに対するRead/Write操作
SNS Topicに対するPublish
など
#cmdevio
#cmdevio3
64
AWSサービスに絡むテストのやり⽅
その1 Mockを使う
その2 Interfaceを活⽤する
その3 LocalStackを使う
どれかひとつ、ではなく
必要に応じて組み合わせる
#cmdevio
#cmdevio3
65
AWSサービスに絡むテストのやり⽅(その1)
Mockを使って、AWS SDKのメソッドを
叩いたことにする
Python (pytest) → monkeypatch を使う
http://doc.pytest.org/en/latest/monkeypatch.html
#cmdevio
#cmdevio3
66
Mockを使ってテストする例(対象コード)
dynamodb.py
app.py
Mockを使って
←が
↙を叩いた事にする
#cmdevio
#cmdevio3
67
Mockを使ってテストする例(テストコード)
test_app.py
#cmdevio
#cmdevio3
68
AWSサービスに絡むテストのやり⽅(その2)
AWSサービス⽤のInterfaceを定義して使う
‧実際にAWS SDKを使うクラス(処理)を実装
‧テスト⽤のクラス(処理)を実装
#cmdevio
#cmdevio3
69
Interfaceを定義
Pythonなので抽象クラスを使⽤
#cmdevio
#cmdevio3
70
Interfaceを実装
本番⽤
テスト⽤
#cmdevio
#cmdevio3
71
使う側
本番コード
テストコード
#cmdevio
#cmdevio3
72
AWSサービスに絡むテストのやり⽅(その3)
LocalStackを使う
https://github.com/localstack/localstack
#cmdevio
#cmdevio3
73
LocalStackで嬉しいこと😊
ローカルでAWSサービスのテストができる
DynamoDBやS3に対するCRUD操作
SNS Topicに対するPublish
AWS SDKのI/Fをそのまま使える
デプロイ前に実⾏時エラーに気づける
ローカルテスト⽤のコードが不要
#cmdevio
#cmdevio3
74
LocalStackの対応サービス(Free)
API Gateway Elasticsearch Service
Kinesis SES
DynamoDB Route 53
DynamoDB Stream CloudFormation
Elasticsearch CloudWatch
S3 SSM
Firehose SecretsManager
Lambda StepFunctions
SNS CloudWatch Logs
SQS EventBridge (CloudWatch Events)
Redshift STS
IAM EC2
#cmdevio
#cmdevio3
75
LocalStackの使⽤例
本番コード
(DynamoDB
アクセス⽤)
本番コード
(DynamoDB
使⽤側)
テストコード
本番コードに
テストの都合が不要
#cmdevio
#cmdevio3
76
E2Eテストの観点
HTTPステータスコード
不正なリクエスト時、4xxになっている?
正常なリクエスト時、200になっている?
応答内容(Responseパラメータ)
期待通りの応答内容になっている?
#cmdevio
#cmdevio3
77
E2Eテストの⽅法 (Python + pytest)
単体テストと同じようにコードを書いてます
データの準備
DynamoDBにテスト⽤のデータを格納する
テスト実⾏
デプロイしたAPIを叩いてテストする(requestsライブラリ)
データのお⽚付け
DynamoDBのテスト⽤データを削除する
#cmdevio
#cmdevio3
CI/CDやってみた
CI/CDとは
とあるプロジェクトのCI/CDをご紹介
プロジェクト概要
テストコードを書くコツ
デプロイとリリース作業の様⼦
少しでも安全にデプロイする⽅法
#cmdevio
#cmdevio3
79
環境ごとにAWSアカウントを使⽤💪
アカウント内の制限を気にしなくて良い
Lmabdaの同時実⾏数
IoTのエンドポイント
リソース名の重複(ただしS3バケット名は注意)
何かあっても、どの環境かすぐ分かる
エラーや障害の発⽣
不正アクセス
間違って異なる環境を触るミスを防ぐ
hoge-fuga-dev
hoge-fuga-prod
← が並んでいると怖い……😱
#cmdevio
#cmdevio3
80
AWSの環境(とあるプロジェクト)
名称 内容 デプロイタイミング
開発環境 開発⽤(⾃由)
開発時
- git push時
- プルリクOK時
結合環境 POレビュー⽤ 開発時
- レビュー準備OK時
ステージング環境 検証⽤ リリース作業時
本番環境 本番⽤ リリース作業時
#cmdevio
#cmdevio3
81
Gitのブランチ運⽤とデプロイの関係
feature/1234
master
v1.2.0
masterブランチ & featureブランチ
開発環境 → 結合環境
タグ(リリース)
ステージング環境 → 本番環境
#cmdevio
#cmdevio3
82
Gitのブランチ運⽤とデプロイの関係
feature/1234
master
v1.2.0
masterブランチ & featureブランチ
開発環境 → 結合環境
タグ(リリース)
ステージング環境 → 本番環境
CircleCIの Approve機能を活⽤してJobを⽌める
#cmdevio
#cmdevio3
83
Gitのブランチ運⽤とデプロイの関係
feature/1234
master
v1.2.0
masterブランチ & featureブランチ
開発環境 → 結合環境
タグ(リリース)
ステージング環境 → 本番環境
CircleCIの Approve機能を活⽤
#cmdevio
#cmdevio3
84
リリース作業は、毎週⽔曜に実施(交互)
V1.3.0
v1.2.0 ステージング環境 本番環境
11/1 11/8
ステージング環境 本番環境
11/15 11/22
$ git tag v1.2.0
$ git push origin v1.2.0
$ git tag v1.3.0
$ git push origin v1.3.0
#cmdevio
#cmdevio3
85
リリース作業は、毎週⽔曜に実施(交互)
V1.3.0
v1.2.0 ステージング環境 本番環境
11/1 11/8
ステージング環境 本番環境
11/15 11/22
CircleCIの Approve機能を活⽤してJobを⽌める
$ git tag v1.2.0
$ git push origin v1.2.0
$ git tag v1.3.0
$ git push origin v1.3.0
#cmdevio
#cmdevio3
86
CircleCIのワークフロー例
開発環境 & 結合環境 ステージング環境 & 本番環境
#cmdevio
#cmdevio3
87
CircleCIのワークフローの流れ
デプロイ環境の準備
ビルド
(AWS SAM)
Lint & 単体テスト
デプロイ
E2Eテスト
Python仮想環境の準備
AWS-CLI等のインストール
Python仮想環境のキャッシュ保存(CircleCI)
AssumeRole
SwaggerファイルをS3にコピー
デプロイ作業
#cmdevio
#cmdevio3
88
AWS SAM + CircleCIの例(参考)
https://dev.classmethod.jp/cloud/aws/aws-sam-auto-deploy-for-circleci/
#cmdevio
#cmdevio3
CI/CDやってみた
CI/CDとは
とあるプロジェクトのCI/CDをご紹介
プロジェクト概要
テストコードを書くコツ
デプロイとリリース作業の様⼦
少しでも安全にデプロイする⽅法
90
IAMポリシー
AdministratorAccess
を使って
デプロイしていませんか?
#cmdevio
#cmdevio3
91
IAMユーザのアクセスキー流出のリスク🥶
強いEC2で仮想通貨のマイニング
データベースの内容を盗られる
など
https://dev.classmethod.jp/cloud/aws/accesskey-leak/
#cmdevio
#cmdevio3
92
少しでも安全にデプロイする⽅法
AssumeRole を活⽤する
本来持っていない権限を⼀時的に得られる機能
何もできない…… ⼀時的に権限ちょうだい! ありがとう!
デプロイ⽤の権限(CreateXxx / etc)
#cmdevio
#cmdevio3
93
AssumeRoleに必要なモノ
IAMロール
(IAMユーザ⽤)
IAMロール
(CloudFormation⽤)
IAMユーザ
IAMポリシー
IAMユーザ
AWSにアクセスするユーザ
IAMロール(IAMユーザ⽤)
CloudFormationを操作できるロール
IAMロール(CloudFormation⽤)
実際のAWSサービスを操作できるロール
IAMポリシー IAMポリシー
#cmdevio
#cmdevio3
94
IAMユーザ
IAMユーザ
このIAMユーザーで、アクセスキー(下記)を払い出す
‧アクセスキーID
‧シークレットアクセスキー
#cmdevio
#cmdevio3
95
IAMポリシー
IAMポリシー
指定のRoleにAssumeRoleできる
権限のみ有する
#cmdevio
#cmdevio3
96
このIAMユーザは、AssumeRole以外できない
IAMポリシー
IAMユーザ
アクセスキー
CloudFormation
$ aws cloudformation list-stacks
An error occurred (AccessDenied)
権限不⾜
#cmdevio
#cmdevio3
97
IAMユーザ⽤のIAMロールとIAMポリシー
デプロイ作業に必要な権限のみを持つ
‧CloudFormationの操作
‧S3バケットの作成、オブジェクトのアップロード
など
IAMロール
(IAMユーザ⽤)
IAMポリシー
↑は⼀部のみ紹介
IAMユーザがAssumeRoleするIAMロール
#cmdevio
#cmdevio3
98
AssumeRoleし、指定IAMロールとして振る舞う
AssumeRole
アクセスキー
(⼀時的)
アクセスキー
IAMロール
(IAMユーザ⽤)
IAMユーザ
IAMポリシー IAMポリシー IAMロール(IAMユーザ⽤)に
AssumeRoleする
↓
IAMロール(IAMユーザ⽤)として振る舞う
ためのアクセスキー(⼀時的)を取得し使⽤する
#cmdevio
#cmdevio3
99
AssumeRoleし、指定IAMロールとして振る舞う
AssumeRole
アクセスキー
(⼀時的)
アクセスキー
IAMロール
(IAMユーザ⽤)
IAMユーザ
IAMポリシー IAMポリシー IAMロール(IAMユーザ⽤)に
AssumeRoleする
↓
IAMロール(IAMユーザ⽤)として振る舞う
ためのアクセスキー(⼀時的)を取得し使⽤する
$ aws sts assume-role ¥
--role-arn arn:aws:iam::1234567890:role/deploy-iam-sample-deploy-role-for-user ¥
--role-session-name deploy-test ¥
--duration-seconds 900
{
"Credentials": {
"AccessKeyId": "xxxxxx",
"SecretAccessKey": "yyyyyy",
"SessionToken": "zzzzzz",
"Expiration": "2019-09-06T12:31:37Z"
},
"AssumedRoleUser": {
"AssumedRoleId": "hoge:deploy-test",
"Arn": "arn:aws:sts::1234567890:assumed-role/deploy-iam-sample-deploy-role-for-
user/deploy-test"
}
}
#cmdevio
#cmdevio3
100
AssumeRole
アクセスキー
(⼀時的)
アクセスキー
IAMロール
(IAMユーザ⽤)
IAMユーザ
IAMポリシー IAMポリシー
CloudFormation
$ aws cloudformation list-stacks
{
……
}
AssumeRole先が持つ権限の操作は成功する
#cmdevio
#cmdevio3
101
CloudFormation⽤のIAMロールとIAMポリシー
CloudFormationがデプロイするときに
必要となる権限を付与
IAMロール
(CloudFormation⽤)
IAMポリシー
CloudFormationがAssumeRoleするIAMロール
#cmdevio
#cmdevio3
102
AssumeRoleを活⽤したデプロイ例
AWS Identity and Access Management (IAM)
AssumeRole
アクセスキー
(⼀時的)
CloudFormation
アクセスキー
IAMロール
(IAMユーザ⽤)
IAMロール
(CloudFormation⽤)
IAMユーザ
IAMポリシー
デプロイよろしく〜
IAMロール(CloudFormation⽤)を使ってね
IAMポリシー IAMポリシー
#cmdevio
#cmdevio3
103
AssumeRoleを活⽤したデプロイ例
AWS Identity and Access Management (IAM)
AssumeRole
アクセスキー
(⼀時的)
CloudFormation
アクセスキー
IAMロール
(IAMユーザ⽤)
IAMロール
(CloudFormation⽤)
IAMユーザ
IAMポリシー
デプロイよろしく〜
IAMロール(CloudFormation⽤)を使ってね
IAMポリシー IAMポリシー
sam deploy ¥
--template-file packaged.yaml ¥
--stack-name Deploy-Iam-Sample-SAM-App ¥
--capabilities CAPABILITY_IAM ¥
--role-arn arn:aws:iam::1234567890:role/deploy-iam-sample-deploy-role-for-cloudformationç
#cmdevio
#cmdevio3
104
AssumeRoleを活⽤すれば
IAMユーザは、AssumeRoleできる権限のみ保有
アクセスキーが流出しても、事実上なにもできない
AssumeRoleするための情報は、外部から推測されにくい
IAMロールARNが必要
AssumeRoleされたとしても、最低限の権限しかない
実際のデプロイはCloudFormation⽤のIAMロールのため
アクセスキーには有効期限がある(15分〜12時間)
IAMロール(CloudFormation⽤)は、CloudFormationのみ使える
各サービスに対する強い権限を持つが、そもそもユーザは使えない
#cmdevio
#cmdevio3
105
いますぐやろう、AssumeRole
https://dev.classmethod.jp/cloud/aws/assume-role-deploy-iam-user-and-role/
#cmdevio
#cmdevio3
話すこと
サーバーレスの基本
サーバーレスの運⽤
CI/CDやってみた
監視と通知、がんばるぞい
#cmdevio
#cmdevio3
運⽤と監視、がんばるぞい
とある監視通知の例
とあるプロジェクトの運⽤監視をご紹介
理想と現実
監視体制と通知の例
監視と通知の仕組み
#cmdevio
#cmdevio3
108
こんなことあったら、どうですか?🤔
⽇曜⽇の深夜4時……
Lambdaでエラー発⽣
(異常終了)
#cmdevio
#cmdevio3
109
こんなことあったら、どうですか?🤔
⽇曜⽇の深夜4時……
Lambdaでエラー発⽣
(異常終了)
リトライで成功してた
(⾮同期Lambda)
#cmdevio
#cmdevio3
110
こんなことあったら、どうですか?🤔
⽇曜⽇の深夜4時……
Lambdaでエラー発⽣
(異常終了)
リトライで成功してた
(⾮同期Lambda)
#cmdevio
#cmdevio3
111
遠い昔、遥か彼⽅の銀河系で……📽
よっしゃ、
Lambdaのエラーを
通知したろ!!
CloudWatch
#cmdevio
#cmdevio3
112
遠い昔、遥か彼⽅の銀河系で……📽
あれ、このエラー通知して、
誰がなぜ嬉しいんだ??? CloudWatch
#cmdevio
#cmdevio3
運⽤と監視、がんばるぞい
とある監視通知の例
とあるプロジェクトの運⽤監視をご紹介
理想と現実
監視体制と通知の例
監視と通知の仕組み
#cmdevio
#cmdevio3
運⽤と監視、がんばるぞい
とある監視通知の例
とあるプロジェクトの運⽤監視をご紹介
理想と現実
監視体制と通知の例
監視と通知の仕組み
#cmdevio
#cmdevio3
115
エラー監視の理想と現実
理想 現実(私の携わるプロジェクト)
知りたいこと 「何を知りたいのか」を事前に検討する
‧運⽤者の視点: 異常はないか?
‧開発者の視点: Lambdaにエラー発⽣してないか?
‧利⽤者の視点: 期待通り使えるか?
など
しっかり検討できてない
(検知できる事のうち、必要そうな
やつ)
検知⽅法&条件 「知りたいこと」を検知する⽅法や条件を個別に考える
‧Lambdaのエラーが1分で1回発⽣
‧Lambdaのエラーが5分で5回発⽣
‧ログに特定の⽂字列が1回出現
など
Lambdaのエラー(タイムアウト等
も含む)
Lambdaのログに「Error」を含む
DynamoDBのスロットリング発⽣
など
通知条件 即時対応が必要:すぐ通知
即時対応が不要:すぐ通知(即時とは区別する)
まとめて通知(1⽇1回など)
検知したもの全部を即通知
通知⽅法 内容(重要度)や時間帯に合わせる
‧業務中 :Slack、メール、電話
‧休⽇夜間:Slack、メール
緊急時は休⽇夜間でも電話
など
Slackのみ
#cmdevio
#cmdevio3
116
今プロジェクトの監視設計はざっくり……
通知の条件は無い(常に即通知@Slack)
⾄急対応が必要な事象
急がないけど、対応が必要な事象
「その通知があっても、⾒守るしか無い……」な事象
↑を意識せず、Lambdaのエラーや
DynamoDBのエラー等を単純に通知している
背景:実証実験フェーズなので細かく気にしてない
営業時間内の対応でOKだから
「今使えない」よりも「あのとき使えてなかった」を重視
#cmdevio
#cmdevio3
運⽤と監視、がんばるぞい
とある監視通知の例
とあるプロジェクトの運⽤監視をご紹介
理想と現実
監視体制と通知の例
監視と通知の仕組み
#cmdevio
#cmdevio3
118
こんな感じで、監視してます
Lambda等のエラーは、Slackに通知される
Slack通知以外もある(POから連絡等)
⽇替わりで⾒張り当番がある(業務時間内)
⾒張り当番がSlackの通知を確認し、
必要に応じて不具合報告チャンネルに報告する
暫定対策: 必要なら実施
根本対策: 必要ならチケット作成
#cmdevio
#cmdevio3
119
実際にあったエラー通知の例
Lambda関数のタイムアウト(60秒)
通常は数秒で終わる
DynamoDBからデータ取得待ちだった
Lambda関数の実⾏時エラー
データ0件が存在した(考慮漏れ)
#cmdevio
#cmdevio3
運⽤と監視、がんばるぞい
とある監視通知の例
とあるプロジェクトの運⽤監視をご紹介
理想と現実
監視体制と通知の例
監視と通知の仕組み
#cmdevio
#cmdevio3
121
監視対象
Lambda
単純なエラー(CloudWatchメトリクス)
タイムアウト、メモリ不⾜(特定キーワードのログ出現)
Lambda以外のAWSサービス
CloudWatchメトリクスを活⽤
APIヘルスチェック
動いてるかどうか
#cmdevio
#cmdevio3
122
Lambdaのエラー監視&通知
Kinesis
DataStream
Lambda
(同期実⾏)
CloudWatch Logs
Lambda
(⾮同期実⾏)
Lambda
(Slack通知@Kinesis⽤)
サブスクリプション
フィルター
(Error等を含むログ)
SNS Topic
Lambda
(Slack通知@DLQ⽤)
DLQ
#cmdevio
#cmdevio3
123
Lambda(⾮同期実⾏)の通知例
#cmdevio
#cmdevio3
124
Lambda(同期実⾏)の通知例
#cmdevio
#cmdevio3
125
LambdaログにRequestIDがないとき
#cmdevio
#cmdevio3
126
LambdaログにRequestIDがあるとき
#cmdevio
#cmdevio3
127
LogFormatterを⾃作する場合
Lambda開始時に、RequestIDを覚えておく
⾃作のLogFormatterで、RequestIDを含める
#cmdevio
#cmdevio3
128
Lambd以外のエラー監視&通知(その1)
CloudWatch Alarm
Lambda
(Slack通知)
SNS Topic
#cmdevio
#cmdevio3
129
Lambda以外のエラー監視&通知(その2)
SaaSを活⽤
#cmdevio
#cmdevio3
130
APIヘルスチェック
Route 53 のヘルスチェックを利⽤
まとめ
#cmdevio
#cmdevio3
132
システムは動いてからが本番だ
CI/CDを構築し、⼩さく試して
⾼速に改善を繰り返すサイクルを作る
監視内容を考え、必要な通知を実現する
これらに必要なことを、
お話しました
#cmdevio
#cmdevio3
133
参考
CircleCIとGitHubでAWS SAMのサーバーレスアプリを⾃動デプロイしてみた (開発環境 & 本番環境)
https://dev.classmethod.jp/cloud/aws/aws-sam-auto-deploy-for-circleci/
[AssumeRole] アクセスキーが流出しても被害が最⼩限になるIAMユーザでCloudFormationにデプ
ロイする⽅法
https://dev.classmethod.jp/cloud/aws/assume-role-deploy-iam-user-and-role/
【⼩ネタ】CircleCIのManual Approvalを利⽤したシンプルなブランチ/タグ運⽤
https://dev.classmethod.jp/ci/simple-branch-tag-operations-with-circleci-manual-approval/
【実録】アクセスキー流出、攻撃者のとった⾏動とその対策
https://dev.classmethod.jp/cloud/aws/accesskey-leak/
サーバーレス開発の勘所
https://speakerdeck.com/sinofseven_/sabaresukai-fa-falsekan-suo
134

More Related Content

What's hot

Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Katsunori Kanda
 
仮想サーバは、もう不要?!今からIoTやるなら 「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら 「サーバレス・コンピューティング」真吾 吉田
 
Azure DevOps と開発管理
Azure DevOps と開発管理Azure DevOps と開発管理
Azure DevOps と開発管理Tsukasa Kato
 
IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界IBMソリューション
 
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境Yuki Ando
 
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~ WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~ Harada Kazuki
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーションssuser070fa9
 
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~Dai Iwai
 
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話Shingo Kawahara
 
Bluemixの基本を知る -仕組みと使い方-
Bluemixの基本を知る -仕組みと使い方-Bluemixの基本を知る -仕組みと使い方-
Bluemixの基本を知る -仕組みと使い方-IBMソリューション
 
進化を続けるBluemix 最新情報
進化を続けるBluemix 最新情報進化を続けるBluemix 最新情報
進化を続けるBluemix 最新情報softlayerjp
 
デモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービスデモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービスIBMソリューション
 
【SoftLayer事例】V-CUBE ミーティングを支えるSoftLayer
【SoftLayer事例】V-CUBE ミーティングを支えるSoftLayer【SoftLayer事例】V-CUBE ミーティングを支えるSoftLayer
【SoftLayer事例】V-CUBE ミーティングを支えるSoftLayersoftlayerjp
 
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!softlayerjp
 
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)Daisuke Ikeda
 
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発IBMソリューション
 
AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a CodeAnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a CodeSatoru Yoshida
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜Daiki Kawanuma
 

What's hot (20)

Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
 
仮想サーバは、もう不要?!今からIoTやるなら 「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら 「サーバレス・コンピューティング」
 
Azure DevOps と開発管理
Azure DevOps と開発管理Azure DevOps と開発管理
Azure DevOps と開発管理
 
IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界
 
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境
 
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~ WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
 
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
 
OSSを活用したIaCの実現
OSSを活用したIaCの実現OSSを活用したIaCの実現
OSSを活用したIaCの実現
 
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
 
Bluemixの基本を知る -仕組みと使い方-
Bluemixの基本を知る -仕組みと使い方-Bluemixの基本を知る -仕組みと使い方-
Bluemixの基本を知る -仕組みと使い方-
 
進化を続けるBluemix 最新情報
進化を続けるBluemix 最新情報進化を続けるBluemix 最新情報
進化を続けるBluemix 最新情報
 
デモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービスデモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービス
 
【SoftLayer事例】V-CUBE ミーティングを支えるSoftLayer
【SoftLayer事例】V-CUBE ミーティングを支えるSoftLayer【SoftLayer事例】V-CUBE ミーティングを支えるSoftLayer
【SoftLayer事例】V-CUBE ミーティングを支えるSoftLayer
 
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
 
Zabbix-OSC-Fukuoka
Zabbix-OSC-FukuokaZabbix-OSC-Fukuoka
Zabbix-OSC-Fukuoka
 
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
 
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
 
AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a CodeAnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
 

Similar to サーバーレスの基本とCI/CD構築 & 運用 〜システムは動いてからが本番だ〜

より良い登壇を目指して今すぐできること re:Master #devio2020
より良い登壇を目指して今すぐできること re:Master #devio2020より良い登壇を目指して今すぐできること re:Master #devio2020
より良い登壇を目指して今すぐできること re:Master #devio2020Genki Fujii
 
Slack の Incoming Webhookで簡易なフィードバック管理
Slack の Incoming Webhookで簡易なフィードバック管理Slack の Incoming Webhookで簡易なフィードバック管理
Slack の Incoming Webhookで簡易なフィードバック管理Yusuke Kojima
 
くま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービスくま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービスssuser6b3f181
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~SEGADevTech
 
.NET Micro Framework is my spirit.
.NET Micro Framework is my spirit..NET Micro Framework is my spirit.
.NET Micro Framework is my spirit.Atomu Hidaka
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Koyo Takenoshita
 
New IP へのステップ その1) Fabric – すべての基本はファブリックにあり
New IP へのステップ その1) Fabric – すべての基本はファブリックにありNew IP へのステップ その1) Fabric – すべての基本はファブリックにあり
New IP へのステップ その1) Fabric – すべての基本はファブリックにありBrocade
 
機械学習/IoTで計器点検がラクになるLiLz Gauge x Azure
機械学習/IoTで計器点検がラクになるLiLz Gauge x Azure機械学習/IoTで計器点検がラクになるLiLz Gauge x Azure
機械学習/IoTで計器点検がラクになるLiLz Gauge x AzureIoTビジネス共創ラボ
 
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナーIMJ Corporation
 
より良い登壇を目指して今すぐできること 〜楽しい? 面白い? 伝わる?〜
より良い登壇を目指して今すぐできること 〜楽しい? 面白い? 伝わる?〜より良い登壇を目指して今すぐできること 〜楽しい? 面白い? 伝わる?〜
より良い登壇を目指して今すぐできること 〜楽しい? 面白い? 伝わる?〜Genki Fujii
 
スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?Takuya Kitamura
 
Azure のApp Center でアプリの 使用状況を分析する
Azure のApp Center でアプリの 使用状況を分析するAzure のApp Center でアプリの 使用状況を分析する
Azure のApp Center でアプリの 使用状況を分析するYusuke Kojima
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介Yuta Matsumura
 
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Kazunori Hamamoto
 
はんなりPython #45
はんなりPython #45はんなりPython #45
はんなりPython #45hiroya akita
 
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213小川 雄太郎
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesTakeshi Fukuhara
 
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~ アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~ CYBIRD Co.,Ltd.
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Takakiyo Tanaka
 

Similar to サーバーレスの基本とCI/CD構築 & 運用 〜システムは動いてからが本番だ〜 (20)

より良い登壇を目指して今すぐできること re:Master #devio2020
より良い登壇を目指して今すぐできること re:Master #devio2020より良い登壇を目指して今すぐできること re:Master #devio2020
より良い登壇を目指して今すぐできること re:Master #devio2020
 
Slack の Incoming Webhookで簡易なフィードバック管理
Slack の Incoming Webhookで簡易なフィードバック管理Slack の Incoming Webhookで簡易なフィードバック管理
Slack の Incoming Webhookで簡易なフィードバック管理
 
くま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービスくま(Kuma)でメッシュなマイクロサービス
くま(Kuma)でメッシュなマイクロサービス
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
.NET Micro Framework is my spirit.
.NET Micro Framework is my spirit..NET Micro Framework is my spirit.
.NET Micro Framework is my spirit.
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下
 
New IP へのステップ その1) Fabric – すべての基本はファブリックにあり
New IP へのステップ その1) Fabric – すべての基本はファブリックにありNew IP へのステップ その1) Fabric – すべての基本はファブリックにあり
New IP へのステップ その1) Fabric – すべての基本はファブリックにあり
 
機械学習/IoTで計器点検がラクになるLiLz Gauge x Azure
機械学習/IoTで計器点検がラクになるLiLz Gauge x Azure機械学習/IoTで計器点検がラクになるLiLz Gauge x Azure
機械学習/IoTで計器点検がラクになるLiLz Gauge x Azure
 
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
【IMJ】デジタルマーケティングを加速させるヒントがここに imj jelly cms 事例活用セミナー
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
より良い登壇を目指して今すぐできること 〜楽しい? 面白い? 伝わる?〜
より良い登壇を目指して今すぐできること 〜楽しい? 面白い? 伝わる?〜より良い登壇を目指して今すぐできること 〜楽しい? 面白い? 伝わる?〜
より良い登壇を目指して今すぐできること 〜楽しい? 面白い? 伝わる?〜
 
スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?スマートデバイスSIの落とし穴と適した開発手法とは?
スマートデバイスSIの落とし穴と適した開発手法とは?
 
Azure のApp Center でアプリの 使用状況を分析する
Azure のApp Center でアプリの 使用状況を分析するAzure のApp Center でアプリの 使用状況を分析する
Azure のApp Center でアプリの 使用状況を分析する
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
 
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩
 
はんなりPython #45
はんなりPython #45はんなりPython #45
はんなりPython #45
 
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~ アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

サーバーレスの基本とCI/CD構築 & 運用 〜システムは動いてからが本番だ〜