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
240
GoのアプリをEKS(Fargate)にデプロイしてみた話
Ryohei Hisamitsu
May 13, 2022
Tweet
Share
More Decks by Ryohei Hisamitsu
See All by Ryohei Hisamitsu
re:Invent参加フィードバック会
hisami
0
82
Greengrassを使ったIoTのアーキテクチャ
hisami
0
150
ECS Execを使ってFargateにログインしてみた
hisami
1
360
TypeScriptでDIしてみた
hisami
0
520
Other Decks in Technology
See All in Technology
"プロポーザルってなんか怖そう"という境界を超えてみた@TSUDOI by giftee Tech #1
shilo113
0
190
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
3
240
小学4年生夏休みの自由研究「ぼくと Copilot エージェント」
taichinakamura
0
720
『OCI で学ぶクラウドネイティブ 実践 × 理論ガイド』 書籍概要
oracle4engineer
PRO
3
220
いまからでも遅くない!SSL/TLS証明書超入門(It's not too late to start! SSL/TLS Certificates: The Absolute Beginner's Guide)
norimuraz
0
240
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
20251007: What happens when multi-agent systems become larger? (CyberAgent, Inc)
ornew
1
290
Node.js 2025: What's new and what's next
ruyadorno
0
320
JAZUG 15周年記念 × JAT「AI Agent開発者必見:"今"のOracle技術で拡張するAzure × OCIの共存アーキテクチャ」
shisyu_gaku
1
160
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
220
AWSでAgentic AIを開発するための前提知識の整理
nasuvitz
2
160
なぜAWSを活かしきれないのか?技術と組織への処方箋
nrinetcom
PRO
5
900
Featured
See All Featured
BBQ
matthewcrist
89
9.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
4 Signs Your Business is Dying
shpigford
185
22k
Gamification - CAS2011
davidbonilla
81
5.5k
Visualization
eitanlees
149
16k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Agile that works and the tools we love
rasmusluckow
331
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Designing for Performance
lara
610
69k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
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 ◦ 一つのコンテナを一つのマシンに