女優業とエンジニア業は意外と相性がいい

増井:今日はデベロッパー視点で見たAWSという形で、AWSって主にインフラの人がよく使うイメージがあるんですがそうじゃなくて、アプリケーションデベロッパーの人でもどういうふうに使えるのかって話をしていきたいと思います。それぞれ皆さんに自己紹介をしていただきたいと思います。

池澤:はい。私から?

増井:はい。

池澤:あっちには出てるんですね。

増井:はい。

池澤:池澤あやかと申します。普段はタレントをしておりまして、NHKの番組とか日テレとかテレビから、雑誌、Webなどで連載をしていたりしています。あとは時々エンジニアとしても働いてまして、Webサイトを作ったりとか、あとはインスタレーションを作ったりしております。

増井:よろしくお願いします。

池澤:よろしくお願いします。

村瀬大輔(以下、村瀬):お願いします。

増井:本当にあれですよね、女優をやりながら実際に手を動かしてWebの制作とかしてる方って、ほかにはほとんどいらっしゃらないですよね。

池澤:そうですね、意外と相性はいいと思うんですけど、けっこう休みが不定期なので、普通に例えば収入が足りなくてもアルバイトとかできないじゃないですか。

増井:そうですね、女優でアルバイトするって難しいですしね。

池澤:そうなんで、わりと向いてると思うんですけどね、そういうエンジニア業とこういう職業は。

オープンソースの活動が長い、Perlの神様

増井:次は村瀬さん、お願いします。

村瀬:はい。村瀬と言いまして、ネット上では「typester」っていうハンドルで活動してることが多いので、本名よりtypesterという名前のほうがたぶん知っている人が多いかなと思います。

いろいろなもの、iPhoneアプリからサーバサイトの開発までまるっと何でも書くエンジニアで、鎌倉のほうでPerl MongersっていうPerl のコミュニティーをやってたりします。

仕事のほうだと株式会社メイク・イット・リアルというソフト開発会社をやってたり、ウェルスタイル株式会社さん、iichi株式会社さんの技術顧問もやらせてもらってます。

増井:よろしくお願いします。

村瀬:お願いします。

増井:顔合わせのときにも池澤さんにもPerlの神様だという話をされていたんですが、もともとオープンソースは、そういう活動が長いんですよね。

村瀬:そうですね。僕が神様だったら、その上が界王神とか、すごいいると思うんですけれども。

増井:そうですね、上には上が。

村瀬:はい。

増井:よろしくお願いします。本日モデレーターを務めさせていただきます、増井と申します。

普段、TORETAというレストランの顧客管理とかをするiPadのアプリケーションの会社で、CTOという形でやっていますが、その前はミイルという食べ物の写真をシェアリングするアプリだったりとか、あとはTitanium MobileというJavaScriptでiPhoneとかのアプリを作るフレームワークの会社でエバンジェリストをしたり、もう職歴20年ぐらいずっとこういうオープンソースとか、そういった界わいをいろいろやっています。

プログラム、基本的に大好きでして、PukiWikiとかいろいろなオープンソースを作ったり、あまりプログラム好きすぎてお風呂でもコードを書いたりするので、「風呂グラマー」とかで検索していただけると、あんまり見ても嬉しくない画像が出てくると思います。

僕はAWS自体は実はすごく長くて、2007年に出たぐらいから使っているので、たぶんここに呼ばれていると思うんですが、それでも仕事全般で使ってるので、今日はその話を中心に進めていきたいと思います。

今日のお題の中で1つメインになるのは、実は今日の夜、ここでデベロッパーズナイトというAWSの人たちのイベントをやるんですが、そこで使うアプリケーションを池澤さんが実際にAWSを使って作りましたという連載をCodeZineでしたんですが、この連載を知っている方っていらっしゃいますか? 手を挙げていただければ。

(会場挙手)

増井:ちょこちょこといますね。ありがとうございます。

池澤:ありがとうございます。

AWSでよく使われているのはEC2やS3

増井:これの話を中心に進めていきたいんですが、この連載って実際にどういったことをやったんですか?

池澤:この連載は、「何か会場が盛り上がるようなアプリケーションを一緒に作りましょう」みたいなことをAWSさんから言われて、「じゃあ、やりますか」って言って、企画から実装まで、一緒にやりましたというものです。

増井:実際にAWS、いままでお仕事とかで使ったことあったんですか。

池澤:はい。EC2を何回か使ったことがあったんですが、実はほかのサービスってあまり使ったことがなくて、今回いろいろKinesisとか。

増井:そうですね、これですね。

池澤:S3、Cognito、DynamoDB。あとIAMとかもいろいろ使ったんですけど、ほかの普段使わないサービスを使って新鮮だったり、すごい便利だなって感じたところもあるし、あとは初心者にはハードルが高いなと感じたところもありました。

増井:ちなみに村瀬さんって、普段仕事でAWSって使いますか。

村瀬:そうですね。でも、いま挙がったようなサービスは全然使ってなくて、EC2、S3、あとRDSとロードバランサーぐらいですね。

増井:ちなみに、ここの中で仕事でAWSを使ってる方は、どれくらいいらっしゃいますか?

(会場挙手)

池澤:すごい多い。

