AWS Lambda と API Gatewayを使って、URL短縮サービスをWEBサーバなしで作った

toyama satoshi
Oct 15, 2015 · 2 min read

twitterにURLを貼るときによく使う、https://bitly.com/https://goo.gl/のようなURL短縮サービスを独自ドメインで使いたくて、既存サービスを使ったり、OSSを使って実現できないか検証した結果、実現出来そうだが、何かと手間がかかりそうだった。

ひとまず、自作する方向でインフラやアプリケーションの設計を始めたが、単純な機能だし、誰でも簡単に、例えばボタンひとつでURL短縮サービスが立ち上げられるような作りにして公開することにした。

できたのがこちら、「qutto(長いURLをキュッと(短く)する)」

デモページ(https://toyamarinyon.github.io/qutto)

URLを入力すると、7文字の文字列を返す。7文字の文字列を入力すると、もとのURLを返す。(短縮URLからもとのURLに戻ったことを確認するデモページはない)

動作を確認するためにデモページを作っているが、実態はAPI Gatewayをインタフェースとして、AWS Lambdaが短縮処理を実行し、DynamoDBがデータを永続化している。

これまでもS3を使って静的なサイトのホスティングしたり、SMSやSNSを使ってメール配信、プッシュ通知を実行することはできたが、任意の処理を実行するにはどうしてもEC2が必要だった。この常識をAWS Lambdaが覆した。AWS Lambdaについては、別途書こうと思うけれど、今回みたいなシンプル機能を簡単に稼働させられるので、これから重宝すると思う。

AWS Lambdaで実行している関数は、javascriptで書いたけれど、ライブラリを除けば以下のように100行に収まった。

javascriptは、最近話題のECMAScript6を初めて使ってみた。といっても使ったのは、アロー関数とプロミスくらい。それでもアロー関数とプロミスの相性が良くて、処理が透明になったと思う。

今年はこれで自作プロダクトが3つになった。(Gardener,Qri,Qutto)年内にあとひとつは形にしたいな。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store