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
390
[JAWS-SG#02] 個人開発やハッカソンで役立つ、便利APIのつくりかた
kkmory
0
130
AWSで動画変換&配信基盤を作った話
kkmory
0
230
Slackであそぼ!!
kkmory
0
110
Git-study-Hackz-treasure
kkmory
0
240
飯塚ブロックチェーン勉強会 #1
kkmory
0
120
Swarm: The distributed storage platform
kkmory
1
760
Kindai_Blockchain_study01
kkmory
0
240
Other Decks in Programming
See All in Programming
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1.1k
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
140
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.2k
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
180
Azure AI Foundryのご紹介
qt_luigi
1
210
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
240
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
3
240
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
590
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
150
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
410
.NETでOBS Studio操作してみたけど…… / Operating OBS Studio by .NET
skasweb
0
120
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
96
5.3k
Practical Orchestrator
shlominoach
186
10k
Unsuck your backbone
ammeep
669
57k
The World Runs on Bad Software
bkeepers
PRO
66
11k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
GraphQLとの向き合い方2022年版
quramy
44
13k
A designer walks into a library…
pauljervisheath
205
24k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Six Lessons from altMBA
skipperchong
27
3.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
360
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
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...