増井:すごく多いですね。

池澤:そりゃそうですよね。

増井:そりゃそうですね。じゃあ、逆に言うとEC2、S3のあたり以外、Route53とか、RDSとか、あの辺以外も使ってるって方はどれぐらいいらっしゃいますか?

(会場挙手)

池澤:おお。

増井:やっぱり。

池澤:でも、一気に。

増井:一気に減りましたね。やっぱり多くの方はEC2、S3とか、サーバのものを使ってるんですね。

WordPressの個人サイトもS3に載せられる

池澤:でも、S3の便利さには、すごい感動しました。やっぱりいままでは画像ストレージサーバだと思ってたんですよ。なのに、静的ファイルが置けるからHTMLとかJSも置けて、それですごい低価格でホームページを運営できるのを初めて知って。

増井:たぶん、皆さんS3っていうと本当にストレージとして使う方が多いと思うんです。実はホームページを置いたりする機能もあるので、実際に例えば誰かが自分のホームページを作りたいと言ったときに、S3、実はすごく便利なんですよね、安いですし。

池澤:いくらでしたっけ。

増井:1テラバイトで4円とか、それぐらいですね、ストレージフィーが。

池澤:サーバ借りているのが、ちょっとバカらしくなってくるような低価格帯。

増井:あと、実はトラフィックフィーって通信料がかかるんですけど、それもたぶん、4〜5円いったらすごいサイトじゃないかと思いますね、個人のサイトだと。

池澤:っていうのを知って、すごいびっくりしました。

村瀬:iPhoneアプリとかのランディングページというか、紹介ページ。アプリやサーバは使ってないけど、Web上に何か載せておきたいときにもS3で、HTMLを置いてっていうのをよくやりますね。

増井:僕、実は個人のページもS3に置いてあるんですけど、WordPressで書いて、それを1回静的なHTMLにするプラグイン「staticPress」っていうのがあるんですけど、それを使ってS3に上げていて、実は書くのはWordPressなんですけど、皆さん見てるのS3で、どんだけアクセス来ても大丈夫にしてますね。

池澤:それって、いちいちローカルで書き出して。

増井:そうです。書き出して、上げてます。

池澤:それを上げてるんですね。

増井:はい。

池澤:そうすれば、運営もできるんですね、ちゃんと。

増井:そうですね。なので、けっこういままでWordPressみたいのをやってる人も、S3に移行したりとか。いろいろな使い方があるんですよね。

池澤:勉強になります。

増井:たぶん、そうすると皆さん、S3は知ってる方が多いと思うんですけど、Kinesisとか、Cognitoとか、DynamoDBは、たぶんほとんどの方は、あまり使ったことがないんだと思うんですよね。

池澤:どれぐらいいらっしゃいますか?

増井:この3つ、どれか使ったことがあるっていう方は。

(会場挙手)

池澤:でも、けっこう。

増井:でも1割いないぐらいですね。

池澤:そうですね。ちょっとCognitoが何するものか、若干難しくて覚えてないんですけど。

増井:わかりにくいですね。僕もうまく説明できないんですけど。

AWSの中の人もすべてのサービスは使ったことがない?

池澤:Kinesisはけっこうセンサーデータとかに向いてるサービスで、センサーのデータっていろいろな人が、例えば端末持って加速度センサー使うじゃないですか。そうすると、いろいろな人から大量のデータが、飛び込んでくるじゃないですか。それを。

増井:収集しておく。

池澤:収集するための、やつ。

増井:今回、連載で作ったアプリって、どんなアプリなんでしたっけ。

池澤:今回はスマホを振って、自分の好きな言語を応援しようみたいなアプリで、なのでセンサーデータを取得して。

増井:振ったデータの加速度を送ってるんですね。

池澤:はい。なので、この会場にいる人、全員が振っても耐えられるように、Kinesisで情報を処理してくれるっていうのに使ってます。

増井:アプリを作ってますね。実は今回、このように先ほど言ったKinesisって、センサーデータとか、実際ログとかのデータを集める部分と、それ集計したものを書き出したデータベースのNoSQLのDynamoDBがあるんですが、実はけっこうAWSってサービスが多くて、この前調べたら全部で45サービスある。たぶんこれ全部使ったことがある人は、AWSの人もいないんじゃないかなと思うんですけど。

池澤:いるんですか? 逆に。

増井:ちなみにAWSの人は。ちなみに全部使ったことありますか? さすがにAWSの人もないそうなので。ちなみに村瀬さん、ここの中で使ってるのって、どういったものがありますか?

村瀬:ほとんどないですね。S3、EC2。

増井:はい。

村瀬:ELB。

増井:はい。

村瀬:RDS

増井:はい。

村瀬:で、終了みたいな感じですね。

増井:そうですね、Webの人は、たぶんそういう人がすごく多いと思います。僕、まあまあ使ったことがあるほうで、これくらいですね。

池澤:でもけっこう。

増井:そうですね。けっこう僕はもう、さっき言ったように長いので、AWSべったりでいろいろシステムを作っていることもあって。CloudWatchっていう、サーバの監視をするような仕組みだったりとか。先ほど言ったNoSQL。たぶん皆さんMongoDBは、ご存じの方は多いと思うんですが、MongoDBと同じような仕組みを搭載してるものだったりとか。

