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
570
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
400
[JAWS-SG#02] 個人開発やハッカソンで役立つ、便利APIのつくりかた
kkmory
0
140
AWSで動画変換&配信基盤を作った話
kkmory
0
240
Slackであそぼ!!
kkmory
0
120
Git-study-Hackz-treasure
kkmory
1
250
飯塚ブロックチェーン勉強会 #1
kkmory
0
130
Swarm: The distributed storage platform
kkmory
1
780
Kindai_Blockchain_study01
kkmory
0
250
Other Decks in Programming
See All in Programming
Building Scalable Mobile Projects: Fast Builds, High Reusability and Clear Ownership
cyrilmottier
2
310
「影響が少ない」を自分の目でみてみる
o0h
PRO
2
1.2k
VitestのIn-Source Testingが便利
taro28
8
2.2k
Vibe Coding の話をしよう
schroneko
12
3k
プロダクト横断分析に役立つ、事前集計しないサマリーテーブル設計
hanon52_
2
470
Strategic Design (DDD)for the Frontend @DDD Meetup Stuttgart
manfredsteyer
PRO
0
170
Contribute to Comunities | React Tokyo Meetup #4 LT
sasagar
0
550
Ruby on Railroad: The Power of Visualizing CFG
ydah
0
110
サービスクラスのありがたみを発見したときの思い出 #phpcon_odawara
77web
4
690
SwiftUI API Design Lessons
niw
1
300
Dissecting and Reconstructing Ruby Syntactic Structures
ydah
2
1k
カオスに立ち向かう小規模チームの装備の選択〜フルスタックTSという装備の強み _ 弱み〜/Choosing equipment for a small team facing chaos ~ Strengths and weaknesses of full-stack TS~
bitkey
1
100
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.1k
Into the Great Unknown - MozCon
thekraken
38
1.7k
Unsuck your backbone
ammeep
670
57k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
9
760
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Designing Experiences People Love
moore
141
24k
Gamification - CAS2011
davidbonilla
81
5.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Thoughts on Productivity
jonyablonski
69
4.6k
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...