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
AWS Load balancer controller使用下でのAWSリソースのライフサイクル分離
Search
k-nagase
October 12, 2023
Programming
590
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
280
SREには開発組織全体で向き合う
koh_naga
0
610
サンドボックス技術で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
340
Datadogログ萬屋
koh_naga
0
290
Other Decks in Programming
See All in Programming
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
140
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
630
MIZARU@SPAJAM2026 第二回予選
1901drama
0
100
新卒PdEのリアル
ryu1013
1
380
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.7k
不幸な GC
chencmd
0
880
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
110
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
高専キャリア LT 発表内容
crysta1221
6
5.5k
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
1
470
Press start. Python's next generation.
willingc
PRO
3
300
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
460
The Limits of Empathy - UXLibs8
cassininazir
1
640
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
390
A Modern Web Designer's Workflow
chriscoyier
698
190k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
810
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Facilitating Awesome Meetings
lara
57
7.1k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
Deep Space Network (abreviated)
tonyrice
0
290
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