Memcachedのキャッシュサーバがあったり、さっきEC2とか、Glacierってテープにバックアップを取ってくれる仕組みで、S3よりもさらに安いサービスがあるんですが、そういったものからメールを送るシステム、プッシュを送るシステムとか、そういうのを含めるとけっこうたくさんありますね。

たぶんここの中で、皆さんこういうふうにAWSで今回使ったことがあるという人は、すごく少ないと思うんですが、けっこう知ってると便利なサービスって。

池澤:そうですね、今回も知ってると便利なサービスって、いっぱいあるんだなと思いました。

Cognitoが便利なところはパスワードやキーの管理

村瀬:僕、連載を読んでて、Cognitoはけっこういいなと思って。S3とか、いろいろなAmazonのサービスをJavaScriptからダイレクトに使うって、いままであまり考えたことなかったんですけど。

増井:そうですよね。

村瀬:Cognitoを使うと、いろいろなサービス、JavaScriptとかダイレクトに呼べるんで、すごいいいなと思いました。

増井:Cognitoっていうサービスは、先ほど言ったS3とかDynamoDBを普通のブラウザのJSから呼ぶときって、パスワードとかキーの管理が難しいんですけど、そこの部分をいろいろ、まるっとやってくれるサービスで、ワンタイムのキーを発行してくれて、セキュアな状態のままデータベースに書き込みだけ許しますよとか、S3にアップロードだけ許しますよみたいなことができるサービスで、そういったものがあるとサーバがなくても、EC2で何か、コードを書かなくてもいろいろなことができるんですね。

池澤:そうですね。今回のアプリケーションも、サーバは実は使ってないんですよ。

増井:EC2でコードを書かなくてもいろいろなことができるんですね。

池澤:今回のアプリケーションもEC2を使ってなくて。それを押してくださいって、AWSの人に言われました。

増井:そうですね、サーバが増えると管理が面倒くさい。例えば今回だとたぶん、夜のデベロッパーズナイトもかなりの人が来てっていうときに、じゃあそれサーバが何台必要って見積もりをすると、たぶんハードルが上がると思うんですけど。

そこら辺を確か、連載を僕も読んだんですが、コンソールで数字を変えるだけで、どれくらいの人数収容できるかって簡単に変えられるんですよね。

池澤:けっこうすごい簡単に変えられて、びっくりしました。

増井:そうですね。

池澤:そうだ、あと今回、先ほど言い忘れたんですけど、Lambdaも使っててね。

増井:そうですね。

池澤:はい。

最近人気のLambdaとは何か

増井:ちなみにLambda、たぶんけっこう最近ソフトウェアの方、Lambdaに興味がある方、多いと思います。Lambdaがどんなものか何となく知っているって方? やっぱりけっこう多いですね、Lambdaは。

ご存じない方に言うと、Lambdaは実際にはNode.jsが動いていて、簡単に関数、Node.jsで書いたコードをサーバレスというか、そのサーバの管理も含めてAWSがやってくれて、いろいろなフックで呼び出せるんですね。

関数で呼び出すだけじゃなくて、S3に新しいファイルアップロードしたら、そのJSが実行されるとか。今回だとKinesisにデータ書き込むとJSが実行されるとか。そういったサーバのサイドをやってくれる仕組みです。

池澤:そうですね。

増井:今回、どういったふうに使ってるんですか。

池澤:今回は、いまおっしゃったKinesisからセンサーデータを預かって、それで、どこに送ってたんだけな。

増井:Dynamoに送って。

池澤:Dynamoに送ってたかな、DynamoDBに。

増井:なので、Kinesisで取ったデータを計算して、それをデータベースに書き込むときに、その計算部分はどうしてもコードが必要なんですけど、Lambdaを使うとエディタも標準で付いているエディタが何かあるんですよね。

池澤:そうですね、ブラウザからいじります。

増井:ブラウザから簡単にいじって、コードを書いて。サーバを用意しなくても。けっこう仕事でもLambda使いそうなところってありますよね。

村瀬:そうですね。サーバを立てるまでもなく、いろいろできそうな気はしてますね。

増井:けっこうサンプルで見たのは、Lambdaに上げて、S3に画像上げると小さいサイズのサムネイルを作ってくれるとか、そういったものでサンプルで使ってるところあるみたいですね。

村瀬:それも良さそうですね。

初めてAWSを使ってみて難しかったところ

増井:そうですね、けっこう面倒くさいですからね。ユーザーアイコンを上げると、必ずいろいろなサムネイルを作らなきゃならないので。こういうのをいろいろ組み合わせて、さっきみたいなのを作ったと思うんですが、たぶん初めて本格的にAWSを使ってみて、難しかったところはどこになりますかね。

池澤:難しかったところは、やっぱり使うサービスによってステップが違うのがけっこう難しかったのと、あとはIAMっていう。

増井:権限管理をする。

池澤:権限管理をする、あれもサービスなんですかね。

増井:あれもサービスということになってました。

池澤:サービスが、ちょっと難しかったんですよ。

増井:ちなみに村瀬さん、いまのところあまりお仕事ではAWS、そんなに使ってないと思うんですけど。

