数百台のオンプレVMからAmazon EKSへの移行
シナジーマーケティング株式会社 / 寺岡佑起
開発部長 / テックリード / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
| ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
|---|---|---|
| 11名〜50名 | 2021年10月 | B to B |
| ツールの利用規模 | 11名〜50名 |
|---|---|
| ツールの利用開始時期 | 2021年10月 |
| 事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
AWSアカウントはセキュリティ統制をシンプルにするために、あえて細かく分けて運用しています。 バージョンアップは新しいバージョンのクラスタを構築し、ネットワークトラフィックを振り替える、いわゆるBlue/Greenデプロイメントで実施しています。 ローリングアップデートに比べて作業工数やコストはかかりますが、以下の利点を考慮してこの方式を選択しました。
- 構築・破棄を繰り返す前提で構築・運用の手順が自ずと整備される
- 基盤の再構築を伴うため、導入しているオペレータなどを更新する良い機会になる
- 旧クラスタへの切り戻しが容易なため、稼働中のクラスタに対して直接バージョンアップを行うよりリスクが低い
Amazon EKSにおけるKubernetes各バージョンのサポート期間は約1年で、私たちはこれを「年1回の棚卸し」と捉えて実施しています。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
オンプレミスで運用していた数百台の仮想マシンのスケーラビリティと運用コストに課題を感じていました。
- 仮想基盤のノード追加のために、ハードウェアの調達、ラックやネットワークの設計などに時間を要するため、迅速に基盤をスケールさせることができない
- ハードウェア故障などに対応するための24時間/365日の保守・運用体制が必要だった
- 仮想マシンは用途ごとにカスタムされた構成で構築・運用されており、新規サーバーの構築のために大きな手間と時間がかかっていた
どのような状態を目指していたか
- キャパシティが不足した際に迅速にスケールできること
- 新しいサーバーを迅速に本番投入できること
比較検討したサービス
- Amazon Elastic Container Service (ECS)
- Amazon Elastic Compute Cloud(EC2)
比較した軸
EKS移行以前からAWSを利用しており、他のクラウドはマルチクラウド構成における複雑性や、レイテンシの影響を考慮し、移行の選択肢には入りませんでした。 重視したのは、移行にかかるコストとリスク、そして移行後に得られる恩恵のバランスが取れていることでした。
選定理由
オンプレミスからクラウド基盤への移行はインフラの大きな変更です。 そのため、その他の要因によるリスクを抑えるためにもアプリケーションのアーキテクチャに大きな改修を加えることなく移行できる自由度が必要でした。
また、移行前にAWS環境にKubernetesを構築して少数のサーバを運用していた実績があり、知見が蓄積している分、設計ミスなどの想定外の事象が起きるリスクも比較的抑えられていたことも大きかったです。
導入の成果
改善したかった課題はどれくらい解決されたか
導入前に抱えていた課題は、ほぼすべて改善されたと感じています。
どのような成果が得られたか
基盤に起因する障害がほとんど発生しなくなりました。 オンプレミスで運用していたころは、ハイパーバイザーやロードバランサー、スイッチといった基盤起因のトラブル(障害に至らないケースも含めて)が年間数回程度発生していましたが、障害の発生頻度は大きく減りました。 オンプレミスでの運用では、障害に至らないハードウェア故障も都度検知し対応していましたが、 移行後は、稀に通知されるEC2のリタイア予告を確認しノードを入れ替える程度で済んでおり、心身共に負担が大きく削減されました。
導入時の苦労・悩み
移行作業によるサービス停止時間を最小化し、切り戻しができる移行を行うために、オンプレミスからの移行を少しずつ行いました。
設計段階からネットワークのレイテンシに悩まされましたし、過渡期にはオンプレミスにKubernetes環境を構築し、AWSとオンプレミスで同一構成のアプリケーションを稼働させるという複雑な構成を取りました。
トラブルによる切り戻しは数度発生しましたが、切り戻しを想定した設計と移行計画を立てていたことにより、移行計画全体は予定通り完遂することができました。
導入に向けた社内への説明
上長・チームへの説明
現行のオンプレミス基盤にかかっているトータルのコスト(インフラ費用+人件費)を超えないことを目標としました。 その上で、運用コストを削減するため、可能な限り自動化、標準化することを意識するようにチームに伝えました。
活用方法
よく使う機能
- Kubernetes Dashboard
- AWS Load Balancer Controller
- Prometheus Operator
- Grafana
ツールの良い点
- 構成の自由度が高く、稼働させるアプリケーションを選ばない
- 豊富なエコシステムを自由に組み合わせることができる
ツールの課題点
- 複雑性が高いため、一定の学習コストが必要
- コントロールプレーンはフルマネージドだが、ノードの管理はユーザが行う必要がある
ツールを検討されている方へ
Kubernetesは既存の中~大規模アプリケーションを、大きなリアーキテクチャを施さずクラウドへ移行させる上で、最適な選択肢の一つだと思います。 ただし、EKSはコントロールプレーンはフルマネージドですが、ノードの管理はユーザが行う必要があり、定期的なバージョンアップを含むノードの保守運用が必要となります。 また、自由度が高く複雑な構成が取れる分、Kubernetesの学習コストは比較的高いといえるでしょう。
もし、シンプルなコンテナ基盤が欲しい場合や、新規アプリケーションでAmazon Elastic Container Serviceなどに合わせた設計を行うことができるのであれば、運用負荷の少ないフルマネージドサービスを選択するのが賢明かもしれません。
シナジーマーケティング株式会社 / 寺岡佑起
開発部長 / テックリード / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
よく見られているレビュー
シナジーマーケティング株式会社 / 寺岡佑起
開発部長 / テックリード / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法

