2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
データベース室の紹介(全1記事)
提供:LINE株式会社
リンクをコピー
記事をブックマーク
北川健太郎氏:私からはデータベース室の紹介と、その中のMySQL1 Teamで募集中のポジションと、MySQL1 Teamについて紹介したいと思います。よろしくお願いします。
簡単に自己紹介します。MySQL1 Teamマネージャーの北川と言います。好きなものは、つば九郎、サウナ、あと野球を見ることです。最近は、エンゼルスの大谷さんの活躍を見ることだけが、私の生きがいになってます。
まず、データベース室の紹介です。データベース室は、システム室やネットワーク室と同様に、ITサービスセンターの中の1つの部署です。
データベースの中にMongoDB、Redis、Oracleなど、プロダクトごとにチームが分かれています。MySQLにおいては、MySQL1 Teamと2 Teamに分かれています。私の所属するMySQL1 Teamは、主に日本のサービスで使用されているMySQLの管理を行っています。MySQL2 Teamは、主にグローバルのサービスで使用されているMySQLを管理しています。
1 Teamと2 Teamでそれぞれ運用方法は独立していますが、ベースとなるMySQLのプラットフォームやツールなどは共有しています。MySQLの設定などはともに議論して、チーム間で標準化を図っている感じです。
MySQL1 Teamについて紹介します。今、メンバーは4人です。LINE内のすべてのMySQLの運用と管理をしています。“日本で一番うまくMySQLを使い倒すチーム”を目指しています。どういうことかというと、LINEでは、ゲームサービスや、「LINEマンガ」「LINE LIVE」といったサービス、さらにFinTechサービスなど、さまざまなサービスでMySQLが使われており、それぞれ異なるワークロードを持っています。そうなると、チューニングのアプローチ方法はいろいろ変わってきます。
そこで、我々のチームとしては、どんなワークロードでも対応できるMySQLの技術力を培っていく意味を込めて、(スライドを指して)このような目標を掲げています。開発言語としては主にGo、あとPHPやPerlを使っています。
主な仕事としては、一般的なDBA(Database Administrator)業務です。スキーマの変更やバックアップの管理、トラブルシューティングなどを行っています。さらに、DevOps改善のための開発業務も重要視していて、こちらも進めています。
(スライドを指して)「こんな人と一緒に働きたい」ということで、このあと、1 Teamで行っているプロジェクトや課題を共有しますが、その前に、今回はこれらに当てはまる人に聞いてもらいたいと思っています。
大規模なMySQL環境を運用してみたい人。MySQLのインターナルに興味のある人。MySQLのバージョンアップが得意な人。あとアプリケーション開発がメインだったが、最近はデータベースに興味が出てきた人。また運用の自動化の開発に対して、すごくやりがいを感じる人。これらどれか1つでも当てはまる人に、今回は響いたらいいなと思っています。
では、まずLINEにおけるMySQLの環境です。(スライドを指して)左側が、私のチームで管理しているMySQLのインスタンス数で、2021年で4500ぐらいのインスタンスがあります。ここ最近、年々で500ぐらい増えていっています。
右側が、MySQLのバージョンの割合です。今一番多いのはMySQL 5.7で、58パーセント。続いて、MySQL 8.0は25パーセント。MySQL 5.6が17パーセントとなっています。
MySQL1 Teamは3つの目標を持っていて、これについて紹介したいと思います。最初が運用の自動化。次にMySQLのUpgrade。3つ目にSelf-Management。この3つがこれからの目標になっています。それぞれ簡単に紹介していきたいと思います。
運用の自動化です。これは、「手動での作業をとことんなくしていこう」という試みです。今までのMySQLの知見を全部ツールに落として、運用を楽にしていこうと考えています。
いろいろなツールがもうすでにたくさんありますが、その中から紹介すると、「Iruka-san」というSlack botがあります。これは、MySQLのアラートの通知やアラートの原因、その時のMySQLの状態を全部取ってきて、表示してくれる。Slack上でさまざまな操作をしてくれます。
あとは「Iruka-show」です。MySQLのマスコットがイルカで、それを見るということで、Iruka-show。これは、MySQLのインスタンスを管理するダッシュボードです。
データベース室として、室としてのダッシュボードはすでに作られていますが、RedisやHBase(Apache HBase)など、いろいろなプロダクトが統合されているため、MySQL専用のダッシュボードを作ろうというプロジェクト化が進んでいます。
これは、「DBAの業務をWeb上ですべて完結させよう」という考えがあります。DDL(Data Definition Language)の作業やACL(Access Control List)の作業などを、1枚のWebでやりたいという話で進んでます。
続いて、MySQLのUpgradeです。運用の最適化のためにUpgradeは必須で、先ほど説明したとおり、MySQL 5.6が17パーセント残っています。MySQL 5.6は、もうEOL(End Of Life)でありサポートされないので、これを2021年度中に、0パーセントにする目標を掲げています。
MySQLのUpgradeはすごく手間のかかる作業なので、強い心を持って「やるんだ」という気持ちで取り組んでいるプロジェクトです。
このための準備をすごく進めています。(スライドを指して)MUHとありますが、これはマイグレーションのツールで、Web上を通してダンプインポートする仕組みや、variablesの設定など、マイグレーションするためのツールです。こちらはもう開発しています。
次に、「Simple-Switchover」という、UpgradeしたMySQLに対して、向き先を変更するツールも開発しています。サービスによっては、オンラインで切り替えなければいけないことがあります。メンテナンスが取れればUpgradeはすごく簡単ですが、サービス停止することなくオンラインで実施しないといけないこともあるので、そういったものに対して使えるように開発したツールです。
これのいいところは、マスターが5.6でUpgrade先のレプリカが5.7とします。そのときに切り替えてなにか問題があってもすぐにrollbackできることです。rollbackした時に、5.7での更新も、5.6にデータロストなしでrollbackできるような、安全にスイッチオーバーするツールを開発しています。このUpgradeは、これからどんどん進めていく予定です。
続いてSelf-Managementですが、これが今最優先の課題として取り組んでいます。先ほど説明したように、MySQLのインスタンスは年々増えていっています。それに対して、DBAの作業がすごく負担になってきている現実があります。そのため、これからDBAが行っていた業務を、開発者に移譲するプロジェクトになっています。
今までDDLやアラートを検知してトラブルシューティング、パラメータの変更など、すべてDBAが行っていましたが、そのような権限を開発者に移譲するということです。
LINEには、プライベートクラウドとして「Verda」があります。Verdaには、Verda DBSという、AWSのRDS(Relation Database Service)のようなサービスを提供していて、そこにSelf-Managementがすでに提供されています。
仕組みとしては、本当にAWSのRDSが提供している機能と同等です。HA(High Availability)、アラート通知、Prometheusのメトリクス。あとはバックアップなどがありますが、せっかく我々はDBAがいて知見もあるので、Self-Managementをもっと高機能にしていきたいと考え、このプロジェクトは動いています。
これから行うこととしては、今までの我々のDBAに関する知見をドキュメント化したり、既存のツールなど作っていたものを提供。、さらにDBAの知見を入れて新たにツールを開発して、開発者に提供することを考えています。
例えばどういうものを提供する予定かですが、安全にスキーマ変更するツールの提供。私たちはSafeddl Executerと呼んでいますが、pt-osc(pt-online-schema-change)やgh-ostなどをラップしたツールです。
知らない方もいるとは思いますが、pt-oscやgh-ostは、オンラインでレプリケーションの遅延、ロックしないでスキーマ変更を可能にするオープンソースです。使い方には少し癖があって、初めてやる人にとってはオプションがいっぱいあるし、内部のアーキテクチャを知らないと、UNIQUEキー追加をする時にデータロストする可能性があったり。
そういった、サクッと使うにはちょっと調査が必要なもの(に対して)は、DBAは知見があるので、それをラップして、安全に実行させる。開発者としては、ALTER TABLEをそのまま貼り付ければOKといったようなツールを提供していこうという考えもあります。
あとは、リアルタイムのモニタリングツールであったり、クエリリプレイ。マイグレーションする時に、現環境のトラフィックを取得して、新環境でリプレイさせたり。そういった機能も提供しようと考えています。
ここからは、MySQL1 Team限定の福利厚生です。MySQL1 Teamにジョインすると、もれなく日本に2名しかいないMySQLのOracle ACEと一緒に働けます。yokuさんと呼ばれている方です。MySQLについてググったことある人がいるならば必ずたどり着くであろう、ピンクのおとうふのyokuさんです。
私のチームにジョインすると、深くMySQLを学べる環境があります。yokuさんだけではなく、チームメンバーもMySQLについては詳しいので、本当に深く学べる環境があると思います。
今日(登壇時点)公開されたEngineeringインタビュー記事が、yokuさんの記事です。MySQL1 Teamについてyokuさんが語っているので、ぜひみなさん見てください。
あと、LINEはヤフーと経営統合して、ヤフーのDBAとも月1回、意見交換会などをしています。ヤフーにはもう1人のOracle ACEがおり、日本に2名しかいないOracle ACEが集まる会議があるので、すごくMySQLの勉強になると思います。
「こんな人と一緒に働きたい(再掲)」ということで、先ほど説明したように、大規模な環境ですし、MySQLについてもインターナルも調べていくので、そういうことに興味ある方。バージョンアップは、先ほど説明したようにいっぱいやらなくてはいけないので、得意なかたはお願いします。
アプリケーション主体だったがデータベースに興味出てきた人や、運用自動化のための開発(をしたい方)。先ほど説明したように、開発することはいっぱいあるので、そういったことがやりたい方は、ぜひ応募していただきたいと思います。
最後に募集中のポジションです。データベースエンジニア(の募集を)、私のチームではMySQLとDevOpsの2つを募集しています。MySQL、MySQL DBA、運用のメインになっています。DevOpsは、先ほど説明したようなツールメインの作成です。MySQLの運用も、もちろん興味あれば参加するも可能です。ぜひ興味がある人は、応募してもらえればと思います。ご清聴ありがとうございました。
LINE株式会社
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