村瀬:はい。

増井:使わない理由は何か、いろいろなサービス、ほかのさっきの使わない理由っていうのは何かあるんですか?

村瀬:いや、使わないというか、この連載読むまで、こういうサービスがあるってことを知らなかった。

増井:そうですね。EC2のサービスだと思いますものね。

村瀬:なので、これからは使うかなと思います。とりあえず調べてみようと思います。

セキュリティーは強固だが、設定がわかりづらい

増井:僕もけっこうAWSでいろいろ試すんですけど、やっぱり一番面倒くさいのはIAMロールって言われる、ユーザーの権限設定で、このキーのユーザーはS3にアップロードできるけど、Dynamoは読み込むだけしかできませんみたいな、権限設定がすごい細かくできるんですね。

それはJSONファイルみたいなのでファイルで設定するんですけど、それがやっぱりかなり難しいというイメージはありますね。

池澤:そうですよね。それが逆にないと、たぶんサービスとしても困る。

増井:そうですね。セキュリティー上は、それができないと困るので、そこがザルなシステムは実運用にできないというんで、AWSのこのサービスのけっこういいところは、本当に実運用ができる。

けっこういまSaaSとかPaaSとかはやってるんですけど、実際に実運用しようと思うと困ることって、さっき言った、セキュリティーの問題とかいろいろ出てくるんですけど。そうじゃなくてちゃんと実運用ができる。セキュリティー部門は外せないっていえば外せないんですけど。そういってもあれ、設定画面がけっこうわかりにくい。

池澤:そうですね。

増井:はい。

池澤:わかりやすくなると、だいぶソフトウェアというか、Webエンジニアも楽。

増井:わかりやすくなると思うんですけど。たぶんS3が一番使われない理由は、FTPとかわかりやすいソフトで上げられないとか、あれも権限が。

池澤:そっかそっか。

増井:専用のクライアントじゃなきゃ、上げられないので。

池澤:そうなんですね。

増井:FTPとかSCPをサポートしなくて、それ用にIAMロールでユーザー作って、専用ソフトで上げなきゃならないというので、セキュリティーが良く、しっかりしている分、ちょっと敷居が高いっていうのがありますね。

池澤:そうですね、とりあえずEC2でみたいになっちゃいがちですもんね。

増井:なっちゃいがちですね。そうすると、SSHのキーをセットしておけばいいだけみたいな話になるので。あと僕がよく感じるのは、AWSはけっこう用語が難しいんですよね。いろいろなとこでIAMロールの部分とか、いろいろな各種各種で、いろいろなセキュリティーも含めて用語を使われるので。そこが一般には、カタカナが多いのでとっつきにくいイメージがありますね。

池澤:使いこなせれば、すごいんだろうなみたいな。

増井:そうですね。

EC2で一番不安だったのは課金の部分

増井:そういうので、なかなかとつっきにくい。実際に使ってみて、何かやってるうちに難しいなって感じたところとかありますか?

池澤:やってるうちに難しいな。EC2を使っているときは、一番不安だったのは課金ですね。

増井:そうですね。そういう意味でよくある、クラウド破産という言葉もあって、アクセスどかんと来たら、課金がものすごい来て大変なことになりましたとか、インスタンスを上げたのを忘れてて1か月たったら何十万請求来ました、みたいな話は時々聞きますよね。

池澤:どれぐらい使ったら、どれぐらいかかるっていう目安が、ロールモデルというかモデルがいるだけで違うかなって思うんですけど。

増井:僕、個人で1万円台ぐらいなので、自分でいろいろサーバ管理したりしているのも含めて1万円台ぐらいですね。

池澤:増井さんで1万円ってことは。

増井:そんなにいかないですね。さっき言った、例えばWebページで言うと、僕のページ、時々ものすごいヒットして、普段全然アクセスないんですけど、それでたぶんWebページのやつだけで十何円とかでたぶん管理していると思うので。

池澤:じゃあ、ほかの9980円は。

増井:たぶんほとんどがEC2でいろいろな趣味で、テストケースとしてサーバ何台か上げて、それこそマイクロインスタンスとか使うと月2000〜3000円ぐらいだと思うので、そういうマシン2〜3台上げて、自分でいろいろ試したりとか、テストをするためによく使うんですけど。

池澤:普通の人だったら5000円とか4000円とか。

増井:そうですね。けっこう無料枠があるので、一定数、確かEC2も1年間は1万円。小さなマイクロだと1年間無料で使えたりとかするので、あまり普通に使っていて問題になることはなくて。

ただけっこう一番怖いのは会社で使って青天井っていうのは、やっぱり予算が立てられない怖さというのもあるんですけど、実際、僕も最近、今回この打ち合わせをするときに知ったんですけど、リミットがかけられて、月5万円を超えたら、定額でちゃんとアラートが来るようにできたりするみたいですし。

僕、いまの仕事ではないんですけど、前の仕事で写真のシェアリングのアプリケーションを作ってて、それなりに大きな画像をたくさん置いて、トラフィックもかなり発生していて、っていう状況ですら、全部でたぶん20万円ちょっとぐらいだったので。

池澤:そんなもんなんですね。

