Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWS Load balancer controller使用下でのAWSリソースのライフサイクル分離
Search
k-nagase
October 12, 2023
Programming
600
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Load balancer controller使用下でのAWSリソースのライフサイクル分離
k-nagase
October 12, 2023
More Decks by k-nagase
See All by k-nagase
クラウドとオンプレミスを組み合わせた機械学習基盤構築の挑戦
koh_naga
0
290
SREには開発組織全体で向き合う
koh_naga
0
630
サンドボックス技術でAI利活用を促進する
koh_naga
1
330
SREは特別な魔法じゃないって話
koh_naga
1
360
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
620
システム担当者のためのクラウドとコンテナライゼーション ~効果を最大化する思考~
koh_naga
0
360
Datadogログ萬屋
koh_naga
0
290
Other Decks in Programming
See All in Programming
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
350
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
140
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
530
Agents on Rails - Rails at Scale 2026
irinanazarova
0
520
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
180
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
140
R8 の設定見直しでアプリサイズ削減
andpad
0
190
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
360
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.6k
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
120
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
4 Signs Your Business is Dying
shpigford
187
23k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Building an army of robots
kneath
307
47k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
Mind Mapping
helmedeiros
1
400
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Tell your own story through comics
letsgokoyo
1
1.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Un-Boring Meetings
codingconduct
0
450
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
350
Transcript
AWS Load balancer controller使用下でのAWSリソースのラ イフサイクル分離
© 2023 3-shake Inc. 2 自己紹介 - 所属: 株式会社スリーシェイク Sreake事業部
- 業務: エンジニアの端くれ。インフラ弄ったり、コード読み書きしたり - 最近は組織とエンジニアリングについて悶々と考えてみたり - 趣味: 車・酒・雪 永瀬滉平
© 2023 3-shake Inc. 3 AWS Load Balancer Controllerを使った、EKSと Load
Balancerの管理(棲み分け)のお話です!
© 2023 3-shake Inc. 4 AWS Load Balanacer Controllerについて Kubernetes向けに立てられるAWSのELB管理をKubernetesの世界(マニフェスト)で行う
ことができるようにするツール apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: alb.ingress.kubernetes.io/ssl-redirect: '443' alb.ingress.kubernetes.io/backend-protocol-version: GRPC alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip labels: app: grpcserver environment: dev name: grpcserver namespace: grpcserver spec: ingressClassName: alb rules: - host: grpcserver.example.com http: paths: - backend: service: name: grpcserver port: number: 50051 path: /helloworld.Greeter pathType: Prefix https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.6/how-it-works/ https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/main/docs/examples/grpc/grpcserver-ingress.yaml
© 2023 3-shake Inc. 5 何に困っていたの? EKSを軸に据えた設計・環境構築を行っていた。諸々 AWSリソースはTerraformでコードで管理していた。 EKSクラスタで動くアプリケーションへの受け口として ELB(ALB)を据えることとしてAWS
Load Balancer Controllerにて管理を行おうとしていた。
© 2023 3-shake Inc. 6 どんな課題があったの? 課題感・ニーズ • AWSリソースをKubernetesの中の世界で定義すると、Terraformで管理しているものと部分的に別れて違和感があった •
Nginx Ingress ControllerやIstio-Ingressgatewayなどを介さずGKEとCloud Loadbalancerの組み合わせでNetwork Endpoint Groupを用いたときのイメージで運用したかった
© 2023 3-shake Inc. 7 apiVersion: elbv2.k8s.aws/v1beta1 kind: TargetGroupBinding metadata:
name: argocd-server namespace: argocd spec: serviceRef: name: argocd-server port: 80 targetType: "ip" targetGroupARN: "arn:aws:elasticloadbalancing:ap-northeast-1:012345678901:targetgroup/xxxxx" networking: ingress: - from: - securityGroup: groupID: "sg-xxxxxxxxx" ports: - protocol: TCP TargetGroupにPod IPを追加するだけ TargetGroupBindingでいけた!!
© 2023 3-shake Inc. 8 まとめ • AWSリソースをKubernetesの中の世界で定義すると、Terraformで管理しているものと部分的に別れて違和感があった → AWSリソースはTerraformでくっきり管理できて、Kubernetesの世界との棲み分けがスッキリした
→ ListenerRuleの重み付けを用いたカナリアリリースがTerraformで完結できるようになった • Nginx Ingress ControllerやIstio-Ingressgatewayなどを介さずGKEとCloud Loadbalancerの組み合わせでNetwork Endpoint Groupを用いたときのイメージで運用したかった → TargetGroupへのIPモードでの登録を利用して、同等の設計とできた 各課題に対して以下のような結果になりました
Thank you