SlideShare a Scribd company logo
AWS re:Invent 2015に初参戦
→気づいたらOSS二つ作ってた
@mumoshu
Yusuke KUOKA at CrowdWorks, Inc.
We’re hiring!
https://www.wantedly.com/projects/34041
TL;DR;
• クラウドソーシングサービスを運営している
• 株式会社クラウドワークスのエンジニアが、
• AWS最大級のイベントre:Invent 2015@ラスベガスに会社のお金で参加
させていただいて感動、
• 気づいたら2つのOSSを作ってた
• サーバレスSlackボット「lambda_bot」
• サーバレス分散ロックサービス「Joumae」
Fin.
------ここから------
延長戦
アジェンダ
1. AWS re:Invent 2015のはなし
2. サーバレスSlackボットlambda_botのはなし
3. サーバレス分散ロックJoumaeのはなし
AWS re:Invent 2015
のはなし
1 / 3
re:Invent 2015こわくないよ
• 初参戦&クラウドワークスからぼっち参加
• 色々心配
• 旅行会社HISさんのre:Inventツアー利用
• 事前手続き・出国・滞在・帰国まで全てサポートし
ていただけるので初心者でも安心!
• まじおすすめ
re:Invent 2015すごいよ
• 開発者向けカンファレンス(印象)
• 数百人参加してそうなよくばりセッション
• AWS中の人のDeep Dive(技術的な深い話)、ユーザによる事例紹介、AWS
利用するサービス・フレームワーク紹介、etc.

なんでもある
• 10000人くらい参加してそうなキーノート
• 新サービス・新機能を大々的に発表→エンジニア盛り上がる
• ライブ会場ですか?
re:Invent 2015体験記
• 食料確保
• 広大な会場、人の波をかき分けながら右往左往
• セッション、ブースめぐり
• ネットワーキング
• 受講料無料のハンズオンラボでAWSコンソールいじりながら試験勉強

→現地で試験受けてSolution Architect Asociate認定取得

→認定者限定パーティで交流
• 知り合いいなくてコミュ力なくても安心
• レポート「初めてのAWS re:Invent 2015参戦を写真で振り返る」
アウトプット
• ブログ記事数本
• OSS
• lambda_bot
• Joumae
lambda_bot
のはなし
2 / 3
lambda_botとは
• AWS Lambdaを利用したサーバレスのSlackボット
• re:Invent 2015期間中にLambdaのScheduled
Eventという機能が発表されて「キタ━━━━
(゚ ゚)━━━━!!」となってつくった
• …を簡単に実装するためのnpmモジュール
LambdaのScheduled Event
• 分散cron的なものという認識
• 指定日時または周期でLambda FunctionをInvoke
• 他の選択肢
• EC2インスタンスにcrond立てる or Mesos上にChronos立てる or Unreliable
Town ClockというAWS SNSトピックにsubscribeさせる or etc.

→最終的にLambda Function実行
• あせ?せっかくLambdaでサーバレスにしようと持ったのにサーバいるやん
• →運用めんどい
サーバレスがいい
• インフラ運用めんどい
• ベンチャーなう
• コア業務はサービス開発・運営
• →ベンチャーにインフラの運用してる時間ない
• 理想
• 運用は限りなくゼロにしてサービス開発したい!
• Slack Outgoing WebHook

↓

API Gateway Scheduled Event

↓ ↓

Lambda Function

↓

Slack Incoming WebHook

