SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2017】セッションレポート

サーバレスアーキテクチャのメリットを最大限に活用し、戦略的なシステム開発プロセスを実現する【デブサミ2017】

【17-A-3】サーバレスにおける開発プロセス戦略

  • X ポスト
  • このエントリーをはてなブックマークに追加

サーバレスを導入したメリットと苦労した点

 生井氏はサービスのバックエンドでAWS Lambdaを利用。画像変換処理の部分をAWS Lambdaに置き換えてアップロード処理の高速化を図りました。移行後も速度は安定しており、「アップロード数が増えてもスケールアップの手間が不要で、パフォーマンスを維持できている」とコメント。猪飼氏も同様に、紙面ビューアーの画像加工でAWS Lambdaを使用しており、「AWS Lambdaがスケーリングしてくれることでアクセスの急増にも対応でき、安心感がある」と語りました。そして、「まれにタイムアウトが発生するが、AWS Lambdaは3回までリトライしてくれるのでカバーできている」と補足しました。

 一方、苦労した点について、生井氏は「導入を検討していた2015年当時は事例の数も乏しく、参考となる情報が少なかったので手探り感があった」と振り返り、「本番のデータ量やコール回数等、想定されるアクセス負荷に耐えられるのか不安があった」と語りました。相馬氏には、ある構成がタイムアウト制限に引っ掛かってしまい、構成を変更してAWS LambdaからAmazon EC2に戻した経験がありました。「AWS Lambdaならではの開発の都合をよく分かっていなかった部分もある」と述べましたが、吉田氏はこれに対して「無理せず、戻したほうがいいのであれば、そうしたほうがいい」とフォロー。相馬氏はそれを受けて「ダメなら戻してしまったほうが精神的にも楽ですね」とコメントしました。猪飼氏も生井氏同様、「公式のドキュメント以外の情報が少なく、手探り状態だった」と話し、さらに「ローカルでテストがしづらく、ユニットテスト以外のテストが大変だと感じながら進めていた」と、苦労した点を語りました。

サーバレスアーキテクチャが抱える課題

 このように、サーバレスアーキテクチャは多くのメリットがある一方で、テストがしづらいという課題を抱えています。その中でも比較的実施しやすいユニットテストは、今回登壇したパネラーの方々は全員「ローカル環境で、シンプルに実行できるようにしている」とのことでした。しかし他のイベントソースと絡んだ処理のテストには苦心しているようで、「手動で実行可能な部分は手動でテストしている」とのことでした。

 次にステージング環境の管理、具体的には「開発用/ステージング/本番用と分けられた環境をどのように管理運用しているか」という点ついて、意見が交わされました。これらをサポートする機能としては、AWS Lambdaのエイリアス機能やAmazon API Gatewayのステージ機能が用意されています。しかし、パネラーからは「使ってみたい気持ちはあるが、まだ活用できていない」「システムが複雑になりそうなのでそこまで使いたいと思わない」といった意見が挙がりました。現状は「アカウントごとに環境を分ける」「環境ごと(の名称)にプレフィクスを設定し、開発用の環境には開発用の関数を使用、S3バケットも開発用のものを割り当てる」などの対処で乗り切っているとのことです。

サーバレス開発を加速させるツールについて

 先日開催されたServerlessConf Tokyoでは、サーバレス開発で使用しているツールについて、アンケートが実施されました。

「サーバレスでの開発にどんなツールを使っているか?」アンケート結果
「サーバレスでの開発にどんなツールを使っているか?」アンケート結果

 それを踏まえ、このセッションでもツールについての意見交換が行われました。

 まず、Serverless Communityでも人気の「Apex」について、吉田氏が「ライブラリをまとめるのに使っていますが便利」と解説。生井氏も続けて「ApexはGo言語で実装されているので導入も楽ですね」と評価しました。

 相馬氏は現在「Serverless Framework」の導入に向けて検証を行っているそうです。「Amazon API GatewayとAWS Lambdaのひも付け設定が行えるので、その部分をバージョン管理してスムーズな改修・リリース作業を行えるようにしたい」と展望を語りました。同種のものとして、吉田氏はAWS公式の「AWS Serverless Application Model(SAM)」を挙げ、「Apex同様、APIのエントリと関数をセットで管理できるので今後人気を二分することになるのでは」と期待を寄せました。

サーバレスに向くもの、向かないもの

 トピック盛り沢山で進行したディスカッションもあっという間に時間が過ぎ、終了が近づきました。吉田氏は最後に「サーバレスに向いているシステムの見極めポイント」について、パネラーに意見を求めました。

 猪飼氏は、「長い時間がかかるもの、大きなシステムでは苦労するだろう。単純なシステムが向いていると思う。開発体制も少人数が好ましく、大規模のチームではコスト面の課題がある」と語りました。相馬氏は「リクエストをキューイングするようなシステムがサーバレスに適している」とコメント。「JavaScriptやPythonで書かれた長くないコードで、システム全体が非同期で稼働するものがいいと思う」と続けました。生田氏は「必要なときにだけ動かしたい、イベント駆動で作るシステムが向いているのではないか」と提案しました。

 そして、吉田氏が「今後もぜひサーバレスの開発をどんどん進めていき、より良い運用とより素早い開発フローを洗練させていってほしい」とコメントし、セッションを締めくくりました。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2017】セッションレポート連載記事一覧

もっと読む

この記事の著者

しんや(シンヤ)

2010年末~2013年前半位までの期間で興味のある勉強会に頻繁に参加。参加してきた勉強会のレポートブログとTogetterをひたすらまとめ続け、まとめ職人(自称/他称含む)として暫く過ごしておりました。色々な縁あってDevelopers Summit 2013では『公募レポーター』も務めました。2013年05月『出張ブロガー』を経て2013年08月にクラスメソッド株式会社へ転職。現在は業務(AWS及びその周辺技術を扱う)の...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10091 2017/04/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング