SlideShare a Scribd company logo
1 of 15
ALBのちょっといい話
大越 雄太
自己紹介
● 大越 雄太 (Yuta Okoshi)
● 最近の経歴:
2020年5月に留学資金集めのためにフリーランスとして転生
同時にハウテレビジョンにJOIN
● HowTVでの主なお仕事:
AWSのリソース整理など主にインフラ周り
● 趣味:
IoT × サバイバルゲームでいろいろ作ってます
チンチラと同居生活中
2
Agenda
1. AWS ALBってなに?
2. ALBのちょっといい話
3. どんなところに利用した?
3
AWS ALBって
なに? 4
AWS ALBってなに?
● AWS Elastic Load Balancing(ELB)を2009年に発表
● その後、AWS Application Load Balancer(ALB)を2016年に発表
● 主な特徴
○ レイヤー7のLBとして動作する
○ HTTPとHTTPSのリクエストヘッダにアクセスし、
パスやドメイン、送信元IPなどを判別して負荷を分散できる
○ AWS WAFの利用によるセキュリティ強化
○ OpenID Connectによる認証機能がマネージドで利用できる
○ などなど。。。
細かいことはクラスメソッドさんの記事をドゾ
https://dev.classmethod.jp/articles/describe-elb-types/
5
● 現状、AWSでは3種類のLoad Balancerが発表されています
○ Network Load Balancer(NLB)
○ Application Load Balancer(ALB)
○ Classic Load Balancer(CLB)
● Webアプリケーションは特別な理由がない限りApplication Load Balancerで必要十分です
● Classic Load Balancerは今後、利用しないようにしましょう
細かいことはクラスメソッドさんの記事をドゾ
https://dev.classmethod.jp/articles/describe-elb-types/
AWS ALBってなに?
6
ALBの
ちょっといい話 7
AWS ALBってなに?
● AWS Elastic Load Balancing(ELB)を2009年に発表
● その後、AWS Application Load Balancer(ALB)を2016年に発表
● 主な特徴
○ レイヤー7のLBとして動作する
○ HTTPとHTTPSのリクエストヘッダにアクセスし、
パスやドメイン、送信元IPなどを判別して負荷を分散できる
○ AWS WAFの利用によるセキュリティ強化
○ OpenID Connectによる認証機能がマネージドで利用できる
○ などなど。。。
細かいことはクラスメソッドさんの記事をドゾ
https://dev.classmethod.jp/articles/describe-elb-types/
8
ALBでルーティングしちゃえば
各EC2インスタンス上のNginxっていらな
くね??
スクリプト言語だったとしてもNginxの設
定を数行に抑えられるんじゃね?
ALBのちょっといい話
9
Ruleは上から順に
評価されます
ALBのちょっといい話
10
どのルールにも
該当しない場合は404を返却する
→ルール変更を容易にする
80はすべてリダイレクトとし
ルール管理はしない
→443にルールを集約させる
どんなところに
利用した? 11
どんなところに利用した?
12
既存環境の問題点
● 1つのドメインに1つのLB
○ 料金がかさむ
● EC2から別のEC2をProxyしている場合もあった
○ ルーティング設定が至るところに点在
● SSL証明書はもちろんEC2インスタンスに保存
○ SSL証明書は未管理
● CLBが利用されている箇所が多数あったり
etc…
13
どんなところに利用した?
14
どんなところに利用した?
改善点
● ALBは外部向け、内部向けそれぞれ1つだけ
● 内部からのアクセスでも必ずLBを通す
● SSL証明書はACMで管理し必要に応じてALBで利用
● ルーティング設定はALBに集約
● EC2内部でのhttpsへのリダイレクト設定はすべて排除
● Nginx側でルーティングを気にする必要がなくなった
● ALBによるブルー/グリーンデプロイメントの実施が
可能に
技術的負債は取り除ける!
小さなところから
コツコツと初めよう!

More Related Content

What's hot

Alibaba Cloud Serverless Kubernetes 徹底解説
Alibaba Cloud Serverless Kubernetes 徹底解説Alibaba Cloud Serverless Kubernetes 徹底解説
Alibaba Cloud Serverless Kubernetes 徹底解説Shinya Mori (@mosuke5)
 
AWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすかAWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすかShun Fukazawa
 
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Daisuke Miyamoto
 
Amazon AlexaとServerless
Amazon AlexaとServerlessAmazon AlexaとServerless
Amazon AlexaとServerlessJun Ichikawa
 
Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念Shinya Mori (@mosuke5)
 
Try aws personalize in japanese presentation jawsug niigata
Try aws personalize in japanese presentation jawsug niigataTry aws personalize in japanese presentation jawsug niigata
Try aws personalize in japanese presentation jawsug niigataMasayuki Sakamoto
 

What's hot (8)

Alibaba Cloud Serverless Kubernetes 徹底解説
Alibaba Cloud Serverless Kubernetes 徹底解説Alibaba Cloud Serverless Kubernetes 徹底解説
Alibaba Cloud Serverless Kubernetes 徹底解説
 
AWS Lambda + Go
AWS Lambda + GoAWS Lambda + Go
AWS Lambda + Go
 
AWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすかAWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすか
 
Tune Up AWS Lambda
Tune Up AWS LambdaTune Up AWS Lambda
Tune Up AWS Lambda
 
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
 
Amazon AlexaとServerless
Amazon AlexaとServerlessAmazon AlexaとServerless
Amazon AlexaとServerless
 
Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念
 
Try aws personalize in japanese presentation jawsug niigata
Try aws personalize in japanese presentation jawsug niigataTry aws personalize in japanese presentation jawsug niigata
Try aws personalize in japanese presentation jawsug niigata
 

Recently uploaded

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (12)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

AWS ALBのちょっとイイ話

Editor's Notes

  1. 大越 雄太 (Yuta Okoshi) 最近の経歴: 2020年5月に留学資金集めのためにフリーランスとして転生し 同時にハウテレビジョンのSREチームとしてJOIN HowTVでの主なお仕事: AWSのリソース整理など主にインフラ周り 趣味: IoT × サバイバルゲームでいろいろ作ってます チンチラと同居生活中 チンチラ飼ってるよーとか、IoTガジェット作ってるって方はぜひお話させてください
  2. Google OpenID Providerを使えるのでGoogleアカウントを利用したらアカウント管理業務が0に。。。。??
  3. ALBのちょっとイイ話をしていきます。 ところで先程のスライドの中で気になることがあったと思います。
  4. このリクエストヘッダにアクセスして負荷を分散させることができるということは 各インスタンス上でNginxの設定を全部取り除けるのでは???という考えが僕の中で生まれました。 それを実現するための方法を見つけてみたので次のスライドを紹介したいと思います。
  5. ALBにはポートごとにリスナーを用意し 各リスナーにはルールを定義することができます。 そのルールは上から順に評価され当てはまり次第ルール先のターゲットグループへルーティングされます。 ターゲットグループにはEC2やLambda、IPアドレス、API Gatewayなど様々なリソースの特定のポートに対してターゲットとして登録できるので大抵のことはできると思います。
  6. これら構成を踏まえた上でこの赤色の部分が今回のお話になります。 まずWebアプリといえば80ポートと443ポートが開いていますが、Nginxやアプリ側でhttpsへのリダイレクト設定などをやっていたりしますよね? それらをALB上でやってしまいました。 こうすることで80ポートに来たリクエストはEC2にたどり着く前にhttpsとしてリダイレクトされるのでEC2側はhttpsかhttpなのかといったことを気にしないで良くなりました。 また、443ポートのリスナーを見るだけでどのTGにどんなリクエストが行くのかがひと目で分かるようになります。 443ポート側のルールにも工夫があります。 デフォルトの向き先を404にすることで意図しないリクエストをEC2が処理しないようにできます。 例えばIPアドレスによるアクセスや意図しないサブドメインでのアクセスなどを遮断できます。 アプリ側では特定のドメインでリクエストが届くことを前提にWebアプリの開発ができるようになります。
  7. それではこれら構成を今の現場でどのように適応したのかを次のスライドで説明していきたいと思います。
  8. まず。こちらが適応する前の開発環境の構成になります。 EC2から直接EC2を見ていたり、管理がかなり複雑になっていました。
  9. こちらを右の図のようにキレイにしてみました。 図を見るだけでもかなりわかりやすくなったと思います。
  10. 具体的な改善点としては