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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
270
SREには開発組織全体で向き合う
koh_naga
0
600
サンドボックス技術でAI利活用を促進する
koh_naga
1
320
SREは特別な魔法じゃないって話
koh_naga
1
350
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
600
システム担当者のためのクラウドとコンテナライゼーション ~効果を最大化する思考~
koh_naga
0
330
Datadogログ萬屋
koh_naga
0
280
Other Decks in Programming
See All in Programming
React本体のコードリーディング
high_g_engineer
1
140
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
590
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
140
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
210
その節約、円になってますか?
isamumumu
1
710
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
400
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
350
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
160
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
550
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
150
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
What's in a price? How to price your products and services
michaelherold
247
13k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
The agentic SEO stack - context over prompts
schlessera
0
860
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
ラッコキーワード サービス紹介資料
rakko
1
4.3M
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
340
Claude Code のすすめ
schroneko
67
230k
Site-Speed That Sticks
csswizardry
13
1.4k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
850
Evolving SEO for Evolving Search Engines
ryanjones
0
250
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