Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
rubyonjets_with_aws_for_research
Search
Keisuke Mori
December 14, 2019
Programming
0
590
rubyonjets_with_aws_for_research
「Ruby on Jets × AWS で 研究の生産性を上げた話」
〜 しがない学部生はServerlessで生産性向上の夢を見るか 〜
Keisuke Mori
December 14, 2019
Tweet
Share
More Decks by Keisuke Mori
See All by Keisuke Mori
AWSを使う上で意識しておきたい、クラウドセキュリティ超入門(駆け足版)
kkmory
1
420
[JAWS-SG#02] 個人開発やハッカソンで役立つ、便利APIのつくりかた
kkmory
0
150
AWSで動画変換&配信基盤を作った話
kkmory
0
250
Slackであそぼ!!
kkmory
0
130
Git-study-Hackz-treasure
kkmory
1
280
飯塚ブロックチェーン勉強会 #1
kkmory
0
150
Swarm: The distributed storage platform
kkmory
1
820
Kindai_Blockchain_study01
kkmory
0
260
Other Decks in Programming
See All in Programming
atmaCup #23でAIコーディングを活用した話
ml_bear
3
600
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
190
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
120
今から始めるClaude Code超入門
448jp
8
9.3k
その「common」ディレクトリ、腐っていませんか?
kinocoboy2
1
100
Gemini for developers
meteatamel
0
120
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
0
440
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
850
あなたはユーザーではない #PdENight
kajitack
4
200
ご飯食べながらエージェントが開発できる。そう、Agentic Engineeringならね。
yokomachi
1
210
CSC307 Lecture 08
javiergs
PRO
0
690
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.4k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.4k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
RailsConf 2023
tenderlove
30
1.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
How to Talk to Developers About Accessibility
jct
2
140
Paper Plane
katiecoart
PRO
0
47k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
390
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Music & Morning Musume
bryan
47
7.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Leo the Paperboy
mayatellez
4
1.4k
Transcript
Ruby on Jets × AWS で 研究の生産性を上げた話 Kindai University Keisuke
Mori しがない学部生はServerlessで生産性向上の夢を見るか
Mory 近畿大学産業理工学部 - 情報学科 3回生 - Bitcoin, Lightning Network Keisuke
Mori - @moririn772 2 株式会社ハックツ - Co-Founder - Rails, Go, Vue.js, AWS 好きなことば - ΏΔ;Θ, ӽڥ
・永年初心者 - カンゼンリカイ ⇔ ナンモワカラン ・弊社プロダクト(開発中) - 動画変換API,
画像変換API ・工務店様向けCMSの新規開発 - JSON-API server : Ruby on Jets, DynamoDB - Authentication : Cognito, AWS Amplify - Frontend : Vue.js on Lambda 3 Serverless and @moririn772
・背景と技術要件 ・Ruby on Jets ? ・設計のポイント ・運用してみての気付き ・今後の改善点 ・まとめ 4
Agenda
・背景と技術要件 ・Ruby on Jets ? ・設計のポイント ・運用してみての気付き ・今後の改善点 ・まとめ 5
Next …
山崎重一郎研究室(ネットワーク) ・BitcoinのSecond Layer ・研究目的でノードを100台近く運用中(予定) Raspberry Pi … 76台 Intel NUC
… 25台 6 大学で何をやっているのか
・100+台のノードたちの構成管理がキツい ・手動デプロイがとてもキツい ・ネットワーク的な制限があって学外からさわれないのがキツい ・技術的な練度の違いで、運用できる人間が限られている ・ 〃 ツールの使い方が浸透しない 7 抱えていた(抱えている)課題
! VPN ! 踏み台サーバー ! そもそもラボ内マシンへの外部からのSSH 8 前提
9 Labo 1. 手順書をもとにペチペチ Pi NUC CBTI CBTI खॱॻ
10 Labo 2. Itamae で構成管理 Pi NUC %4- खॱॻ Ϩγϐ
൘લ͞Μ *UBNBF Ϩγϐ
11 Labo 3. Docker NUC #BTI खॱॻ %PDLFSpMF *UBNBF Ϩγϐ
12
・人 海 戦 術 ・各地に散らばるドキュメント ・Infrastructure as Code ・カオス化するマシンたち 13
つらみ〜
・1箇所でポチポチするだけで構成の変更ができる ・現在の構成と運用状況がわかる ・学外からでもさわれる ・運用コストをかけない ・Rubyを使いたい 14 以上を踏まえ、ざっくり要件
15 無期限無料枠 $
ポチポチするだけで構成管理ができる、 いい感じの管理画面を、 無料枠がある Lambda, DynamoDB を中心に、 Cognito で認証機能をサクッといれつつ、 できれば Ruby
をつかって つくればいいのね! 16
ポチポチするだけで構成管理ができる、 いい感じの管理画面を、 無料枠がある Lambda, DynamoDB を中心に、 Cognito で認証機能をサクッといれつつ、 できれば Ruby
をつかって つくればいいのね! 17 Rubyist やけん Ruby ば書きたか! Serverless なアーキテクチャで作ってみたか!
18
・背景と技術要件 ・Ruby on Jets ? ・設計のポイント ・実装のポイント ・今後の方針 ・運用してみての気付き ・まとめ
19 Next …
“ The Ruby Serverless Framework ” 20 Ruby on Jets
フルスタックフレームワークなので、 使いたい用途に応じていい感じに始められる 21 Mode API ViewΛੜ͠ͳ͍ JSON-APIͱ͔ HTML ;ͭ͏ͷRailsత ཧը໘ͱ͔
JOB δϣϒΛಈ͔͢
22 Commands
コマンド一発でいい感じの CRUDを生成してくれる。 23 Scaffold
24 Deploy
25 https://rubyonjets.com/
Cloud Formation を意識せず、 Rails Like な DSL によってバックエンドを構成する (内部的には Cloud
Formation が生成されている) 26 Bye YAML, Hello Ruby
27 Routing
28 Routing
29 Action (Function)
30 Database RDSを使うのであれば、普通のRailsと雰囲気同じ Amazon Aurora Serverless を使うもよし、 VPC内にLambdaと同居させてあげるのもよし * 標準で
“dynomite” という ORM が入るが、 Rails で広く使われている “dynamoid” を使うのが安定
31 Database https://aws.amazon.com/jp/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda-functions/
32 Database https://aws.amazon.com/jp/about-aws/whats-new/2019/12/amazon-rds-proxy-available-in-preview/
33 Prewarming Jets はデフォルトでPrewarmingをサポートしてくれる (Controllerに関わるアクションのみ)
34 Prewarming https://aws.amazon.com/jp/blogs/news/new-provisioned-concurrency-for-lambda-functions/
35 See also … “Ruby Serverless Framework“ Tung Nguyen @tongueroo
https://rubykaigi.org/2019/presentations/tongueroo.html
・背景と技術要件 ・Ruby on Jets ? ・設計のポイント ・運用してみての気付き ・今後の方針 ・まとめ 36
Next …
37 LJUDIFO -BCP %PDLFS pMF Pi NUC ൘લ͞Μ *UBNBF SFDJQF
全体像
・背景と技術要件 ・Ruby on Jets ? ・設計のポイント ・運用してみての気付き ・今後の方針 ・まとめ 38
Next …
・GitHub で dockerfile や itamae recipe を管理し、 管理画面から適用するワークフローの基礎ができた ・学外からでも構成変更が可能に ・ノードの運用状況が一目瞭然
・たのしく、サクッと作れた 39 使える!
・学習コスト低い(サクッとつくるだけなら……) ・使用頻度を考えてもずっと無料枠内で運用できそう ・Rails の便利gemがそのまま使える(のが多い) ・Rails のプロジェクトを強制的に Jets としてデプロイできる ( AfterBurner
Mode というのがありまして…) ・使用頻度を考えてもずっと無料枠内で運用できそう 40 Easy!
・テストがちゃんと書ける!(デフォルトで Rspec が使える…!) ・弊学は、Ruby, Rails に関する知見のある学生が多いので、 誰でもメンテ(しようという意思があれば)できる。 41 Maintainability!
・背景と技術要件 ・Ruby on Jets ? ・設計のポイント ・運用してみての気付き ・今後の方針 ・まとめ 42
Next …
・板前さんにポーリングさせるのやめたい ・というかそもそも板前さん退職させたい ・Docker image のビルド、管理もやりたい ・ログの閲覧とかもやりたい(現状試験的に Datadog Logs を使用) ・もっとよくしたい
(そもそも、もっと良いアーキテクチャあるでしょ絶対) 43 もっとかんたんに、もっと便利に
・背景と技術要件 ・Ruby on Jets ? ・設計のポイント ・運用してみての気付き ・今後の方針 ・まとめ 44
Next …
・研究室にあるマシンたちの運用ツールを作った話 ・成果物はそれほど苦労せず意外といい感じにできた ・さよなら YAML ・Ruby on Jets は Rails っぽく
Serverless Application を開発できる ・Ruby on Jets は Serverless への入口によさそう ・Lambda ⇔ RDS のようなアンチパターンが徐々になくなってる (?) ・とりあえずやってみよう! 45 まとめ
Thank you !! “Ruby on Jets × AWS Ͱݚڀͷੜ࢈ੑΛ্͛ͨ” And
enjoy your serverless days
Ruby on Jets _ The Ruby Serverless Framework [EN] Ruby
Serverless Framework / Tung Nguyen @tongueroo 5ͰAWS LambdaʹσϓϩΠͰ͖ΔʮRuby on Jetsʯ 参考 https://rubyonjets.com/ https://youtu.be/a0VKbrgzKso https://qiita.com/kskinaba/items/9c...