まちのりLINE Botを金沢市のオープンデータ活用事例に載せてもらった話
昨年のAdvent Calendarで金沢のレンタサイクル「まちのり」の貸出可能な自転車の状況を教えてくれるLINE Botを開発した話を書きました。
そこで紹介したLINE Botが金沢市のオープンデータ活用事例に掲載されたので、報告も兼ねて記事を書くことにしました。
まえがき
掲載の経緯を書く前にレンタサイクルまちのりと開発したLINE Botに触れておきます。
レンタサイクル「まちのり」
まちのりは金沢市中心部の22箇所のポートで貸出・返却ができ、30分以内に返せば何度乗っても200円で済む素晴らしいレンタサイクルサービスです。
近江町市場や21世紀美術館、金沢城公園、兼六園など金沢市中心部の観光地をカバーしているので、金沢を訪れた際はぜひお試しください。
開発したLINE Bot
金沢空きチャリBot*1という名前のBotです。LINEの現在地共有機能を使用し、LINE Botに現在地を送信すると、自転車を貸してくれるポートの情報の通知と道案内をしてくれるBotとなっています。
LINE Botの友だち追加は以下のQRコードから可能です。
掲載の経緯
LINE Botで使用していたまちのりAPIがオープンデータを活用したアプリコンテストのための期間限定公開になっていたので、本公開の予定について問い合わせしたことがきっかけでした。
問い合わせした当時は正式なオープンデータとして公開するために調整を行っているという回答でしたが、それからしばらくしてAPIが正式公開されて、LINE Botもあわせてオープンデータ活用事例に掲載される運びとなりました。
金沢のレンタサイクルサービス「まちのり」の空き状況を案内するLINE Botを金沢市のオープンデータ活用事例に掲載していただきました。ご興味ある方は友だち追加して使ってみてください🙏https://t.co/TRXoX5Gi5W #LINE_API #LINE_BOT #金沢 pic.twitter.com/Yc9jsUTEby
— kentaro-m (@_kentaro_m) June 19, 2018
さいごに
LINE BotのコードはGitHubに公開していますので、ライセンスに従ってお使いください。
金沢市ではまちのりAPI以外にも様々なオープンデータを公開しています。また、今年もオープンデータを活用したアプリコンテストを開催するそうです。興味のある方は以下のリンクからご確認ください。
*1:本サービスは非公式で提供しているものです。サービス利用によって生じたいかなる損害も一切責任を負いかねます。 予めご了承ください。
JAWS-UG金沢 #33 AWS Summit Tokyo & Osaka 報告会 に参加してきました
私自身も今年はAWS Summit Tokyo 2018に3日間参加して、様々な知見を得ることができました。他のAWS Summit参加者がどのような点に注目して、セッションを見ていたかが気になり、参加しました。
気になったトピック
🗒️AWS Summit報告会で気になったトピック #jawsug #jawsug_kanazawa
— kentaro-m (@_kentaro_m) 2018年7月1日
・Cloud9 (クラウドIDE)
・CodeStar
・Amazon Linux 2 LTSリリース (Amazon Linuxの今後は)
・c3.large => c4.large 新世代インスタンス (性能向上・値下げ)
・盛り上がりを見せるAlexaスキル開発https://t.co/hTJ8hYBGv3
あとから調べる用に気になったワードを当日ツイートにまとめました。
Cloud9
「Dev AWSome Day 2018 参加レポート - AWS Cloud9 を使ってサーバレスアプリケーションを作ってみた」を発表した@aibaxさんがお話されていた。
Cloud9はクラウドのIDE。クラウドだけでサーバーレスアプリケーションの構築が完了する。Lambdaのデバッグが大変なので、コードを書いて即時確認できるのは非常に便利だと感じました。
ちょうどBlack Beltにも登場していて、スライドや動画も上がっているのでチェックしたいです。
CodeStar
「AWS Summit Tokyo & Osaka 2018 行ってきた」を発表されたPharaohKJさんから出た話題。
GitHubのセッションで紹介されていたとのこと。プロジェクトテンプレートからアプリケーション及びビルドやデプロイを行うCI/CD環境をサクッと構築できる優れもの。
AWS CodeStar – アプリケーションをすばやく開発および構築して AWS にデプロイ
c4.largeとc5.largeの性能比較
「今時のEC2事情」を発表された@checkelaさんから出た話題。
c4.largeからc5.largeで性能が向上して、価格が下がったとのこと。自宅に帰ってから、調べたところ、普段利用している汎用系インスタンスもm5で性能向上と価格低下を実現していることを知りました。まったく情報がキャッチアップできてなかった。
Amazon Linux 2 LTSリリース
Amazon Linux 2 には、セキュリティアップデートとバグ修正を 5 年間提供する長期サポートが付属しています。AWS は、ユーザー空間の Application Binary Interface (ABI) と Application Programming Interface (API) の互換性を 5 年間維持します。
Amazon Linux 2への移行作業を遅かれ早かれやらないといけないと思いました。
長期サポート (LTS) を付随した Amazon Linux 2 を公開
AWSノベルティをいただきました
AWSサービスのマグネットいただきました。アーキテクチャ考えるときに便利そう pic.twitter.com/FnWvYh6Yxk
— kentaro-m (@_kentaro_m) 2018年6月30日
AWSのコミュニティマネージャーの沼口さんからノベルティの提供がありました。AWSサービスのマグネットは以前からTwitterで見かけて気になっていたので嬉しかったです。 会社でアーキテクチャを考えるときに活用させていただきます。
飛び込みでLT
AWS Summitの参加者として、自分が興味を持ったポイントを伝えられたらと思い、飛び込みでLTさせていただきました。
内容はAWS SAMというサーバーレスアプリケーションの構築に特化したフレームワークを使って、簡単なアプリケーションを作った話。
- AWS SAMはCloudFormationの拡張でサーバーレスアプリケーションの構築に特化している
- サーバーレスリソースの定義を使用することで通常のCloudFormationよりも記述量が減る
- デプロイが数回コマンドを打つだけできる
- ローカル実行サポート
以下が当日紹介したアプリケーションのリポジトリです。
Node.jsでServerless Frameworkを利用するためのテンプレートを作った
業務でAPI GatewayとLambdaを組み合わせたサーバーレスなアプリケーションを作る機会が最近何度かあった。そのときはnode-lambdaというツールを使用してLambdaをデプロイして、API Gatewayを手動で設定するという流れで開発を進めた。
管理対象のアプリケーションの数が少ないうちはこれで問題ない。しかし、増えてくると管理が大変になってくる。
そこでAWSリソースをまとめて管理し、サーバーレスアプリケーションを容易に構築できるというServerless Frameworkというツールを試してみることにした。
Serverless Frameworkをはじめる
# Serverless CLIをグローバルインストール $ yarn global add serverless # テンプレートからプロジェクトを作成 $ serverless create --template hello-world # Lambda関数をデプロイ $ serverless deploy
3コマンドを実行するだけでus-east-1リージョンにLambda関数がデプロイされる。*1
普段よく利用するツールを含んだテンプレートを作る
Serverless CLIにはテンプレートからプロジェクトを作成する機能があり、これを活用することでサーバーレスアプリケーションの開発環境を素早く準備できる。
今回は以下のツールをあらかじめ導入した状態のテンプレートを作り、API GatewayとLambdaを組み合わせたアプリケーションの開発環境を整備する。ベースはhello-worldを使用。
完成したテンプレートがこちら。
$ serverless install --url https://github.com/kentaro-m/serverless-nodejs-boilerplate --name my-project
ServerlessテンプレートをGitHubに公開しておけば、上記のように実行することでローカルに落とすことができる。
さいごに
実はこれまで個人開発ではAWS SAMというAWS公式のサーバーレスアプリケーション構築のフレームワークを利用してきた。もともとCloudFormationを使っていたこともあり、違和感を覚えることなく開発していた。
しかしながら、今回Serverless Frameworkを試してデプロイまでのあまりの簡単さに驚いてしまった。もちろん一長一短があると思うが、「早く・簡単に」を求めるなら、Serverless Frameworkを選ぶのが良いかもしれない。
AWS SAMを利用した開発事例: GitHubでのプルリクエスト運用を加速するためにプルリくんというBotを作った話 - Qiita
2017年を振り返る
新卒入社して2年目だった2017年を忘れないように振り返ろうと思います。
仕事
2016年夏から基盤アプリケーションの開発に関わっていたのですが、12月に全機能リリースできました。入社してから1番達成感がありました。
開発を進める上でAWSの知識が必要になり、社内のトレーニングやAWS Summitに参加して1年を通して情報をキャッチアップしてました。
これからは運用フェーズに入ってくるので、運用周りの知識をつけていきたいと思い、最近は暇があればSRE本を読んでいます。会社の方でも技術本の購入補助の仕組みがあるので、来年はたくさんの本を読みたいです。

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム
- 作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/08/12
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
作ったもの
手を動かしながら勉強するのが好きなので、今年はプライベートでいくつかツールを作って公開しました。来年もできる範囲で続けていけたらいいと思います。
- md2confl
- Coverage Markers
- lambda-pr-notify-bot
- プルリクエストの運用を自動化するBot
- GitHubでのプルリクエスト運用を加速するためにプルリくんというBotを作った話 - Qiita
- github-commenter
- kanazawa-avaiable-bike-line-bot
- 金沢のレンタサイクル「まちのり」の空き状況を教えてくれるLINE Bot
- 金沢のレンタサイクル「まちのり」の空き状況を教えてくれるLINE Botを作った - Qiita
話したこと
9月に外部の勉強会で初めて登壇しました。10分という決められた時間の中で要点を押さえて伝えることの難しさを感じました。事前準備や発表を通して、様々な知見を得たので今後に活かしていきたいと思います。
さいごに
書いてるうちに年を越してしまったので、締まらないですがここで終わろうと思います。
2018年もよろしくお願いします。