増井:法人としては、そんなにバカ高いってことはないですね。

池澤:払えますね。

AWS側からボリュームディスカウントをおすすめしてくれる

増井:はい。会社で仕事で使ってて、EC2とかって、どれぐらい使ってるとかってありますか。

村瀬:いまだと開発環境なので、全然少ないですね。

増井:実運用ではあんまり、お客さん向けにはあまり使ってないんですか?

村瀬:クライアントのお仕事で使うことはありますし、あとは顧問先のところも一律でサービスをやってて見てますけど、そっちの料金いくらかかっていますとかは、わからないので。

増井:なので、逆に言うと普通に使っていて料金が気になるときには、トラフィックが多くてウハウハになってるぐらいのときのはずなので、そんなに大きく問題にならないのと、実は値段表に載ってる値段は定価なので、トラフィックとかも、ある程度数多くなっていくとボリュームディスカウントが効いて、一気に半額ぐらいになったりするので。

写真データを扱うときとか、たぶんAWSの人に先に話をしておくと、ずいぶんリーズナブルにいけるようなってますね。

池澤:それは耳寄り情報ですね。

増井:そうですね。そこぐらいまでいくと、やっとビジネスがきちんと回るかなっていうぐらいのサイズのときにちょうどそれにかかるんで、その辺では僕らも実は自分で運営してみるまでそれに気づかなくて。

ある程度いったら逆にAWSの人から、「料金表を見てると、もうボリュームディスカウント効くので、ボリュームで契約しませんか」って向こうから言ってくれたり。そこら辺は、けっこう向こうの収入が減るのに、親切に教えてくれたりはしますね。

池澤:なるほど。借りてみようかな、いろいろ。

増井:そうですね。自分で趣味で作るには、けっこう1〜2台作っておいても便利でいいと思います。

村瀬:それぞれサービスごとに無料、さっきおっしゃっていたEC2以外にも。

増井:そうですね。Lambdaも100万リクエストまで無料って。

村瀬:DynamoDBとか、すごい無料の枠が広くて。たぶん、あれ個人で。

増井:あれ、超えられないですよね。

村瀬:気がします。

ベンダーロックインをどう考えるか

増井:はい。逆にあれ超えたら、やっと一人前ぐらいの感じの数が設定されてますよね。あとたぶん実際に、特にここで来てる方、皆さん、仕事で使うと思うんですけど、たぶん一番不安だと思うのは、ベンダーロックインとよく言われるようにAWS用に作っちゃったら、もうAWSの言いなりにしかならないんじゃないかっていう怖さみたいのはあると思うんですよ。そういうの感じることってありますか?

村瀬:やっぱりただ、これを全部自前でやろうとすると管理とかも、ものすごい大変だし。 なのでたぶん、最初からAWSを使うって決めて、それに最適化して作るのが工数的にも、運用的にもすごい楽なんじゃないかなと思います。

増井:実はたぶん皆さんが知らないサービスって、ここの中いろいろあるんですが。おもしろいサービスだと、右の上から3番目にElastic Transcoderというのがあるんですけども、これはムービーを上げるとリサイズしてくれたり、ムービーを普通にスマホ用に変換してくれたりするサービスです。

例えば、僕が動画のシェアリングサイトを作りたかったら、実はこれを知っていると、これにファイルと投げると、ちゃんとスマホサイズにして戻してくれるものがあったりとか。

こういったものがあるので、実はロックインはされるんですけど、例えば動画サイト作るときに、これを使うと使わないでは、すごく話が変わってくるので、こういったものがうまく使えると、ロックインとどっちがいいかって問題はあるんですが。

あと実はここの中でオープンソースを由来にしてるものがけっこう多くて、先ほどこの前のセッションでGitHubのスコットさんが言っていたのもあるんですが、EC2はもともとZenっていうオープンソースを元にしていて、ECSと言われるものについてもDockerと言われる、いまよく使われてるオープンソースを元にしていたりとか。

mapReduceもそうですし、Lambdaもさっき言ったNode.jsっていうものだったり。ベンダーロックインされる部分はあるんですけど、実はどうしようもなくなったら自分でインスタンス立ち上げて、対応ができるのは、僕はけっこうAWSでは好きですね。

池澤:なるほど。

増井:思ったより話が、ずいぶん早く進んでしまったんですが(笑)。皆さんたぶん、ここに来てる方を見てると、思ったよりAWSを使ったことがあるって人が少なかったなと思うんですけど、ちなみに、ここの中でWebデベロッパーと言われる職種の人はどれぐらいますか? 

(会場挙手)

増井:でも、思ったより少ないですね。ほかの方は、何の仕事をしているんだろう。SIとかのほうの人だっていう人は。

(会場挙手)

増井:思ったより多いですね。あとは皆さん。

池澤:あとは何されて。

増井:あとは、どこの。あとは、サーバの管理のほうとかの、インフラに近いほうだっていう人は。

(会場挙手)

増井:若干いますね。

池澤:あれ。

増井:あとは、じゃあもっと大きくデベロッパーだっていう人は。

(会場挙手)

増井:デベロッパーじゃない人が、けっこう多いですね。マネジメントの人だって人は。

(会場挙手)

