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
560
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
380
[JAWS-SG#02] 個人開発やハッカソンで役立つ、便利APIのつくりかた
kkmory
0
110
AWSで動画変換&配信基盤を作った話
kkmory
0
220
Slackであそぼ!!
kkmory
0
100
Git-study-Hackz-treasure
kkmory
0
230
飯塚ブロックチェーン勉強会 #1
kkmory
0
110
Swarm: The distributed storage platform
kkmory
1
750
Kindai_Blockchain_study01
kkmory
0
230
Other Decks in Programming
See All in Programming
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
130
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
330
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
260
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
290
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
290
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
220
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.2k
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
920
Featured
See All Featured
Bash Introduction
62gerente
608
210k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Speed Design
sergeychernyshev
25
620
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Automating Front-end Workflow
addyosmani
1366
200k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Music & Morning Musume
bryan
46
6.2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Faster Mobile Websites
deanohume
305
30k
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...