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
20190927プレゼン_API_FY20Q1_.pdf
Search
TakeshiNickOsanai
September 27, 2019
Technology
0
56
20190927プレゼン_API_FY20Q1_.pdf
2019年9月27日「fun-tech meetup #13 みんなのサーバレストーク!」の発表資料です。
TakeshiNickOsanai
September 27, 2019
Tweet
Share
More Decks by TakeshiNickOsanai
See All by TakeshiNickOsanai
プラットフォーム事業を推進するための開発者マーケティング
takeshinickosanai
0
85
会計freeeのご紹介
takeshinickosanai
0
89
freeeの DevRel 立ち上げから半年を振り返る
takeshinickosanai
0
170
エンジニアの新しいキャリア「DevRel」とは
takeshinickosanai
0
1k
サーバーレスフレームワークを触って考えた私的まとめ
takeshinickosanai
0
66
freeeで勉強会を開催してみませんか.pdf
takeshinickosanai
0
78
freee API用アカウントとデータを爆速で準備する
takeshinickosanai
0
79
Other Decks in Technology
See All in Technology
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
230
研究開発と製品開発、両利きのロボティクス
youtalk
1
520
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
350
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
160
テストを軸にした生き残り術
kworkdev
PRO
0
190
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.4k
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.2k
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
20
9.6k
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
130
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
270
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
160
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
380
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.5k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
A Tale of Four Properties
chriscoyier
160
23k
KATA
mclloyd
32
14k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Making Projects Easy
brettharned
117
6.4k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Transcript
freee 株式会社 サーバーレスフレームワークを触って 考えた私的まとめ サーバーレスフレームワークを触って 考えた私的まとめ 2019.09.27 Takeshi Nick Osanai
早稲田大学卒業後、アスキーでゲームビジネス従事。シックス ・アパート株式会社でディベロッパーリレーションを担当後、 2019年8月にfreeeへjoin。 • AWS認定ソリューションアーキテクト(SAA) • Qiita Microsoft Azure Anntena賞(2018)
• TOEIC 875 好きなこと: ジョギング、ダンス、野球観戦 (埼玉西武ライオンズと横浜DeNAベイスターズファン) ゲーム (スプラトゥーン、ドラクエ) 家族と過ごす時間 Takeshi “Nick” Osanai 長内 毅志 freee株式会社 ディベロッパーリレーション 2 @Nick_smallworld
前置き 3 • 今回の発表は、個人の体験・見解に基づくものとなり、所属する 企業とは関係がありません。 • 誤記が含まれる場合があるため、詳細は各事業者の公式ド キュメントをご参照ください。
4 • サーバーレスとは • サーバーレスのメリット • 主要クラウド事業者のサーバーレス • 開発の実際 •
APIゲートウェイ • まとめ アジェンダ
5 会社の紹介
6 アイデアやパッションやスキルがあればだれでも、 ビジネスを強くスマートに育てられるプラットフォーム スモールビジネスを、世界の主役に。 161億603万円 (資本準備金等含む) 従業員数 事業内容 クラウド型バックオフィスサービスの開発・販売 資本金
設立年月日 2012年7月 505名(2019年1月末時点)
7 会計・給与共に法人シェアNo.1 * BCN調べ * MM総研調べ * 2017年8月より、クラウド給与計算ソフト freeeは、機能を強化し、新たに 「人事労務
freee」というサービス名に変更しました。 クラウド給与ソフト 市場 40% クラウド会計ソフト 市場 35.2%
8 利用事業所数累計 100万 2014.3 2015.3 2016.3 2017.3
2018.3 800,000 600,000 300,000 65,000 1,000,000 1,000,000
9 IPO準備・成長企業への導入が加速 41% 資金調達Top100社の freee 導入率 ※ 出典:entrepedia ベンチャーリスト
※ 資金調達額TOP100社:直近1年で1億円以上の資金調達をした企業を対象に調査
10 サーバーレスとは
11 サーバーレスとは • 必要なときにサーバーリソースを利用して処理を実行するサー ビス • 常時サーバーを立ち上げる必要がない • (ユーザーから見ると) サーバーの保守運用を行う必要がない
12 通常のサーバー=自家用車 自分で車を所有。自由に使えるが保守運用は自分たちが行う 必要あり サーバーレス=レンタカー 必要なときに必要な時間だけ利用。 サーバーレスのイメージ
13 サーバーレスのメリット • コストメリット ◦ 稼働時間分だけ課金 • 保守運用の手間がない • 定型的な処理を不定期に実行する場合は利用価値が高い
14 通常のサーバー サーバーを常時立ち上げ。課金は24時間365日分 サーバーレス 稼働した分だけ課金 例:課金イメージ
15 サーバーレスのデメリット • 設定難易度 ◦ 各クラウド事業者のサーバーレス設定手順を理解する必要が ある • ランタイムの制限 ◦
初期状態では言語や利用できるミドルウェア・モジュールに制 限がある
16 16 AWS Lambda 主要クラウド事業者のサーバーレス Azure Functions
Cloud Fucntions
17 開発の実際
個人的なサンプル実装から 18
19 個人的なサンプル実装から ※一年以上前の開発のため、現在はだいぶ仕様が変わっています • https://qiita.com/TakeshiNickOsanai/items/46888a059fa8bae9eae0 • https://qiita.com/TakeshiNickOsanai/items/adef863fe6b50d38b4fe • https://qiita.com/TakeshiNickOsanai/items/c572f585bd134d31e4f6 •
https://qiita.com/TakeshiNickOsanai/items/4b8d4445acae71100876 今回は「AWS Lambda」に絞って話します。
20 AWS Lambdaメモ
21 AWS Lambdaのサポート言語 • 初期状態のサポート言語環境は以下の通り(2019/09) ◦ .NET ◦ Go ◦
Java ◦ Python ◦ Node.js ◦ Ruby (2018はJava, Python, Node.js の3言語)
22 カスタムランタイムとは? • Lambdaがサポートする言語以外を利用したい場合「カスタムランタイム」を使う。 ◦ php、Perl、COBOL、BASH、etc… ◦ 言語の実行環境を自前で作る必要があるため、一手間かかる ◦ WordPressのようなフルパッケージシステムを動かすには不向き
(というか不可能) ◦ シンプルなプログラムの動作などには向いている
23 カスタムランタイムの設定について • https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtimes-walkthrough.html
24 Lambdaで使える関数・モジュール • 初期状態ではデフォルトの関数しかサポートしていない ◦ 例:Node.js で、Ajax通信によく使われる「Express」や「axios」は、AWS Lambdaの デフォルト環境では使えない ▪
「http」のような、Node,jsのデフォルト関数はLambdaでも利用可能 ◦ Expressなどのモジュールを利用する場合、ローカルでNode.jsの実行環境を構 築後、Zipで圧縮してLambdaへアップロード→展開する必要がある
25 Lambdaでデータ保存したい場合 • Lambdaにデータストアは存在しない ◦ 一時的なファイルはテンポラリに保存できるが、関数実行後、揮発する • 保存したいデータがある場合、別途保存場所を確保して書き込む必要がある ◦ 例:フォームメールの受付をLambdaで処理し、リストに保存したい場合、受付
データをS3やEC2、RDSなどに保存する必要がある
26 Lambdaを利用した開発の実際 • IAM、CloudWatchを始め、AWSの各機能とそれぞれの概念、役割を覚えないと、実 際の開発は行えない ◦ AWSに関する広範囲の知識が必要 • 便利だが、要求される知識量は多い
27 Lambda+API Gateway • 外部からのデータ入力→Lambdaで処理する場合「AWS Gateway」を同時に使う • APIの独自エンドポイントを定義し、Lamdbaと連携 • 外部との入出力がない場合は設定不要
28 まとめ
サーバーレス 29 • サーバーレスは、定型的な処理をオンデマンドで実行するアーキテクチャ • ユースケースによっては仮想サーバーよりもコストメリットが高くなる • サーバーレスを利用した開発は、クラウドサービスの各機能を組み合わせて開発 する必要がある •
データ保存場所は別途準備する必要がある
30 AWS Lambdaの勉強にお勧めできる本 • 全体像+サンプルシナリオでわかりやすい • 1からLambdaを覚えたい場合お勧め
31 Azure Functions の勉強にお勧めリソース Microsoft Learn • Functionsだけでなく、Azureを網羅的にカバーしている • 文章はある程度わかっている前提のため、やや難しめ
• とりあえず眺めてみると発見があるかも
32 ちょっとだけ宣伝
33 freee API ご存知ですか?
STEP1 freeeアカウントを作成 STEP2 テストデータの設定 STEP3 認証テスト 34
爆速で freee API のテストデータを作る
35 「freee の API を利用した開発を行うた めのアカウントとテストデータを、無料 で設定する」 詳細手順 Qiitaの記事にまとめました!
スモールビジネスを、 世界の主役に。