検索
連載

「クラウドネイティブは正義だ」は本当か? ログが追いづらくなった運用者に寄り添うKubernetes活用のポイント特集:「惰性をやめる、慣習を疑う」こんどこそ楽になる運用管理(5)

これからの時代、クラウドネイティブは正義だ――そう信じて移行を推進するとき、ぜひ周囲を見渡してほしい。環境の変化に戸惑い、生産性が低下している人たちがいるかもしれない。運用管理者に光を当てるオンラインイベント「Cloud Operator Days Tokyo 2021」のNTTコミュニケーションズの講演では、そんな戸惑う人たちに寄り添い、運用しやすい環境作りの工夫が紹介された。

Share
Tweet
LINE
Hatena

従来のやり方が通用せず苦しむ運用管理者

 サービスを運用管理する上で重要な情報となるのが、ログだ。運用管理者は障害対応やパフォーマンスチューニングなどさまざまな場面でログを確認し、サービス品質の改善や安定稼働に尽力する。

 運用管理者は、これら業務を効率良く進めるために、独自で組んだスクリプトを使いこなしていることが多い。それがある日を境に、親しみ慣れた従来の方法ではログを確認できなくなってしまったらどうだろう――「Cloud Operator Days Tokyo 2021」の講演「Kubernetesでコンテナを使ってサービス化したら運用者がログを追えなくて工夫した話」では、そんな悩みを聞き漏らさず、ちょっとした工夫でクラウド移行後も快適に業務ができる環境を整えた秘話が披露された。

 同講演に登壇したのは、NTTコミュニケーションズでSRE(Site Reliability Engineer)を務める昔農凜太朗氏。同氏はプロダクトライフサイクル向上に取り組む中で、10を超えるプロダクトのインフラをクラウドネイティブ化するミッションに着任。「全社的な取り組み」という大義名分の下、積極的に推進していた。

 「クラウドネイティブという単語はある種の“正義”のように扱われていた」と昔農氏は言う。「次の開発からはクラウドネイティブでいきますと宣言したとき、真っ向から反対する動きはそれほど大きくなかった」と明かす昔農氏は、推進する側も「絶対良いものになる」「サポートも十分に行う」「インフラ設計や運用に必要なスキルセットはKubernetesやDocker、コンテナ、パブリッククラウド、Infrastructure as a Code程度」「みんなと一緒に会社を強くしていこう」などのメッセージを発信しながら、従事してきた。

 しかし、受け入れる側にとって、当然の流れと理解しながらも、新しいことに移行する不安や既存環境との違いに戸惑いがなかったわけではなかった。

 あるとき、昔農氏はある相談を受けた。それは、「Kubernetes上のコンテナで動いているアプリケーションのログって、どうやって見るの?」という質問だったという。

 「これまではLinux上のプロセスのログはファイルとして扱えるので、『tail -f』などのコマンドを使ってログをリアルタイムに確認できた。Google Cloud Platform(GCP)上のKubernetesのコンテナでログを確認したい場合は『Google Cloud Monitoring』を、OSS(オープンソースソフトウェア)上のコンテナであれば『Grafana Loki』といったログ可視化ツールを使うことになる。『これまでのやり方を捨てて、いきなり別の手法に変えろ』と言われても困るし、不便に感じる人もいるだろう。一緒に働く仲間がつらい思いをしているのに、見過ごすことはできない。むしろ、そんな状態でも推進するクラウドネイティブ化は、果たして正義なのかとジレンマで苦しんだ」(昔農氏)

旧来のログチェック方法とクラウドネイティブなアプローチの橋渡しをする

 そこで、昔農氏は問題を整理することにした。

 まずは、環境の変化だ。これまでは「systemd」「supervisord」などのプロセス管理システムがベースで、「tail」「cat」「less」「grep」「uniq」「wc」といったコマンドでログをチェック。「開発者の中には、デバッグや切り分けで作っていた“俺の最強のワンライナー”を駆使して、効率的なログ管理を実施してきた」と昔農氏は説明する。

 しかし、クラウドネイティブ化でKubernetesのPod機能を使うことになった結果、一部のログはローカルに残るものの、基本的にはクラウドに保存される仕様に変更。ログを確認するには、前述のログ可視化ツールを使う必要がある。昔農氏もデバッグ時、ログの扱いが少し不便になったように感じたと明かす。

 「クラウドネイティブ化を推進するのは、絶対前提条件。最終的には、クラウドネイティブなアプローチに収束させたい。であれば、必要に応じてオンプレミス時代と同等の、つまりはファイルレベルでログを取り扱える仕組みを作ればいいのではないか。クラウドネイティブ化を妨げるのではなく、うまく共存し、橋渡しするような解決策を考えることにした」(昔農氏)

 移行先では、GCPのKubernetesのPod上でアプリケーションが動作している。ログは「Google Cloud Logging」で集約し、「Google BigQuery」にためて永続化する。ここに、BigQuery内の保存ログをファイル形式に書き戻す仕掛けを施した。

 講演ではデモンストレーションで、KubernetesのPodで動作する複数コンテナに対して、任意のコンテナを指定してtailでログを取得する方法の他、BigQueryからログを取得する方法が紹介された。

 「BigQueryのログを取得するために、ログをオンデマンドでファイル形式に書き直して操作する『Quemaru』というツールを作成した。これにより、任意の時間を指定してログをフェッチする操作が従来のコマンドラインでも可能になった」(昔農氏)

 昔農氏は「今後も、プロダクトライフサイクル向上を目指してまい進したい。その際に忘れてならないのは『人がシステムに合わせるのではなく、システムが人に合わせる』という考え方だ」と言及する。

 今回紹介されたケースで、クラウド環境で用意されたツールセットでは乗り切れない課題があることに気付かされた。

 「これからもあるべき姿に向けて、業務に落とし込む際に何を考えるべきなのか、何が必要なのかをしっかり見極め、仲間に寄り添った解決策をソフトウェアで実現できるよう取り組んでいきたい」(昔農氏)

特集:「惰性をやめる、慣習を疑う」こんどこそ楽になる運用管理

ITがビジネスを加速させる昨今、多くの新規サービスが開発、リリースされ、運用管理者には安定したサービスの供給や、利用動向のログの解析などが求められている。だが、これに伴い解析すべきログや拾うべきアラートも増す一方となり、多大な負担が運用管理者の身に振り掛かっている。また、新規サービス開発でのクラウド活用、基幹システムのクラウド移行が進み、可用性や柔軟性といったクラウドならではの特性を生かす、いわゆるクラウドネイティブなアプリケーションの運用が増え、コンテナやマイクロサービスといった複雑な運用管理も求められている。しかも、オンプレミスに残さざるを得ないサーバとのハイブリッドな運用も並行しなければならない。このような中、従来の手法や技術では、とうてい運用管理業務が回らず、ビジネスに貢献することができないのが実情だ。現状を打破するためには、従来の慣習を疑い、新しい技術や自動化、AI(人工知能)などを取り入れ、現状に合った新たな運用管理の手法を実践することが大前提となる――本特集では、運用管理の最新技術や使いこなし方を徹底的に深掘りする。



Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る