設計
• Slackボットとして振る舞うLambda Function
Handler(Lambdaが呼び出すNode.jsの関数)
• …を簡単に実装するためのライブラリ
実装
コード例
var LambdaBot = require('lambda_bot'),
env = require('node-env-file');
env(__dirname + ‘/.env'); // .envファイルから環境変数読むよ
var bot = new LambdaBot({
iconEmoji: process.env['SLACK_ICON_EMOJI'],
userName: process.env['SLACK_USER_NAME'],
channelName: process.env['SLACK_CHANNEL_NAME'],
slackIncomingWebhookURL: process.env['SLACK_INCOMING_WEBHOOK_URL']
});
bot.hear(/foo/, function(res) {
return res.send(‘bar'); // 誰かがfooと言ったらbarと言うよ
});
bot.respond(/hi/, function(res) {
return res.reply(‘hi'); // 誰かがfooと話しかけてきたら、hiと返すよ
});
bot.on('10am', function(res) {
return res.send("It's 10am.”); // 毎日午前10時に「It’s 10am.」と言うよ
});
exports.handler = bot.createHandler();
詳しくはQiitaで!
http://qiita.com/mumoshu/items/8752047a0d0265dada47
Joumae
のはなし
3 / 3
Joumaeとは
• AWS Lambdaを利用したサーバレスの分散ロックサービス
• アプリとインフラそれぞれのBlue-Greenデプロイのクラス
タワイドなロックが欲しかった
• re:InventでもセッションがあったJAWSフレームワークつ
かえそう
• …を簡単に実装するためのJAWSの”AWSモジュール”(npmモ
ジュール)
クラウドワークスのデプロイ
• アプリの更新はHubot、Rake、Capistrano、
AWS SDK for Rubyなどを利用して
• インフラの更新はChefやaws-cliや
Capistrano、CodeDeployなどを利用して
• それぞれBlue-Greenデプロイ
課題
• アプリのデプロイ中に、Chef CookbookをChef
Serverに上げて、各サーバでChef Clientを実行
してインフラの更新を初めてしまったり、
• アプリのデプロイ中に、EC2インスタンスの停
止・起動してしまったり
• >突然の死<
Before Joumae
• Slack等で人間が「アプリのデプロイしますの
で、インフラのデプロイ(の引き金になる
Chef CookbookのGitHubレポジトリへぷるり
マージ)はしばらくしないでください」のよ
うに調整をする…
• めんどくさ
Afer Joumae
• hubotが実行するアプリのデプロイスクリプトで

$ joumae run --resource-name $APP-$ENV -- bundle exec
cap $ENV deploy
• Werckerで動いているインフラのデプロイスクリプトで

$ joumae run --resource-name $APP-$ENV -- scripts/
mumo.sh deploy $APP-$ENV
• クラスタを排他的ロック
• 一方が終わる前に一方を実行→エラー→Happy!(^ω^)
そろそろ時間がなくなるはず
http://qiita.com/mumoshu/items/3cbe31b315be31f510d0
謝辞
• いつもワクワクするサービスを提供してくれるAWSさ
ん
• re:Inventの参戦費用を快く出していただいた株式会社
クラウドワークスの皆さま
• 留守の間プロジェクトを進めてくれたチームの皆さま



ありがとうございましたm(_ _)m
ありがとう!

More Related Content

PDF
Building Scalable Application on the Cloud
PDF
クラウドネイティブ化する未来
PDF
JAWSDAYS2016 Technical Deep DIVE
PDF
JAWS re:Mote 2015 Nagoya
PDF
AWS Lambda / Amazon API Gateway Deep Dive
PPTX
サーバーワークスのAWS構築自動化の仕組み
PDF
【AWS初心者向けWebinar】AWSのプロビジョニングからデプロイまで
PPTX
Aws向け監視ソリューション比較
Building Scalable Application on the Cloud
クラウドネイティブ化する未来
JAWSDAYS2016 Technical Deep DIVE
JAWS re:Mote 2015 Nagoya
AWS Lambda / Amazon API Gateway Deep Dive
サーバーワークスのAWS構築自動化の仕組み
【AWS初心者向けWebinar】AWSのプロビジョニングからデプロイまで
Aws向け監視ソリューション比較

What's hot (18)

PDF
AWS初心者向けWebinar AWSではじめよう、IoTシステム構築(リピート開催用)
PDF
AWS Black Belt Tech シリーズ 2015 AWS Device Farm
PDF
JAWSUG Kansai Simple Workflow Service (SWF)
PDF
Automated Testing on AWS Device Farm
PDF
AWS Black Belt Online Seminar 2017 EC2 Windows
PDF
AWSで実現するクラウドネイティブなアプリ開発のポイント
PDF
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
PDF
DevLove Kansai AWS
PDF
AWS Black Belt Online Seminar 2016 AWS IoT
PDF
Introducing Serverless Computing (20160802)
PDF
Androidを中心に紐解くIoT
PDF
AWS Lambda Updates
PDF
Amazon Simple Workflow Service (SWF)
PDF
Serverless Architecture Overview #cdevc
PDF
ユーザーからみたre:Inventのこれまでと今後
PDF
ChefとOpsWorksで EC2 楽チンクッキング!
PDF
JAWS DAYS 2015 OpsWorks Aceに聞け
PDF
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
AWS初心者向けWebinar AWSではじめよう、IoTシステム構築(リピート開催用)
AWS Black Belt Tech シリーズ 2015 AWS Device Farm
JAWSUG Kansai Simple Workflow Service (SWF)
Automated Testing on AWS Device Farm
AWS Black Belt Online Seminar 2017 EC2 Windows
AWSで実現するクラウドネイティブなアプリ開発のポイント
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
DevLove Kansai AWS
AWS Black Belt Online Seminar 2016 AWS IoT
Introducing Serverless Computing (20160802)
Androidを中心に紐解くIoT
AWS Lambda Updates
Amazon Simple Workflow Service (SWF)
Serverless Architecture Overview #cdevc
ユーザーからみたre:Inventのこれまでと今後
ChefとOpsWorksで EC2 楽チンクッキング!
JAWS DAYS 2015 OpsWorks Aceに聞け
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
Ad

Viewers also liked (20)

PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
PPTX
AWS Startup Tech Meetup #008 発表資料
PDF
[AWS初心者向けWebinar] AWSではじめよう、IoTシステム構築
PDF
20140807 AWS Startup Tech Meetup
PPTX
S3とSNSで動画機能をつくる話
PDF
AWS Startup Tech Lightning Talks 2015 Summer at dots.
PDF
From dev to prod: Kubernetes on AWS (short ver.)
PDF
React.js + Flux入門 #scripty02
PDF
Auto-scaled Concourse CI on AWS w/o BOSH
PDF
[AWSマイスターシリーズ] Amazon VPC
PDF
Aws startup-tech-summer2015
PDF
`redux`と`flux`を比べてみたときの個人的な感想
PDF
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
PDF
スタートアップにjoinして1年間の変化を振り返る
PDF
オフライン行動を支えるメール配送管理 at サイタ
PDF
断言して間違えると信頼度が低下するというベイズの話
PDF
ラクしていい感じのスライドを作るための2つのポイント
PPTX
AWS Startup Tech - 宇宙と雲の間に CTO安川
PDF
AWS初心者向けWebinar AWSからのEメール送信
PDF
Serverless AWS構成でセキュアなSPAを目指す
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
AWS Startup Tech Meetup #008 発表資料
[AWS初心者向けWebinar] AWSではじめよう、IoTシステム構築
20140807 AWS Startup Tech Meetup
S3とSNSで動画機能をつくる話
AWS Startup Tech Lightning Talks 2015 Summer at dots.
From dev to prod: Kubernetes on AWS (short ver.)
React.js + Flux入門 #scripty02
Auto-scaled Concourse CI on AWS w/o BOSH
[AWSマイスターシリーズ] Amazon VPC
Aws startup-tech-summer2015
`redux`と`flux`を比べてみたときの個人的な感想
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
スタートアップにjoinして1年間の変化を振り返る
オフライン行動を支えるメール配送管理 at サイタ
断言して間違えると信頼度が低下するというベイズの話
ラクしていい感じのスライドを作るための2つのポイント
AWS Startup Tech - 宇宙と雲の間に CTO安川
AWS初心者向けWebinar AWSからのEメール送信
Serverless AWS構成でセキュアなSPAを目指す
Ad

Similar to AWS re:Invent 2015に初参戦→気づいたらOSS二つ作ってた (20)

PDF
エンジニア向け初めてのAWS (2015年1月6日)
PPTX
怒涛のAWS入門! クラウドプラクティショナー! 知ってました? あなた、クラウドプラクティショナーなんですよ。
PPTX
AWS活用のいままでとこれから -東急ハンズの事例-
PDF
JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築
PPTX
イノベーションエッグLt資料
PDF
AWS Startup Use Cases 2015
PPTX
良いLambdaライフを過ごすために
PDF
Bay Area Startup Report - IVS CTO Night & Day in Miyazaki
PDF
Cloudnative online-2021-stepfunction
PPTX
インフラ系自主トレするならAWS
PDF
JAWS-UG山形 AWSのきほん 2016/11/12
PPTX
CloudWatch Eventを使ったamiの削除
PDF
LambdaとMobileの美味しいかもしれない関係
PDF
愛せよ、さもなくば捨てよ。
PPTX
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
PDF
初めてのクラウド AWS編
PDF
コストみてますか?
PDF
AWS Lambdaで作るクローラー/スクレイピング
PPTX
アプリ開発&チーム管理で 役立った拡張機能
PPTX
fluxflex meetup in Tokyo
エンジニア向け初めてのAWS (2015年1月6日)
怒涛のAWS入門! クラウドプラクティショナー! 知ってました? あなた、クラウドプラクティショナーなんですよ。
AWS活用のいままでとこれから -東急ハンズの事例-
JNSA西日本支部 技術研究WG AWSを使ったセキュアなシステム構築
イノベーションエッグLt資料
AWS Startup Use Cases 2015
良いLambdaライフを過ごすために
Bay Area Startup Report - IVS CTO Night & Day in Miyazaki
Cloudnative online-2021-stepfunction
インフラ系自主トレするならAWS
JAWS-UG山形 AWSのきほん 2016/11/12
CloudWatch Eventを使ったamiの削除
LambdaとMobileの美味しいかもしれない関係
愛せよ、さもなくば捨てよ。
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
初めてのクラウド AWS編
コストみてますか?
AWS Lambdaで作るクローラー/スクレイピング
アプリ開発&チーム管理で 役立った拡張機能
fluxflex meetup in Tokyo

More from 佑介 九岡 (9)

PDF
今日から始める人のための Kubernetes on AWS ベストプラクティス 2018版
PDF
Continuous Deployments to Multiple Kubernetes Clusters
PDF
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
PDF
Elasticsearch at CrowdWorks
PDF
Basics of Akka
PDF
Scala-driven Engineering Life
PDF
IDEALIZE YOU
PDF
[Start] Scala
PDF
[Start] Playing
今日から始める人のための Kubernetes on AWS ベストプラクティス 2018版
Continuous Deployments to Multiple Kubernetes Clusters
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
Elasticsearch at CrowdWorks
Basics of Akka
Scala-driven Engineering Life
IDEALIZE YOU
[Start] Scala
[Start] Playing

AWS re:Invent 2015に初参戦→気づいたらOSS二つ作ってた