コンテンツ開発からインフラチームへ

小野晃路氏(以下、小野):それではここからウェザーニューズの小野から弊社のマルチアカウント運用の開始までの取り組みということで実際の事例をご案内いたします。よろしくお願いします。

最初に簡単に自己紹介します。ウェザーニューズのCloud Initiativeというチームでリーダーしています。ウェザーニューズに1994年に入りまして、今年でもう27年。聞いているみなさんの中では20代30代の方が多いかと思いますが、もうすぐ50になります。けっこうな年齢ですが、がんばっています。

ドコモさんが iモードサービスを立ち上げたときの携帯のコンテンツとして、ウェザーニューズのコンテンツを最初から出していたのですが、私はその時の立ち上げとか企画とか、そのあとコンテンツ開発とかをやっていました。

携帯電話なので表示周りもサーバーサイドもデータベースもメールもとか、10年間ぐらいいろいろなことをやっていました。スマートフォンが出てきてからは、ちょっとついていけなくなったっていうのはありました。

いろいろあって2014年にインフラのチームに移動して、そこからネットワークとかアカウントの管理をしていました。2016年ぐらいからですね、パブリッククラウドも担当するようになって、現在はCloud Initiativeチームになります。

(スライドを示し)今日はこんな内容ですね。ウェザーニューズの簡単な紹介と、AWSを始めた頃の話、それから利用が増えはじめた話と、なぜマルチアカウントに舵を切ったのかという話、実際の運用ではどのようになっていますかという話と、最後にまとめです。それではいきます。

ウェザーニューズの紹介

最初にウェザーニューズの紹介です。会社は、簡単に言うと天気予報の会社です。名前のとおりウェザーですから天気の会社です。予報しているだけじゃなくて、予報をもとにその天気によってお客様がどういう対応しなくちゃいけないかという対応策まで含めて提供することを主なサービスにしています。

会社は千葉の幕張メッセがある海浜幕張駅から近いところにあります。ZOZOさんと近くて、駅を挟んで北側と南側におります。社員数は約1,000名で、実はそのうち4分の1ぐらいがIT系の技術者です。

次はウェザーニュースのサービスの紹介です。最近は関東でもテレビCMをやり始めました。リモートになって家でCM……テレビも最近は見ないのかな? 見ている方もいるんじゃないかと思います。(スライドを示し)関東でもこんなかたちでウェザーニュースのサービスをしています。

今日聞いていただいている方たちも天気のアプリ使っていると思うんですけど、ぜひウェザーニュースのアプリを使ってください。iPhoneにデフォルトで入っている天気予報はアメリカの会社が出していますので、絶対ウェザーニュースのほうが合っていると思います。

それとですね、僕が好きなサービスが右側にあります。(スライド参照)10分ごとに3時間先までの予報を今までやっていたのですが、これをバージョンアップしまして、15時間先までの予報が10分ごとに細かく見られるようになっています。

昨日とか……今日はあまり降らなかったですかね、急に雨が降ってきたときにこの情報を見て、いつ、何分後ぐらいに雨が降り始めるかとかですね。そういったところがわかりますので、ぜひ使ってみてください。これは、僕がけっこう昔から好きなサービスです。

AWSを始めた頃の話

では次、AWSを始めた頃の話をします。ウェザーニューズがAWSを使い始めたのは2012年なんですね。AWS東京リージョンができたのが2011年だったと思うので、けっこう早いと思います。ただ、私はそのときは担当していないのでよくわかりませんけど。

グローバルの天気アプリのために使っていました。バージニアのリージョンのVPCを作って、そこにEC2立ててみたいなかたちで最初は使っていました。

もともとウェザーニューズはオンプレのサーバーがメインです。インフラがメインなんですね。天気予報ってみなさんもおわかりのとおり、毎日何度も更新したりするじゃないですか。

オンプレのサーバールームでサーバーを管理運営して、システムもオンプレベースで作っているので、今で言う密結合ですかね。そんな感じで1台のサーバーの中にいろいろなシステムが入っている状態です。

なんでオンプレそんなにたくさん使っているの? というのは、若干ウェザーニューズの社風的なところもあって、ウェザーニューズは自分の運命は自分でコントロールしたい! っていうのがあります。外部に委託するのではなく、自分たちでサーバールームを作りそこで運用して、なにかあったら自分たちですぐ対応するみたいなことをやってきています。

インフラ担当者の声

(スライド参照)私もインフラ担当になって実際にやってみたときの正直な気持ちなんですけど。サーバーとかルーターとかHUBとか落ちるじゃないですか。そうするとですね、一応冗長化しているのですぐに死亡っていうことはないんですけど、やっぱり片方落ちたらすぐに対応したいよねっていうのがあって。

すぐに現地に向かって対応することとかはやっぱりあって、移動するだけでも時間がかかったりっていうのがあると思います。

あと絡み合うケーブルって書いていますが、結局サーバー1台1台にLANケーブルが1本1本つながっているわけですよね。サーバーがいらなくなったらそのLANケーブルも片付ければいいんですけど、サーバーが数千台あるので、数千本のケーブルを片付けて、また必要になったら新しいケーブルを引き直してというのをやるわけですね。

