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
43
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
78
会計freeeのご紹介
takeshinickosanai
0
73
freeeの DevRel 立ち上げから半年を振り返る
takeshinickosanai
0
130
エンジニアの新しいキャリア「DevRel」とは
takeshinickosanai
0
870
サーバーレスフレームワークを触って考えた私的まとめ
takeshinickosanai
0
49
freeeで勉強会を開催してみませんか.pdf
takeshinickosanai
0
66
freee API用アカウントとデータを爆速で準備する
takeshinickosanai
0
63
Other Decks in Technology
See All in Technology
エンジニアのキャリアをちょっと楽しくする3本の軸/Three Pillars to Make an Engineer's Career More Enjoyable
kwappa
0
2.7k
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
1
250
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
130
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
110
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
320
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
240
反実仮想機械学習とは何か
usaito
PRO
11
4.7k
Azureの基本的な権限管理の勉強会
yhana
0
610
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
1.3k
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
530
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
340
Featured
See All Featured
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
For a Future-Friendly Web
brad_frost
172
9k
The Invisible Side of Design
smashingmag
294
49k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Being A Developer After 40
akosma
57
580k
Building an army of robots
kneath
300
41k
Product Roadmaps are Hard
iamctodd
44
9.7k
The Cult of Friendly URLs
andyhume
74
5.7k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Building Adaptive Systems
keathley
31
1.9k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
Git: the NoSQL Database
bkeepers
PRO
422
63k
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の記事にまとめました!
スモールビジネスを、 世界の主役に。