Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーバーレスフレームワークを触って考えた私的まとめ
Search
TakeshiNickOsanai
September 27, 2019
Technology
0
68
サーバーレスフレームワークを触って考えた私的まとめ
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
92
freeeの DevRel 立ち上げから半年を振り返る
takeshinickosanai
0
170
エンジニアの新しいキャリア「DevRel」とは
takeshinickosanai
0
1.1k
20190927プレゼン_API_FY20Q1_.pdf
takeshinickosanai
0
56
freeeで勉強会を開催してみませんか.pdf
takeshinickosanai
0
78
freee API用アカウントとデータを爆速で準備する
takeshinickosanai
0
82
Other Decks in Technology
See All in Technology
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
120
【pmconf2025】PdMの「責任感」がチームを弱くする?「分業型」から全員がユーザー価値に本気で向き合う「共創型開発チーム」への変遷
toshimasa012345
0
270
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
120
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
440
モバイルゲーム開発におけるエージェント技術活用への試行錯誤 ~開発効率化へのアプローチの紹介と未来に向けた展望~
qualiarts
0
660
Kiro Autonomous AgentとKiro Powers の紹介 / kiro-autonomous-agent-and-powers
tomoki10
0
320
手動から自動へ、そしてその先へ
moritamasami
0
280
直接メモリアクセス
koba789
0
280
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
140
MapKitとオープンデータで実現する地図情報の拡張と可視化
zozotech
PRO
1
120
バグハンター視点によるサプライチェーンの脆弱性
scgajge12
3
1k
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
120
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Optimizing for Happiness
mojombo
379
70k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
For a Future-Friendly Web
brad_frost
180
10k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
GraphQLとの向き合い方2022年版
quramy
50
14k
Faster Mobile Websites
deanohume
310
31k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
A better future with KSS
kneath
240
18k
Designing for Performance
lara
610
69k
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の記事にまとめました!
スモールビジネスを、 世界の主役に。