2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
sue445氏:「pixiv Cloud Journey」というタイトルで発表させてもらいます。
こちらの発表資料ですが、先ほど「X」にハッシュタグ付きで流しているので、後から見返したいという方は、そちらのURLをご覧ください。
自己紹介させてもらいます。末吉剛といいます。SNSでは「sue445(すえよんよんご)」というIDでやっていて、社内では「sueさん」と呼ばれています。2018年7月入社で、今はインフラ部に所属しています。
仕事は、「AWS」と「GCP」をだいたい全部やっています。主にOrganizationのオーナーとして組織の管理を行っていたり、ソリューションアーキテクトとして各プロダクトからの相談をもとに、アーキテクチャをいろいろ考えたり、システムを作ったり、運用を回したりしています。
あと、「GitLab」や「Sentry」といった社内ツールの運用もやっていたり、「github.com」のOrganizationのオーナーをやっていたり、そのほか、諸々雑用全部やっています。なので、雑にいろいろ投げられたものをいい感じにするのが僕の仕事です。
今日は、ピクシブのパブリッククラウド活用の取り組みについて話そうと思っています。
会社全体の取り組みを話しますが、発表内容の8割ぐらいは、僕が全部やったことです。なので、僕が今のピクシブのAWSやGCPの形を作ったと言っても過言ではないです。
(会場拍手)
20分という持ち時間では圧倒的に時間が足りないので、詳細はスライドの中に引用している記事のURLをご覧ください。詳しく聞きたい方は、この後のAsk the Speakerや懇親会で話を聞きに来てください。
(スライドを示して)まず、こんな感じのことを話そうと思っています。僕の入社前はどんな感じだったか。その後、僕が入社して何をやったかを話します。そして、現在のピクシブの状態を話して、未来のために現在取り組んでいることについて話そうと思います。
最初にまとめを話します。僕が入社してからAWSやGCPの足回りが格段に進歩して、近代化しました。そして、Infrastructure as a Codeの文化も根付きました。研修や互助会などの仕組みも整備されてきました。今後は、オンプレミス環境も巻き込んで、AWSやGCPを積極的に活用していきます。
まず、僕の入社前のことについて話します。
僕の入社前からも、AWSのアカウントやGCPのプロジェクトはそれなりにあったのですが、「Terraform」などでは特に管理されておらず、けっこう野良で運用されていました。
サービス数で言うと、8割以上がオンプレミスを使っています。実プロダクトでのクラウド利用は、2割ぐらいと若干少なめです。サーバーの台数はオンプレで9割以上占めています。
僕が入社した時点でクラウドをがっつり使っていたのが、「Palcy」「Pawoo」、広告、あとは分析ぐらいでした。
僕が入社した当時のクラウドといえば、イベントの特設サイトというように、一時的な用途に使うことが多かったと思います。
次に、僕が入社して何をやったかを話そうと思います。
僕がやったことはいっぱいありますが、(スライドを示して)だいたいこのあたりにちょっと絞って話します。
まず、「GitLab CI」をAWSでオートスケール化しました。最初に作られたGitLabのCIは「Runner」のサーバーが1台しかなかったので、当然、全社の利用に耐えられず、けっこうあっぷあっぷな感じでした。
そこで、ジョブが増えるといい感じにAWSのサーバーが増えて、ジョブが減るとサーバーのほうが減るというオートスケールRunnerを作りました。(スライドを示して)こちらの発表資料に全部書いています。
次にTerraformを導入しました。Terraformというのは、クラウドの構成を設定ファイルで管理するための、いわゆるInfrastructure as a Codeのためのツールです。今でこそ、うちのデファクトになっていますが、僕が初めてこの会社に導入しました。
ほかにも、AWSの「CloudFormation」だったり、GCPの「Deployment Manager」というツールがあります。入社した時点で、AWSとGCPの利用率はだいたい同じぐらいでした。同じツールとエコシステムを使ったほうが運用が圧倒的に楽なので、両方に対応しているTerraformを採用しました。
もし、これがAWSだけしか扱っていないとか、GCPだけしか扱っていないとかであれば、ちょっとまた別の答えになっていたかなと思います。
次に、運用のフローを整備しました。僕が入社した当時は、クラウドを利用する時のフローが特に定まってはいませんでしたが、2、3年かけて少しずつこのあたりのフローが定まってきました。
よくある流れについて話します。まず、クラウドを利用したい場合、プロダクトチームからインフラ部に相談が来ます。インフラ部は、プロダクトチームからやりたいことをヒアリングして、いろいろアーキテクチャを考えます。
ヒアリングのミーティングの時点で、アーキテクチャの案をだいたい2、3個考えて出しています。要件次第では、クラウドではなくオンプレのほうが合っていることも十分あり得るので、なるべくクラウドにこだわりすぎないようにしています。
アーキテクチャが決まった後、プロダクトチームが社内の申請フローに従ってクラウド利用に関する承認をもらいます。必要に応じて、インフラ部もこのあたりをサポートしています。
承認が下りた段階で、インフラ部がAWSのアカウントとGCPのプロジェクトを開設しています。GitLabにTerraformのリポジトリを作って、リポジトリにプッシュしたらCIでいい感じにTerraformが自動実行されるところまで、最低限をインフラ部が作っています。
そして、必要に応じて、プロトタイプの部分や開発環境の部分をインフラ部が作っています。それと並行して、先ほど承認された金額をもとに予算アラートも適宜設定します。
次に、SentryのGCP移行を行いました。Sentryというのは、エラー収集用のOSSです。このSentryには、「sentry.io」と呼ばれるSaaS版と、Dockerイメージなどを自分たちのサーバーで動かすSelf-Hosted版があって、ピクシブでは、後者のSelf-Hosted版を利用しています。
最初に作られたSentryは、オンプレミスのサーバー1台で動いていました。そしてこのサーバー1台にも、アプリケーション本体のほかに、「ポスグレ(PostgreSQL)」や「Redis」などが全部丸ごと入っていました。
あるプロダクトでエラーが大量に発生すると、この1台しかないSentryのサーバーに全部エラーが集中し、それにSentryが巻き込まれて障害になることもちょいちょいありました。
それだとまずいので、Sentryをリプレイスしました。リプレイス後は、GCPに移行しました。Sentryの本体は「GKE」で動かして、Sentryの負荷によっていい感じにオートスケールする感じにしました。その他ポスグレ、Redisなどは、GCPのマネージドサービスを利用しています。詳しくは、(スライドを示して)こちらの資料に全部書いています。
次に、GitLabのGCP移行を行いました。GitLabというのは、「Git」のリポジトリをホスティングするためのOSSです。
「gitlab.com」で提供されているSaaS版と、Dockerイメージなどを自分たちの環境で動かすSelf-managed版があり、ピクシブでは、Self-managed版を利用しています。一部を除いて業務で使っているソースコードは、全部社内のGitLabにあります。
移行前、最初にうちでGitLabが作られたのは2013年。約10年前でした。10年間の間にいろいろ構成が変わっていたのですが、移行直前の構成を言うと、GitLabの本体がオンプレミス環境にあって、GitLab CIが最初のほうに話したAWSにありました。
10年弱運用してきたので、けっこうチリツモ(塵も積もれば山となる)で、ツギハギな構成になっていました。
そこで、2022年にすべてGCPに移行しました。単なる移行にとどまらず、周辺のアーキテクチャを全部変えました。
詳しくは、(スライドを示して)こちらの「pixiv inside」の記事に書いています。前編、中編、後編の全部を読み切るのに1時間かかるので、「MEETUP」が終わってから読んでください。
(会場笑)
ちなみにですが、こちらのGitLabのGCP移行の話は、11月に開催される「Google Cloud Next Tokyo ‘23」で話す予定です。今絶賛発表資料を作り中で、40分の持ち時間でスライド200枚超えそうで、わりとヤバい感じです。ちなみに、5月に登壇した「RubyKaigi 2023」(※1)では(持ち時間が)30分でスライドは100枚弱でした。
(※1)https://rubykaigi.org/2023/presentations/sue445.html#day2
(次回へつづく)
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