これからAWSを使う人にはS3がおすすめ

増井:意外に手が挙がらない人は、何をしているのかよくわからないんですが。たぶんデベロッパーの人とかで、AWSをこれから使っていきたいときに、きっかけとしてどこがいいと思いますかね。

池澤:私は最初EC2だったんですけど、どうなんでしょう。でもS3の話を聞いて、すごい魅力的だったんで、S3からかなと思う。

増井:そうですね。

池澤:いかがですか?

増井:たぶんS3を学ぶにはさっき言った、一番初めにIAMロールっていう部分を学ばなきゃならないので、そことあわせて学ぶのは、そこの部分がわかるとたぶん、EC2とかがわかりやすかったりすると思います。どこから学ぶのがいいと思う? 特に仕事でいろいろ開発がされると思うんですが。

村瀬:やっぱり、その開発用に、上げたり落としたりって、サーバをポンポン増やしたり減らしたりできますし、それだけだったらほかのとこでもできると思うんですけど、そのまま本番運用に回せると。なので開発から本番運用まで全部いけるんで、そういう意味ではすごい、いいかなと思いますね。

増井:実はこのサービス、いまのこのリストの中で、ここのサービスの中で、実は皆さん仕事の上でけっこう使えるものがあって、皆さんたぶんEC2とか何かで、サーバを作ってるときに、作っているものそのものを何かに、例えばデータベースをMySQLをやめてDynamoにしようというのはすごく敷居が高いと思うんですよ。

じゃなくて、けっこう周辺サービスをいろいろAWSは提供していて、メインのサービスはEC2以外に、例えばCloudWatchって言われる、実際にサーバがどういうふうに動いていて、どれぐらいトラフィックがありますかとか、そういったもので例えばメモリは一定以上食いすぎたりとか、トラフィックが急に上がったら、アラートが来る仕組みは使えたりとか。

あとたぶん、池澤さんが今回使ったKinesisは、今回センサーデータみたいに小さいデータをたくさん集めるのに、よく使うんですね。それを貯めておいたり、処理をするための前段階みたいなものを追うんですが、これ実はアプリケーション、ログを取るのにも使えるんですよ。

最近fluentっていうログを収集するためのプロダクトがあって、村瀬さん使ってます? fluentって。

村瀬:使ってます。

増井:けっこういま本当にいろいろなWebサービスとかでアプリケーションのログだったり、サーバログを収集するんですが、それを全部Kinectに転送するプラグインが標準であるんですね。

そうすると、fluentでアプリケーションのログを全部集めて、それを1か所でKinesisに持ってきて、それを先ほど言ったようにLambdaでいろいろ集計してたじゃないですか。

池澤:はい。

増井:そうすると同じような仕組みを使って、急にアクセスが伸びてますとか、それこそ不正アクセスみたいな動きがありますよとかっていうの、Lambdaを使ったりとか。あと別の仕組み、mapReduceの仕組みを使ったりして、ログを集計する部分をAWS側にやらせることができるんです。

けっこうメインのシステムもそうなんですけど、それ以外の周辺の部分、Redshiftとか、そういったmapReduceみたくビッグデータみたいな扱う部分とか、本体じゃないところをやっていくのは僕は一番初めのパターンとしていいんじゃないかなと思ってます。

DynamoDBは意外とすごい

池澤:私、今回使ってみて、DynamoDBが意外とすごいなと気づいて。今回EC2を立ててないんですよ。普通だったらEC2の中で、例えばMySQLをインストールして、いろいろ設定して使うじゃないですか。

立てずに普通に、確かLambdaの命令で書き込むみたいなのが、サーバ使わないでできたので、「おお」って。よくよく考えると、すごいみたいな。

増井:データベースの管理って一番難しいんですよね。だいたいMySQLはRDSっていうサービスがあって、EC2を立てないでもMySQLを立てるものがあるんですけど、やっぱりMySQLのマスターと言われる部分は、その単一障害点って言われるように、そこが落ちるとシステム全体止まりますみたいな、ふいになってしまったり。

急にアクセス来て、そこが1個詰まってしまうとシステム全体が詰まっちゃいますみたいな障害を起こしやすいんですけど、DynamoDBは書き込みも単純にクリックするだけで増やせるので、データベースをまるっと持っていけるのは、MySQLにこだわらない設計をするのは、僕もすごくありだと思います。

池澤:すごいですよね。たぶんEC2を使ってるけど、DynamoDBで管理する人もいるんじゃないかなと。

増井:僕も前に自分で作ったサービス、個人用のサービスDynamoでやったときは、やっぱりEC2でやって、そのころLambdaがなかったんですけど、たぶん皆さんこの中でMySQL使っているとか、オラクルとかデータベース使っていると、PLでトランザクションみたいなのを書いたりもすると思うんですが。

その代わりとしてLambda、Node、javascriptを使っていろいろな処理をかけるので、データベース由来の処理は、そこにまるっと入れられるというので、けっこうきれいに処理を分けられて、かなり気持ちよくスケールを保ったまま書けるっていう大きなメリットありますね。

池澤:いろいろサービスがバーってあるけど、一つひとつは便利なんですけど、なかなか45サービスもあると、どう使い分けていいのかが見えなくなったりしますね。

