Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GoのアプリをEKS(Fargate)にデプロイしてみた話

 GoのアプリをEKS(Fargate)にデプロイしてみた話

5f72c4101bc29a8a83812e376d7527ba?s=128

Ryohei Hisamitsu

May 13, 2022
Tweet

More Decks by Ryohei Hisamitsu

Other Decks in Technology

Transcript

  1. GoのアプリをEKS(Fargate)に デプロイしてみた話 AWSなんでもLT会 久光遼平

  2. 自己紹介:久光 遼平(ひさみつ りょうへい) • IT業界約4年のエンジニア(自動車業界で約6年) ◦ 現職:TypeScriptでの開発、    AWSでのインフラ構築 ※EKSは実務で触ったことないです(ECSはあり) •

    趣味 ◦ マラソン:フル2回、30km1回、ハーフ1回 ◦ サッカー
  3. 今日するお話 • k8s(コンテナオーケストレーション)の概要 • k8sのメリット・デメリット • EKSヘのデプロイ手順(大まかな流れ&注意点だけ) ◦ 詳細の手順については、zennに記事を書いています •

    使ってみてどうだったか? 「GoのアプリをEKS(Fargate)にデプロイしてみた話」 https://zenn.dev/hisamitsu/articles/53d0dd94e08b2b
  4. コンテナオーケストレーションがなぜ必要か? • 手動だと、複数のマシンでコンテナを運用するのが辛いから コンテナの分散 Auto Scale

  5. k8sのメリット・デメリット(ECS等と比べて) • メリット ◦ 作成した設定ファイルを異なるサービス間(EKS・GKE等)で流用 できる。(ただし、固有の設定もある) • デメリット ◦ バージョンアップへの追従が辛い

    ▪ 3ヶ月に一度新バージョンがリリース ▪ 1つのバージョンは14ヶ月でサポートが切れる(EKS) ▪ 強制アップデートがかかる(EKS) • 使う前の個人的な感想 → EKS(k8s)辛そう、ECSで良いのでは?
  6. Cluster 作ったもの:すごく簡単なAPI Namespace Deployment Pod Service Ingress リソース名 用途 Pod

    コンテナ集合体の単位 Deployment Pod(ReplicaSet)の世代管理をする Service Podの集合にアクセスするための経路 Ingress Serviceをクラスタの外に公開する
  7. 実際の手順(かなりざっくりと) • 記事の内容をベース説明します ◦ 流れだけ理解いただければ十分です! • 前提 ◦ eksctl:EKS用のCLIツール ◦

    kubectl:k8s用のCLIツール 「GoのアプリをEKS(Fargate)にデプロイしてみた話」 https://zenn.dev/hisamitsu/articles/53d0dd94e08b2b
  8. 注意点① Fargateプロファイルを作成する必要がある • EKSでFargateを利用するための設定情報 ◦ Podの振り分け条件の設定 ▪ 指定されたNamespaceにしかPodを割り当てられない ▪ デフォルトで作られるものには、当然Namespaceが追加さ

    れていない ▪ 公式には書いてあるけど、わかりにくい、、
  9. 注意点② インターネット経由でのアクセスに手間がかかる • FargateにパブリックIPアドレスを割り当てることはできない ◦ Podに直接アクセスはできない • LoadBalancerのCLB/NLBは非対応 ◦ k8sのServiceでLoadBalancerを設定すると、デフォルトでは

    CLB(Classic Load Balancer)が作成さるが、Fargateでは対 応していない →ちょっと試したいだけでもALB + Ingressの設定が必要
  10. 使ってみてどうだったか? • 使う前の個人的な感想 → EKS(k8s)辛そう、ECSで良いのでは? • ポジティブ ◦ エンジニアとして、学んでいて楽しい ▪

    CI/CDなどはk8sに特化したツールがたくさんある ◦ k8sをマスターしてしまえば、ECSよりはベンダの乗り換えは楽か も ▪ ベンダの乗り換えってそんなにする? ▪ バージョンアップの追従など考えると、トータルでは工数かか るのでは?)
  11. 使ってみてどうだったか? • 使う前の個人的な感想 → EKS(k8s)辛そう、ECSで良いのでは? • ネガティブ ◦ 手間がかかる ▪

    Fargateプロファイルの設定など ▪ ALBを入れたいだけなのに、事前にそのコントローラを設定 する必要がある ◦ 可搬性高いのか? ▪ ALBの設定など、結局各ベンダに依存する箇所がある ◦ 学習コストが高い ▪ k8s、EKSの設定について学ぶ必要がある
  12. AWSの人の見解も • AWSはなぜ、ECSがあるのにKubernetesのサービスを始めたのか、コックロフ ト氏に聞いた

  13. 以降、使わないスライドたち

  14. Docker Compose、Dockerとの関係 • コンテナオーケストレーション ◦ 複数コンテナを複数のマシンに • Docker Compose ◦

    複数コンテナを一つのマシンに • Dockerfile ◦ 一つのコンテナを一つのマシンに