Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GoのアプリをEKS(Fargate)にデプロイしてみた話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ryohei Hisamitsu
May 13, 2022
Technology
260
0
Share
GoのアプリをEKS(Fargate)にデプロイしてみた話
Ryohei Hisamitsu
May 13, 2022
More Decks by Ryohei Hisamitsu
See All by Ryohei Hisamitsu
re:Invent参加フィードバック会
hisami
0
94
Greengrassを使ったIoTのアーキテクチャ
hisami
0
170
ECS Execを使ってFargateにログインしてみた
hisami
1
390
TypeScriptでDIしてみた
hisami
0
520
Other Decks in Technology
See All in Technology
AIエージェント時代に必要な オペレーションマネージャーのロールとは
kentarofujii
0
230
MCPで決済に楽にする
mu7889yoon
0
160
FASTでAIエージェントを作りまくろう!
yukiogawa
4
180
PostgreSQL 18のNOT ENFORCEDな制約とDEFERRABLEの関係
yahonda
0
150
脳が溶けた話 / Melted Brain
keisuke69
1
1.1k
SaaSに宿る21g
kanyamaguc
2
180
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
300
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
AIにより大幅に強化された AWS Transform Customを触ってみる
0air
0
230
非同期・イベント駆動処理の分散トレーシングの繋げ方
ichikawaken
1
250
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
200
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
130
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
310
Marketing to machines
jonoalderson
1
5.1k
The Limits of Empathy - UXLibs8
cassininazir
1
280
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Evolving SEO for Evolving Search Engines
ryanjones
0
170
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
First, design no harm
axbom
PRO
2
1.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Darren the Foodie - Storyboard
khoart
PRO
3
3.1k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Transcript
GoのアプリをEKS(Fargate)に デプロイしてみた話 AWSなんでもLT会 久光遼平
自己紹介:久光 遼平(ひさみつ りょうへい) • IT業界約4年のエンジニア(自動車業界で約6年) ◦ 現職:TypeScriptでの開発、 AWSでのインフラ構築 ※EKSは実務で触ったことないです(ECSはあり) •
趣味 ◦ マラソン:フル2回、30km1回、ハーフ1回 ◦ サッカー
今日するお話 • k8s(コンテナオーケストレーション)の概要 • k8sのメリット・デメリット • EKSヘのデプロイ手順(大まかな流れ&注意点だけ) ◦ 詳細の手順については、zennに記事を書いています •
使ってみてどうだったか? 「GoのアプリをEKS(Fargate)にデプロイしてみた話」 https://zenn.dev/hisamitsu/articles/53d0dd94e08b2b
コンテナオーケストレーションがなぜ必要か? • 手動だと、複数のマシンでコンテナを運用するのが辛いから コンテナの分散 Auto Scale
k8sのメリット・デメリット(ECS等と比べて) • メリット ◦ 作成した設定ファイルを異なるサービス間(EKS・GKE等)で流用 できる。(ただし、固有の設定もある) • デメリット ◦ バージョンアップへの追従が辛い
▪ 3ヶ月に一度新バージョンがリリース ▪ 1つのバージョンは14ヶ月でサポートが切れる(EKS) ▪ 強制アップデートがかかる(EKS) • 使う前の個人的な感想 → EKS(k8s)辛そう、ECSで良いのでは?
Cluster 作ったもの:すごく簡単なAPI Namespace Deployment Pod Service Ingress リソース名 用途 Pod
コンテナ集合体の単位 Deployment Pod(ReplicaSet)の世代管理をする Service Podの集合にアクセスするための経路 Ingress Serviceをクラスタの外に公開する
実際の手順(かなりざっくりと) • 記事の内容をベース説明します ◦ 流れだけ理解いただければ十分です! • 前提 ◦ eksctl:EKS用のCLIツール ◦
kubectl:k8s用のCLIツール 「GoのアプリをEKS(Fargate)にデプロイしてみた話」 https://zenn.dev/hisamitsu/articles/53d0dd94e08b2b
注意点① Fargateプロファイルを作成する必要がある • EKSでFargateを利用するための設定情報 ◦ Podの振り分け条件の設定 ▪ 指定されたNamespaceにしかPodを割り当てられない ▪ デフォルトで作られるものには、当然Namespaceが追加さ
れていない ▪ 公式には書いてあるけど、わかりにくい、、
注意点② インターネット経由でのアクセスに手間がかかる • FargateにパブリックIPアドレスを割り当てることはできない ◦ Podに直接アクセスはできない • LoadBalancerのCLB/NLBは非対応 ◦ k8sのServiceでLoadBalancerを設定すると、デフォルトでは
CLB(Classic Load Balancer)が作成さるが、Fargateでは対 応していない →ちょっと試したいだけでもALB + Ingressの設定が必要
使ってみてどうだったか? • 使う前の個人的な感想 → EKS(k8s)辛そう、ECSで良いのでは? • ポジティブ ◦ エンジニアとして、学んでいて楽しい ▪
CI/CDなどはk8sに特化したツールがたくさんある ◦ k8sをマスターしてしまえば、ECSよりはベンダの乗り換えは楽か も ▪ ベンダの乗り換えってそんなにする? ▪ バージョンアップの追従など考えると、トータルでは工数かか るのでは?)
使ってみてどうだったか? • 使う前の個人的な感想 → EKS(k8s)辛そう、ECSで良いのでは? • ネガティブ ◦ 手間がかかる ▪
Fargateプロファイルの設定など ▪ ALBを入れたいだけなのに、事前にそのコントローラを設定 する必要がある ◦ 可搬性高いのか? ▪ ALBの設定など、結局各ベンダに依存する箇所がある ◦ 学習コストが高い ▪ k8s、EKSの設定について学ぶ必要がある
AWSの人の見解も • AWSはなぜ、ECSがあるのにKubernetesのサービスを始めたのか、コックロフ ト氏に聞いた
以降、使わないスライドたち
Docker Compose、Dockerとの関係 • コンテナオーケストレーション ◦ 複数コンテナを複数のマシンに • Docker Compose ◦
複数コンテナを一つのマシンに • Dockerfile ◦ 一つのコンテナを一つのマシンに