Lambdaは今後発展していきそうなサービス

増井:ここに先ほど言ったように、AWSの人でも全部やっぱりわからないっていうのはあるので、ある程度ジャンル分けはやっぱりされるんですね。真ん中のとこにあるSES、SNS、SQSっていう、このSで並んでいるものとかは、プログラムのメッセージングのやりとりのものがすごく多かったりとか。

あとは逆に、Windowsの仮想マシンを動かしてリモートデスクトップで使う、開発そのもので使うものではないものもあったりとか、けっこう幅広くあるので、ここら辺は、ちなみにAWSさん、今日は何かこういうのセッションでまるっと説明するのあるんですかね。

まるっとはないんですね。そこら辺は、これやっぱり知ってるか知らないかがけっこう大きいので、もし興味がある方はAWSを検索すると各ページにいろいろ載っているので、検索してみていただけると、かなりおもしろいんじゃないかと思います。僕は、やっぱりLambdaが一番お薦めで。

池澤:そうですね。Lambdaはリリースされたばっかりですよね。

増井:そうですね、4月にベータが外れて、去年の11月ぐらいに確かベータが出たはずなので。

池澤:すごい今後、発展していきそうな匂いがプンプンしますよね。

増井:ちなみに、仕事でLambdaとか、どこか使いそうなところってありませんかね。

村瀬:やっぱりプロトタイプでサーバが必要になったときに、そこからサーバを立てて、プログラムアップロードしてみたいな、すごい時間がかかるので、プロトタイプをサクッと作りたいときに、Lambda以外にも周辺サービスうまく組み合わせて、作れそうだなっていう気持ちはありますね。

増井:そうですね、そこら辺けっこうプロトタイプで、いいのはそのままプロトタイプのまま本番にしてもスケールするので、そこら辺はほかのPaaSよりは信頼性がすごく高い気がしますね。実際にベンチマークを取ったりしても、僕、Dynamoのときにベンチマーク取ったんですけど、本当にかなりいいスコアが出たので。

村瀬:なるほど。

AWSはデータのバックアップにも使える

増井:あとけっこうおもしろいのはGlacierっていう、テープバックアップみたいなものを取ってくれる仕組みもあって、仕事で使ってるとバックアップってものすごく大事で、僕らもバックアップは何があってもなくしてはいけないんですけど、それをどう保管するかがすごく難しいんですけど。

この場合はS3にあげると、一定時間たつと自動的にテープバックアップにコピーを作ってくれる機能があったりして、そういうのをほとんど意識しないで、実はここの中のもの、けっこう意識しないでうまく使えるものもあるので、それで信頼性を高める。

いままでクラウドっていうと信頼性が不安だとか、後ろで何してるかわからないというのがあったんですけど、AWSはこの辺のサービスを使うと、そもそも信頼性を高めるのに使えるのは、すごくおもしろいなと思います。

池澤:Webデベロッパーにお薦めのサービスって何かありますか?

増井:そうですね、Webデベロッパーの人はたいていJSが使える人が多いので、Lambdaがやっぱり一番お薦めなので、Lambdaと一緒にさっき言ったS3と組み合わせて、Lambdaに例えばテキストファイルを上げると、それを何か処理して、さっき言ったRDSとかDynamoDBみたいなデータベースに書き込む処理ができる。

特にWebデベロッパーでたぶんコード入るより一番面倒くさいのは、同期処理じゃなくて非同期処理って言われる、単純にレスポンスを返す以外に、ほかにやらなきゃならない処理って、さっきインデックスを作るとか、サムネイルを作るみたいな、そういったWebサーバで処理しにくい処理があるんですが、そういったものをLambdaとS3とかSQSと組み合わせて使うと、すごく楽になります。実際に仕事の上でもたぶんキューとかいろいろ使いますよね。

村瀬:そうですね。さっきおっしゃったログとか、あとバックグラウンドのジョブとか。

オフラインで開発するための方法を解説

増井:そうです、バックグラウンドのジョブとか。SQSっていうキューを管理する本当、プログラマー向けのものもあるので。

もう1つ、これたぶん初めて使う人でいくつか嫌だなと思うことに、オフラインで動かないという問題があって、要するに開発時に実際にAWSにアクセスして、AWSではない環境では開発もできないというのがあるんですが、いくつかのものについては実際にローカルで動くものがあって、DynamoDBは実はJavaで書かれたDynamoDBがあって、ローカルのマシンに全部入れて開発することもできるんですよ。僕、実は前回Dynamoを選んだ理由はそれで。

池澤:そうなんですね。そうですよね、ローカルで開発できないと、ちょっと困っちゃいますよね。

増井:そうですね、ちょっとつらい。

池澤:なるほど。そういう解決法がある。

増井:そうですね。S3も公式にはないんですけど、いろいろな人がS3クローンを作っていて、S3と同じようにして動くので、僕はそういうふうに組み合わせて使って作ってますね。

そういう意味ではけっこうAWSって開発環境にも使えるので、うちの会社だとメインのサーバはもちろんAWSで動いているのですが、開発用のCIと言われる、ずっと常にテストをまわすサーバだったりとか。

