1 ポイント 投稿者 GN⁺ 2024-12-02 | 1件のコメント | WhatsAppで共有

Hetzner

  • Hetznerへの移行は主にコスト削減のため。Hetznerの価格は世界的に見ても競争力がある。
  • Hetznerは仮想マシンとベアメタルマシンを提供しており、AWSと比べると機能は限定的だが、価格でそれを補っている。
  • Hetznerへの移行により、インフラコストを75%以上削減した。

Kubernetes on Hetzner

セルフマネージド Kubernetes

  • DigitalOceanでKubernetesを運用しており、Hetznerでもセルフマネージド方式で運用している。
  • Hetznerはマネージド Kubernetes コントロールプレーンを提供していないため、自分たちで管理する必要がある。
  • TerraformとPuppetを使ってノードを管理・構成している。

ノードの役割

  • クラスター内の役割をシンプルに保つため、control-planeworkerdatabase というノード命名規則を使っている。
  • 役割の追加は簡単だが、リソース利用の効率を損なう可能性がある。

ノード構築

  • Terraformを使ってクラスターをブートストラップする。
  • Hetznerはマネージドファイアウォールとネットワーキングを提供しており、Terraformで簡単に構成できる。
  • サーバーはTerraformで完全に管理され、役割ごとのモジュールを作成することでサーバー追加を簡単にしている。

ネットワーキング

  • ノードへの管理接続にはTailscale VPNを使用している。
  • TailscaleはNATホールパンチングを提供するため、ポートを閉じたままでも安全に接続できる。
  • HetznerのマネージドファイアウォールとUbuntuのUFWを使ってポートを遮断している。
  • Calicoを使ってコンテナネットワークインターフェースを構成している。

ストレージ

  • HetznerはnVME SSDとSSDベースのブロックストレージを提供している。
  • Hetznerのボリュームにはスナップショット機能がないため、データバックアップは手動で行う必要がある。
  • データベースノードではLocal Persistence Volume Static Provisionerを使ってローカルボリュームを事前プロビジョニングしている。

バックアップ

  • Hetznerはボリュームバックアップを提供していないが、サーバー全体のバックアップは提供している。
  • VMwareのVeleroを使ってネームスペースとPVCをバックアップしている。
  • PostgresではpgBackRestを使用している。

追加機能

  • SealedSecretsを使ってシークレットを管理。
  • Node Exporter、Prometheus、Grafana、Lokiを使ってクラスターを監視。
  • Alertmanagerを使ってSlackとの通知連携を行う。

HetznerでKubernetesを運用することについての所感

  • Hetznerへの移行には約1週間かかり、追加のテストとチューニングに4週間を要した。
  • Hetznerの価格は妥当で、他のプロバイダーと比べても低く維持されると考えている。
  • HetznerにはIP品質の問題やカスタマーサービスの制約がある。
  • Hetznerは新機能の投入が速い一方、採算の低いサービスはすぐに終了する可能性がある。
  • 中央ヨーロッパのデータセンターは、ドイツのFalkenstein、Nuremberg、フィンランドのHelsinkiにある。

要約

  • この移行はスムーズに進み、インフラコストを75%以上削減しつつ、クラスターのコンピューティングリソースを2倍に増やした。
  • Hetznerはコスト削減が必要な場合に非常に有力な選択肢である。
  • Hetznerのオープンソースコントローラーにより、ロードバランサー管理と永続ボリューム接続が容易になる。

1件のコメント

 
GN⁺ 2024-12-02
Hacker Newsのコメント
  • サステナビリティや「グリーンホスティング」への言及がないことを指摘し、Hetznerの欧州データセンターは環境配慮型エネルギーを使っているが、米国はそうではないと述べている
  • HetznerでKubernetesクラスターを運用した経験を共有し、AWSと比べてコストは20%程度まで下げられる可能性がある一方で、多くのトレードオフがあると説明している
    • Kubernetesクラスターのアップデートを自分で管理する必要があり、CephやKubernetesのさまざまなバグに遭遇し、多くの作業と監視が必要だったことを強調している
    • AWSのような主要クラウドプロバイダーを使えば、マネージドサービスのおかげで運用負担は軽減される
    • Hetznerは低コストだが、DevOps作業にかかる追加時間によって、その節約分が相殺される可能性があると説明している
  • 過去のウェブホスティング経験からHetznerのIPをブロックしたことがあると共有し、低価格VMプロバイダーに関連する問題に触れている
  • Kubernetesに関連するコスト削減のアイデアを共有し、オンプレミスノードとクラウドプロバイダーのノードを混在させたクラスター構成を提案している
    • egressコストが主要な変数になるだろうと考えている
  • クラスターやワークロードに関する説明が不足していると感じており、削減されたコストの絶対額を知りたいと述べている
  • HetznerでKubernetesをセットアップ・管理する方法としてGitHubプロジェクトを勧めている
  • Hetznerのサポート体制の問題によってゲームサーバーが停止した経験を共有し、注意を促している
  • HetznerのロードバランサーをKubernetesに統合するために薄いオペレーターを実装した経験を共有し、関連プロジェクトを紹介している
  • HerokuからDigitalOceanへ移行して75%のコスト削減を経験し、Hetznerへ移行していれば93%削減できたはずだと推測している
  • DigitalOceanのマネージドクラスターに関する誤解を正し、ノードコストが別途かからないことを説明し、DigitalOceanの魅力を強調している