第19回勉強会から約1年のブランクを経て開催された、第20回JAWS-UG札幌勉強会。15分の持ち時間で次々に事例が紹介され、AWSの亀田さんがサービスアップデートについて語るという、テンポのいいプログラム。15分という持ち時間なので難しい技術解説もなく、AWS初心者にも優しい勉強会だった。
1年ぶりのJAWS-UG札幌勉強会開催日に、札幌にいるということ
2017年10月10日、筆者は札幌にいた。JAWS-UG札幌の取材ではなく、アスキーの別企画の取材のため、1週間ほど札幌に滞在していたのだ。もちろんいつも通り、自宅兼事務所のある千葉県からキャンピグカーを走らせ、札幌滞在もキャンピングカーだった。せっかく長い距離を走るのだし、どこか地方支部の勉強会にも顔を出したいなとカレンダーを見てびっくり。筆者の札幌滞在中に、JAWS-UG札幌の勉強会が予定されていたのだ。しかも、約1年ぶりの開催だという。これはもう、宿命。JAWS-UG札幌と筆者は1400キロの赤い糸で結ばれているに違いない。そう確信し、取材に向かった。
JAWS-UG札幌のプログラムはざっくりと、前半後半に分けられていた。前半はAWS事例紹介、1人の持ち時間は15分。しっかり技術的な話をするには短いが、LTよりは長い。中途半端な気もしたが、実際に聴講してみるとこれがいいテンポだった。
Webサーバ全般に通用する鉄板手法で、EC-CUBEの過負荷対策
トップバッターは、稲葉サーバーデザインの稲葉 一紀さん。EC-CUBEの負荷対策について語ってくれた。ECサイトは普段のアクセス数とセール時のアクセス数に大きな差が生じる。対策を講じたECサイトは従来、セール時のみスケールアップして対応していたという。しかしサーバーリソースを10倍にしても、性能は10倍にはならない。コスト効率のいい手法ではなかった。システム構成を変えることで、コストを抑えつつ高負荷に耐えるサイトへと生まれ変わった、その過程を稲葉さんは紹介してくれた。
「まず第1弾として、サーバーを複数台に分けました。EC-CUBEはRDBでセッション管理を行なうので、複数台のサーバーで構成しても問題は生じません。設定や管理を一元化するために、/adminは1台に限定し、それ以外の機能を複数台のEC2で構成しました。静的コンテンツはCloud Frontから配信し、EC2の負荷自体も下げました」(稲葉さん)
EC2サーバー同士のデータ同期には、データ同期専用のS3バケットを用意して対応した。管理用サーバから本番サーバへ、定期的にデータ同期を行なう仕組みだ。これらの対策によりEC2の負荷は下がったが、RDSの負荷は高いままだった。
「db.m4.10xlargeでも負荷オーバーしてしまったので、第2弾としてRDSの負荷対策を行ないました。リードレプリカを追加し、RDSへの問い合わせを削減。併せてEC-CUBEも改修し、ページ単位でDBアクセス先を変更できるようにしました」(稲葉さん)
これらの対策を講じた結果、RDSの負荷は従来の1%程度にまで激減。セール時のサイトレスポンスが大幅に向上したうえ、RDSの契約サイズを下げて運用コストの削減も実現した。
「静的コンテンツはCloudFrontから配信、EC2を複数台にして、Elasticache for RDSやリードレプリカを導入。これらはどのWebサーバーにも通用する対策ではないでしょうか」(稲葉さん)
新技術に固執せず顧客にもわかりやすいサービスを心がけるCOLSISの手法
毎週5回はスープカレーを食べているという、COLSISの永谷 理さんが2番手の登壇者。大手サイトの構築事例紹介を通じて、COLSISのシステム構築におけるこだわりを語った。事例として紹介されたサイトはMovable Typeをベースとして構築。Movable Typeはサイトを静的コンテンツとして書き出すことができるので、それをCloudFrontから配信している。アプリケーションサーバーはオートスケールに設定するなど、方向性こそ永谷さんと違えどこちらも鉄板構成と言っていいだろう。ALBとCloudFrontでWAF機能をオンにしているくらいで、ほとんどが枯れた技術で構成されている。
「COLSISでは新しい技術にこだわらず、使いやすくわかりやすいものであれば枯れた技術も積極的に使っています。AWSで完結させることにもこだわっていません。結果的に、顧客にもわかりやすいシステムとなっています」(永谷さん)
EC2大好きマイケルさんがt2.microへの愛と継続的インテグレーションについて語る
5歳からプログラミングを始め、2016年に独立してコールド・フュージョンを設立、2017年9月にスマートフォン向けオリジナルゲーム「クリスタルクラッシュ」をリリースしたテッダー マイケルさん。なんで札幌で起業しちゃったのかわからないけど、流暢な日本語でEC2、中でもt2.microが大好きだと語った。自社サイトやイベント情報サイトを1台のt2.microで運用しているとのこと。
AWSとはちょっと毛色が違うが、継続的インテグレーションの快適さについても力強く訴えていた。ただし、マイケルさんが開発しているスマートフォン向けゲームはiPhone向けのビルドを行なう関係上、Macが不可欠。Buildbotを使ったデプロイ環境をAWS上に持ち込むことはできず、社内に設置したMacとその上で動くVMで構築しているという。
「Buildbotを使えば、ボタンひとつでiTunes ConnectとGoogle Playへそれぞれの端末向けにビルドしたアプリケーションとメタデータをアップロードできます。Buildbotとfasatlaneのおかげでスピーディな開発が可能になり、クリスタルクラッシュは3ヵ月で完成しました」(マイケルさん)
BtoBの受発注をECサイトとLambdaで電子化、取引先にAPIを開放
アフォーダンスの古山 浩司さんは、ある機械メーカーの部品販売を電子化した事例を紹介した。世界中にユーザーがいるその機械メーカーは、消耗品や交換部品の受注をメールやFAX、電話などで受けていた。これを効率化するために、まずはBtoBのECサイトを立ち上げた。ELB配下に複数のWebサーバーを設置し、RDSまで含めたマルチA-Z構成という鉄板中の鉄板。しかし、すべての顧客が使ってくれる訳ではなかった。海外の大手代理店は自前の受発注システムを持っており、こちらで用意したECサイトを使ってくれないケースがあったのだ。
「自前の受発注システムを持っている代理店は、自社システムから直接データを送り込みたいと言ってきました。EC2で受け取るのが一番簡単ですが、可用性やセキュリティの担保、ランニングコストなどが課題になります。そこで行き着いたのがLambdaでした」(古山さん)
代理店ごとのS3バケットを用意し、APIを用意してデータを流し込んでもらう。データ形式の変換やデータバリデーションはすべてLambdaで行なうことにした。サーバーレスなら可用性に頭を悩ませることはないし、KMS(Key Management System)で暗号化したうえで環境変数を使ってデータを受け渡しすればセキュリティも担保できる。しかも0.5GBメモリを割り当てたLambdaは毎月80万秒まで無料。この無料枠の範囲で十分まかなえた上にサーバー管理も考えなくて済むというイカした仕組みができあがったのだった。
「ところで、我が社の社訓は『いいからやれ』です。この社訓が印刷されたメモ帳をお持ちしていますので、みなさんぜひお持ち帰りください」(古山さん)
受け取りようによってはブラック企業のようにも感じる社訓だが、理屈をこねるよりも手を動かす方が早いのはクラウド開発のつね。筆者も図々しくメモ帳をいただいてきたが、「いいからやれ」という文字を見ていると、なぜか大谷イビサの顔が思い浮かぶのだった(編集部註:いいから書け)。
亀田さんがAWSの最近のアップデートをアップテンポに紹介
後半は、AWSの亀田 治伸さんが登壇。AWS Summit以降に発表されたアップデートをものすごいスピードで紹介していった。最初に紹介されたのは、ロゴの変更だ。
もちろん違和感はあるが、今のロゴだって時とともにみんなに愛されるようになったのだし、すぐに好きになるに違いない。
数が余りにも多いので、ロゴ以外に紹介されたアップデートは箇条書きでまとめておくにとどめたい。興味のある話題があったら、AWSのブログなどで詳細を探っていただきたい。
- EC2が秒課金に対応、ただしAmazonLinuxのみ
- Snowballが東京リージョンで利用可能に
- AWS Greengrassが東京リージョンで利用可能に
- Classic Load Balancer、Application Load Balancerに加えNetwork Load Balancerが登場
- Snowballが東京リージョンで利用可能に
- AWS Greengrassが東京リージョンで利用可能に
- CLBからALBへの移行を支援するCloudWatchメトリクスを追加
- オートスケーリングにターゲットトラッキングポリシーを追加
- 機密情報を発見、分類、保護するAmazon Macieローンチ(東京リージョン未対応)
- データソースをクロールして作成したメタデータを元にジョブを実行するAWS Glueローンチ
- Kinesis Firehoseが東京リージョンで利用可能に
- Amazon Athenaが東京リージョンで利用可能に
- RedShiftからS3上のデータを参照できるRedShift Spectrumがローンチ(東京リージョン未対応)
- フルマネージドバッチ処理サービスAWS Batchローンチ
- AWS Lambda@Edgeが東京リージョンで利用可能に
- DBを瞬時にクローニングするAmazon Aurora Database Cloningローンチ
- RDSがEC2のように停止、開始できるように機能向上(ただし7日後に自動再起動あり)
- VPC Endpoint for DynamoDBなどDynamoDBの機能追加
- 秒単位でデプロイでき、定額や月額で使えるシンプルなVPS、Amazon Lightsailローンチ
- 誤って削除したVPCを復旧可能になるなどVPCの機能向上
- CloudWatchの機能向上
- Amazon Connectで日本語、日本の電話番号が使用可能に(ただし050局番)
- NVIDIA Tesla M60を搭載したGPUインスタンスG3ローンチ
- その他諸々
箇条書きにしたにも関わらず、この行数。一気に聞かされても覚えられないよっというくらいのアップデート情報だった。もっとも、最新情報に聡いユーザーはブログなどでアップデートをチェックしていると思うので、情報収集漏れを防ぐ程度でいいのかもしれない。読者にとっても、いいチェックリストになりそうだ。
懇親会は乾杯に始まり、乾杯で終わるのが北海道流
勉強会のあとは、みなさん楽しみにしている懇親会。乾杯で始まるのはどこの懇親会も変わらない。違うのは終わり方だ。一本締めで懇親会を終える支部もあれば、ほとんどのひとが2次会へ流れるため形だけ絞めるような支部もある。JAWS-UG札幌はというと、なんと締めにも乾杯。まさか最後に乾杯するとは思っていなかったので、「では、宴もたけなわではございますが」という声を聞いたところで、グラスに残っているドリンクを飲み干してしまった筆者。空のグラスを掲げて乾杯することになってしまった。次は、最後の乾杯までしっかり楽しみたいと思う。