0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ALB(パブリック)- VPCエンドポイント-S3の構成 (追加でパスによる振り分け)

Posted at

外部ALBに対してS3を直接紐づける

概要

image.png

この構成です。この構成を実施したい人も多いと思うので記載します。

AWSの公式には内部ALBのバージョンの手順が載っているのですが、外部ALBバージョンでも作成できます。AWSのサポートには、これだとヘルスチェックが落ちると言われましたが、それも下記のようにすれば回避できます。

手順概要

内部ALBで構築するときの公式の手順

ほとんど上記の手順通りに進めます

Step1: Amazon S3 のVPC Endpoint を作成する
Step2: VPCエンドポイントから S3 へのアクセスを許可する
はそのまま踏襲

Step3から少しもちろん違います

Step3以降の手順詳細

ALB に名前を付け、「internal」スキームを選択する
-> ALB に名前を付け、「extenrnal」スキームを選択する

これぐらいが差分ですが
外部ALB名と同じバケット名を作成することがキモです。

つまり、AWSによって払い出されるtest-demo-alb-XXXXXXXX.ap-northeast-1.elb.amazonaws.com
このようなALB名に対して同等のバケット名でS3を作成してください

ALB名でS3のバケット名を下記で設定

image.png

こちらのヘルスチェックを踏襲して、307,445で監視すれば生死監視もOKです

image.png

ちなみに何度か作り直している際に、SGのこの手順を実施してなくてハマったので、SGやIAMの権限不足のようなAWSハマりあるあるのところはご注意ください。

image.png

追加でターゲットグループによって振り分けをする

追加で今回、ALBの振り分けも実施したかったのですが、

image.png

その場合は二点注意すれば作成できます

1点目 ターゲットグループの作成とルーティング

こちらは当たり前だと思うのですが、ターゲットグループの作成とルーティングが必要です

1-1 IPベースのターゲットグループ

先程のStep3のところであったIPを使って
image.png

https://dev.classmethod.jp/articles/ip-target-for-alb/
こちらの記事のようにターゲットグループを作成します。

1-2 ルーティング

image.png

2点目 S3にパス名でフォルダを作成

S3にパス名でフォルダを作成をしてください。こうしないとALBからS3のどこにルーティングしていいのかがAWS側がわからないのだと思います。

image.png

その他

ALBのログを出すときに

こちらの公式だけだとログがでず、IAMではマリました、このクラスメソッドさんの記事で書かれている方法が必要で
https://dev.classmethod.jp/articles/alb-connection-logs/

さらにこの記事のIAM中の582318560864は
"AWS": "arn:aws:iam::582318560864:root"
自分のAWSアカウントとかではなく、ap-northeast-1で固有の値なのでご注意ください

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?