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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
信頼性の目標を誰も求めてない
shubox
0
490
自分的「カンファレンスの楽しみ方」
syumai
0
190
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
570
リアルな遅延を測る仕様
kota_yata
1
140
AIの中の人になってみる
htkym
0
160
バグを直したら useEffect が消えた
colorful12
3
830
高専キャリア LT 発表内容
crysta1221
6
5.5k
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
ALB ログから Trace を気合で繋げる技術
fohte
7
860
業務時間外もAIに働いてもらう話
colorful12
3
9.9k
Foundry Localでエージェント開発
seosoft
0
130
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Between Models and Reality
mayunak
4
450
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
570
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
470
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Why Our Code Smells
bkeepers
PRO
340
58k
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