AWSへのクラウド移行でクエリ処理が10倍早く!? AWS移行のメリットとは
PR TIMESでは、オブザーバビリティ改善と並行して、クラウドへの移行作業も実施された。当初オンプレミス環境において、インフラエンジニア以外がサーバーを立ち上げることはできず、データベースのストレージ使用率が90%を超えるなどクラウドへの移行は緊急の課題であった。1年以内にストレージが枯渇すると見積もられていたほどだ。
このため「Amazon RDS」への移行が検討された。移行時の課題は、「バックアップファイルからの復元に数時間を要すること」と「使用していたPostgreSQLのバージョンが古く、バージョンアップが不可欠だった点」の2つだ。これらは、ダウンタイムを最小限に抑えられるサービスである「AWS DMS」を使用することで、バージョンアップとAWSへの移行を同時に実行して解決した。さらに、データベースだけではなく、Webサーバーや共有ストレージもAWSに移行された。
移行には多くの労力を要したが、その分メリットも大きかったと櫻井氏は振り返る。データベースの処理速度が向上し、移行前のクエリ処理時間が20〜50ミリ秒であったのに対し、移行後は5ミリ秒以下にまで短縮された。毎週のように発生していたフェイルオーバーもなくなり、1〜2時間を要していたバックアップが10分以内に完了するようになった。「AWS IAM」の使用もより簡便になり、移行前は必要だった踏み台サーバーも不要になった。
またNew Relicによるシステムの監視も容易になったそうだ。AWSのCloudwatch Metric Streamsという機能を使うと、AWSのほぼ全てのリソースのメトリクスをNew Relicに転送することができるためと櫻井氏は話す。
オブザーバビリティの向上でリリースサイクルが高速化、高品質なコードのデリバリーのポイントは?
今回のオブザーバビリティ改善への旅で、櫻井氏は複数の面の進歩があったと述べる。
「レジリエンスのある運用に関しては、障害を即座に検知し対応できるようになりました。高品質なコードのデリバリーにおいては、New Relicの活用でエラーの原因やボトルネックを特定しやすくなり、デリバリーの品質改善も順調です。予測可能な間隔でのリリースについては、マルチステージング環境の構築やデプロイスクリプト、リリースフローの改善によって、リリースサイクルを高速化できるようになりました」と語り、オブザーバビリティの向上による幅広い利益を強調した。
コードの品質に関しては現在も改善が進んでいるものの、「レガシーコードがまだ残っており、さらに改善して、より良いコードへと変えていきたい」とさらなる改善への期待を示す。
今後の取り組みとしては、セキュリティの強化が目標とのことだ。直近の施策としては、第三者によるセキュリティ診断やPHPのバージョンアップが実施されている。次のステップとして「自動でセキュリティテストを行い、脆弱性を検出する機能を導入したい」と意欲的に語り、セッションのまとめとした。