あと実は僕、自分の趣味で作ったんですけど、持ってるMacBook Airが非力なので、ローカルでVagrantと言われる開発環境のバーチャルマシンを上げるアプリケーションがあるんですが、それをローカルで起動すると、ローカルで動いているように見せかけて全部AWSの上で動いていて、ローカルのディスクもそっちに透過的に参照できる仕組みとかを作って、ここで開発して、本当にローカルのファイルを触ってるように見せながら、実は全部AWSで作業する仕組みを作ったりとか。そうすると、これ1台で全部何でもできる。

池澤:それ何で作ったんですか?

増井:僕、これよりもっと薄いMacBookを買いたかったんですけど、すごく電池を食う。すぐ電池がなくなるとか、マシンが遅いので、薄いノートを持って歩くために、そういう仕組みを作りました。

池澤:マシンスペックがないから。

増井:マシンスペックがないからですね。僕、けっこう腰が悪いので、もう年なので、重いノートを持って歩くと、次の日腰が痛いんですよ。なので、軽いノートを持って歩きたいんですけど、そうすると開発ができないので。

池澤:スペックを上げろっていったら、重くなるんですね。

増井:そこをクラウドでうまくやりくりして、僕の腰が守られるっていう。

池澤:健康面。

増井:健康面にも、意外に効くんですよ。高齢になってから本当に15インチを持ったりして腰を悪くしたので、いまは本当にこれ1台で、AWSだけで開発ができるようになってますね。

プログラムのミスをお金で解決できる利点も

池澤:すごい。あと何でしたっけ、サービスに負荷をかけるときに使うとかもおっしゃってましたね。

村瀬:負荷テストですね。サービスを出しちゃうと、そこにもうアクセスが来てるので、そこに自ら負荷をかけてテストするわけにはいかないので、その環境をまるっと複製して、そっちのまるっとコピーしたほうで負荷をかけて、どこまで耐えられるかとか調べるのにはやっぱり便利ですよね、クラウド。

増井:そうですね、やっぱりマシンが負荷かけるってけっこう難しいですし、サーバ1に対して負荷かけるマシンが5台、10台いりますし。

村瀬:そうですね、かける側も大量に並列させて負荷かけたりとかもできるんで、AWSはそういうとこにも使えますね。

増井:僕、実はあとおもしろい使い方で、AWSでさっき言ったRDSを使ってデータベースを管理してるんですけど、プログラムにミスがあってインデックスが汚いときがあって、インデックス載らないで、ものすごく遅くなるんですけど、それを直すのにテストをかけると2日間ぐらいかかる。

2日間遅いまま動かしておくと、お客様に迷惑がかかるので、一番高いものすごいメモリの載った64ギガだか123ギガだかのメモリを食って、月に40万円とかかかるインスタンスを2日間だけに限定して上げて、それでやり過ごしたことがあって。

そうするとプログラムが少々雑でも、お金で解決する大人の手段が取れるのは、実はデべロッパーとして気が楽で、どうにかならなくなったらお金で解決しようっていう大人な判断ができるのはすごい助かりました。

村瀬:その間に直すと。

増井:その間に直しましたね。

池澤:気が楽って言えるのが、ちょっとバブリーですね。

増井:でも止めるわけにはいかないですし、かといって徹夜しても時間がかかって、さらに問題が起こるぐらいだったら、1回ゆっくり寝て、2日間やって、「これ1日伸びると、いくらお金かかるかね」って言ってエンジニアにプレッシャーをかけながら、大人の解決ができるのは、僕はAWSを選んでデベロッパーとしてすごく良かったですね。

池澤:普通に精神的負担はあるんですよね。

増井:普通にあります。プレッシャーはかけるんですけど。というわけでだいたい時間になりましたので、最後に何かありますか?

池澤:まとめてください。

これからAWSに注目するとおもしろい

増井:いままでEC2とかS3とかハード面に近い部分をソフトウェア化しようっていうのをずっとやってきたのは、すごくメジャーだったと思うんですけど、もうどんどんさっき言ったS3よりもっと上のLambdaだったりとか、DynamoDBっていう上の層に上がってきて、デベロッパーに対していままでは下の層って、そんなに直接かかわらなかったのが、さっきのTranscoderだったりとか、Lambdaだったりとか、もっとデベロッパーが使う層に近づいてきたので、そういった意味でどんどんこれからAWSに注目するとおもしろいんじゃないかなと思って。あと、お二方に一言ずつ。

池澤:そうですね。私はとりあえずS3に静的ファイルを上げてみたいと思います。

増井:じゃあまず、先ほどあった自分のホームページを全部S3に。

池澤:そうですね、あれ、裏でWordPressが動いてるんですけれど。staticPressでしたっけ。

増井:そうですね、それあとでお教えします。

池澤:はい。それで考えます。だいぶ節約になるので。

村瀬:僕はこれを機にけっこういろいろなサービスを知れたので、たぶんいろいろ使えるものが多そうなので、これからも検討して使っていきたいなと思います。

増井:そういう形で40分でしたが、これでパネルディスカッション終わらせていただきます。どうもありがとうございました。

池澤:ありがとうございます。

村瀬:ありがとうございました。

(会場拍手)

制作協力:VoXT