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
Ryohei Hisamitsu
May 13, 2022
Technology
0
230
GoのアプリをEKS(Fargate)にデプロイしてみた話
Ryohei Hisamitsu
May 13, 2022
Tweet
Share
More Decks by Ryohei Hisamitsu
See All by Ryohei Hisamitsu
re:Invent参加フィードバック会
hisami
0
80
Greengrassを使ったIoTのアーキテクチャ
hisami
0
140
ECS Execを使ってFargateにログインしてみた
hisami
1
360
TypeScriptでDIしてみた
hisami
0
510
Other Decks in Technology
See All in Technology
エラーとアクセシビリティ
schktjm
1
1.2k
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
820
サンドボックス技術でAI利活用を促進する
koh_naga
0
200
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
380
Rustから学ぶ 非同期処理の仕組み
skanehira
1
130
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
240
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
130
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
220
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
480
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
270
なぜSaaSがMCPサーバーをサービス提供するのか?
sansantech
PRO
8
2.8k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
Agile that works and the tools we love
rasmusluckow
330
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Docker and Python
trallard
45
3.6k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
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 ◦ 一つのコンテナを一つのマシンに