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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
k-nagase
October 12, 2023
Programming
610
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
300
SREには開発組織全体で向き合う
koh_naga
0
650
サンドボックス技術でAI利活用を促進する
koh_naga
1
340
SREは特別な魔法じゃないって話
koh_naga
1
370
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
630
システム担当者のためのクラウドとコンテナライゼーション ~効果を最大化する思考~
koh_naga
0
370
Datadogログ萬屋
koh_naga
0
300
Other Decks in Programming
See All in Programming
はじめてのPLATEAU
nokonoko1203
1
570
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
150
ActionController meets Protocol Buffers
sorah
1
780
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
410
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
910
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.8k
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
200
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.7k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
120
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
220
Featured
See All Featured
Between Models and Reality
mayunak
4
560
Game over? The fight for quality and originality in the time of robots
wayneb77
1
330
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
970
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
560
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
460
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Odyssey Design
rkendrick25
PRO
2
930
How to Ace a Technical Interview
jacobian
280
24k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
760
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.9k
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