たくさんあるのでそのケーブルとケーブルの間を縫って「こいつ……」「こいつが……」と這って片付けて、片付けするのに半日費やしたこともありました。

それから、みなさんの働いているオフィスのビルでも毎年1回法定停電で電源設備のチェックをすると思うんですね。

ウェザーニューズも外部のビルの中の場所をお借りしているので、そこの停電対応で電源を切り替えて、深夜落ちないようにと事前に準備します。当日は切り替え前にバックアップ電源に切り替えて、また元に戻すことを朝から夜までシフト組んでやったりとかですね。こういうことをしています。

こういうことをいろいろ見てみると、「クラウド使ったら幸せだよね」ってやっぱり思うわけですね。みなさんの中にもそういった思いをされた方がけっこういると思うんですけど。ということで、「よし、クラウドを使おう!」「これはもうクラウドにいくしかないね!」と僕は勝手に思っていました。

初期のアカウント構成

少しずつ利用が増えはじめたけど、というところの話。最初の光野さんのアンケートでもあったとおり、最初は1個のアカウントだったり、2個、3個みたいなかたちだと思うんですよ。ウェザーニューズも最初の海外アプリを作ったときは、この運用アカウントっていうのが1つしかありませんでした。

チームA、B、Cって書いていますが、最初はチームAだけですよね。それが少しずつ別のチームが増えはじめて、運用アカウントでいろいろなチームが使うようになりました。

じゃあ開発はどうするんだ? というときに、やっぱり開発は分けたいねということで、運用と開発っていうかたちでアカウントを分けたんですね。よくやるケースだと思いますここまではやっていたんですよ。

社内のサーバールームとVPNを張って、気象データをAWS側に送ってというのをやっていました。これだとAWSでそうそう簡単に触れません。まずAWSを触ってみないことには始まらないので、使いたいチームの方がいたらアカウント作るよっていうことで、PoCって書いていますが、AWSを触れる環境を準備したんですね。

例えばVPCって何だろうとか、EC2ってどうやって作ればいいんだろうとか、まずそこから始まると思います。そういったところで、まず触るというのを目的で作っていました。ですから、オンプレの環境とはVPNはつながないっていうのが前提で払い出しをしていました。

こういった中で、僕が管理者をやっていた頃なのですが、管理者側の意見として同じアカウントを複数チームが使うとコスト分担が面倒くさいですね。タグ付けをしないといけないとかあると思いますが、消費税とか、サポート費用とか、そういうタグ付けできないのは利用費用に応じて按分とかをやる必要があって、ちょっと面倒くさいよねっていうのがあります。

あとはIAMポリシーを最低限にというのがAWSのベストプラクティスだと思いますが、最低限にしようとすると手間も時間もかかりますよね。最初に割り当てたチームは権限がゆるいと(スライドに)書いていますけど、実際に権限設定するときはIAMって最初よくわかんないっていう人も多いと思うんですね。

正直僕も最初はぜんぜんわかってなくて、じゃあEC2フルアクセスみたいな権限を割り当てたりもしていました。そうすると、知らないうちにサービスの上限に引っかかるっていうのがあってですね。いつの間にか「あれ、S3バケットが作られていて、新規でこっちで作ろうとしたが……あらら、なんか上限に引っかかった」みたいなのがあるわけですよ。

マルチアカウントを考えはじめる

じゃあ今度は利用者側、使う側、開発者側の意見なんですが、PoC環境ということでAWSのアカウントを払い出しました。それをオンプレとつないでほしいって、やっぱり出てきたんですよ。PoCと言いつつ、ここで開発しちゃっていたみたいな。

それはダメですっていうことで、オンプレとはつないでないので、じゃあ開発アカウントでいろいろ試したい。開発アカウントで開発したいから権限をくれと言うんですけど。「じゃあどの権限が必要ですか?」みたいなことでやるわけですね。最低限のをやりたいので。

そうすると管理者側、私のほうとの間で「どの権限が必要ですか?」「これが必要」っていうことでもらったら、その権限を追加します。そうすると別のエラーが出て「この権限が足りません」っていうやりとりがあります。まあ今も発生しているんですけど、手間と時間がかかる。

けっこうあるあるだと思うんですけど、これはお互いにストレスが溜まるんですね。それだったらもうオンプレでいいや! みたいな声も出たりするわけですね。いやいや、それだと元も子もないなみたいなのもあったりします。

あとは運用アカウントの中で複数チームが同じアカウントの中で使ってしまうと、1アカウントのリソースの上限にバッティングしないかっていうのが出てきます。ウェザーニュースの場合は雨が降ったときにSNSを使ってプッシュをすることがあります。

そうするとみんな同じタイミングでSNSをドバって使うケースが考えられるので、今後サービス利用者が増えていったらリソース上限に当たんないかね? という話が出てきたわけですね。こんな声がいろいろありまして、やっぱりマルチアカウントっていうのを考えはじめたんですよ。

(次回につづく)