BeeX Tech blog

BeeXではクラウドネイティブアプリ開発、企業の基幹クラウド基盤構築、システム移行、運用保守を行っています。

EKS Auto ModeでHybrid NodesとしてRaspberry Piを動かしてみる(概要編)


大友(@yomon8)です。

re:Invent 2024で発表されたEKS新機能

AWSのre:Invent 2024でEKSの大きな発表として以下の2点がありました。

Auto Mode

Auto Modeが出たことで、今まで便利にEKSを使うために必要だった基本機能がAWS管理となりました。Auto Modeの設定で出てくる以下の画面でどんなものかが端的に説明されています。KarpenterやAWS Load Balancer Controller に対して意識することが大きく削減されました。


Hybrid Nodes

Hybrid Nodesが出たのでEKSのコントロールプレーン配下に、オンプレのマシンを置くことができるようになりました。オンプレで余ってしまっているマシンもEKSの配下で有効活用できるかもしれません。


さっそく試してみました

早速タイトルの内容をやってみました。

この記事では以下の点の説明までにして、デプロイ手順等は後続の記事で書いていこうと思います。

  • 概要
  • 技術スタック
  • デプロイ後の挙動確認
  • コード
  • デプロイ手順等(次回)

概要

自宅のRaspberry Piを利用して、以下の構成を作ってみました。

  • EKSはAuto Modeで構築
  • Raspbery Piとlibresawanを使ってAWSとSite-to-Site VPNを構築
  • VPN接続されたRaspberry PiをHybrid Nodeとして利用
  • Raspbery Pi上で動いているWEBサービス稼働させたPodにALB経由でアクセス(図の緑の線)



技術スタック

利用している技術スタックは以下です。

  • Raspberry Pi 4 

    • 前提条件に合せてRaspberry Pi OSでは無くUbuntu Serverを利用
  • libreswan

    • openswanの経験あったので、strongswanではなくこちらを利用
  • DevContainer

    • 最近は全ての開発でDevContainer使っているので、今回の内容もDevContainerで完結しています
  • Terraform

    • AWSリソースのプロビジョニングと、helmでのCalicoのインストールなどに使っています
    • EKS Auto Modeにも早速対応していました!
    • Raspberry Piの設定スクリプトも生成しています




デプロイ後の挙動確認

普段はk9sを使っているのですが、今回はEKSの画面からどう見えるのか確認していきたいと思います。

ノードは以下のように見えます。


だいたいRaspberry Pi 4のスペックになっています。CPUもARM64となっています。

もう少し見てみます。以下k9sの画面ですが、今回192.168.10.0/23で自宅にネットワーク切っています。192.168.11.22がRaspberry Piです。

ALBでIngressが立ち上がっています。


もう一つ確認画面です、Raspberry Piにログインして、ローカルのIP確認して、EKSからローカルにスケジュールされたPodにcurlでアクセス、最後にALBを通して同じPodにアクセスしているところです。


コード

コードはこちらです。一旦動いていますが、次の記事までに整理すると思います。

github.com


デプロイ方法は次回

www.beex-inc.com


今回は以上となります。ここまで読んでいただきありがとうございました!