ALB
用途
ALBはユーザからのリクエストを受けて、そのリクエストはEC2に分散するものです。 ALBにEC2に直接紐づけることはできなくて、EC2が所属するグループを作ってそのグループを紐づけるやり方になってます。そのグループはターゲットグループと呼びます。 PC等からのリクエスト→ALB→TAGETGROUP→EC2といった感じです。サイトをHTTPS化するのにもALBは必要だった気がします。
ターゲットグループの作成
- ここではALBに登録するEC2のグループを作成します。
EC2の左メニューの
ターゲットグループ
をクリックCreate target group
ボタンをクリックSpecify group details
画面が起動するので以下の設定をしてnext
ボタンをクリック- Basic configuration
Choose a target type
: InstancesTarget group name
: mattermost-ec2-targetgroupProtocol - Port
: HTTP 8065VPC
: mattermost-vpcProtocol version
: HTTP1
- Health checks
Health check protocol
: HTTPHealth check path
: /Advanced health check settings
: (デフォルト設定でOK)
- Attributes
- (デフォルト設定でOK)
- Tags - optional
Key
: NameValue
: mattermost-ec2-targetgroup
- Basic configuration
Register targets
画面が起動するので以下の設定をしてcreate target group
ボタンをクリック- グループに追加するEC2(mattermost-server01)にチェックを入れ、
include as pending below
ボタンをクリック Review targets
にチェックを入れたインスタンスが表示されるので、さらっと確認します。
- グループに追加するEC2(mattermost-server01)にチェックを入れ、
ALBのセキュリティグループの作成
- これはユーザからのリクエストをALBに受けるためのセキュリティグループです。
- AWSコンソール画面の検索窓に「セキュリティグループ」と入力→
セキュリティグループ
をクリック→セキュリティグループを作成
ボタンをクリック
画面 | 設定項目 | 設定値 |
---|---|---|
基本的な詳細 | セキュリティグループ名 | mattermost-alb-sg |
説明 | Security group applied to Mattermost ALB | |
VPC | mattermost-vpc | |
インバウンドルール1 | タイプ | HTTPS |
プロトコル | TCP | |
ポート範囲 | 443 | |
ソース | AnywhereIPv4 | |
説明 - オプション | Allow inbound communication on port443 from source | |
インバウンドルール2 | タイプ | HTTP |
プロトコル | TCP | |
ポート範囲 | 80 | |
ソース | AnywhereIPv4 | |
説明 - オプション | Allow inbound communication on port80 from source | |
アウトバウンドルール | - | - |
タグ - オプション | キー | Name |
値 - オプション | mattermost-alb-sg |
ALBの作成
- EC2の左メニューの
ロードバランサー
をクリックします。
ロードバランサーの作成
ボタンをクリック(Create load balancer
ボタンをクリック)Application Load Balancer
のCreate
ボタンをクリックCreate Application Load Balance
画面が起動するので以下の設定をしてCreate load balancer
ボタンをクリック
How Application Load Balancers work
デフォルト設定でOK
Basic configuration
設定項目 | 設定値 |
---|---|
Load balancer name | mattermost-alb |
Scheme | Internet-facing |
IP address type | IPv4 |
Network mapping
設定項目 | 設定値 |
---|---|
VPC | mattermost-vpc |
Mappings | ap-northeast-1にチェックをいれてSubnetはpublicのものを選択 ap-northeast-1cにチェックをいれてSubnetはpublicのものを選択 |
Security groups
設定項目 | 設定値 |
---|---|
Security groups | mattermost-alb-sg ※defaultで表示されているVPCは×で削除してください |
Listeners and routing
Listeners
リスナー | 設定項目 | 設定値 |
---|---|---|
Listener HTTP:80 | Protocol | HTTP |
Port | 80 | |
Default action | mattermost-ec2-group | |
Key | Name | |
Value | alb-listerner-port80 | |
Listener HTTPS:443 | Protocol | HTTPS |
Port | 443 | |
Default action | mattermost-ec2-group | |
Key | Name | |
Value | alb-listerner-port443 |
Secure listener settings
設定項目 | 設定値 |
---|---|
Security policy | (デフォルト設定でOK) |
Default SSL/TLS certificate | From ACM |
*.jagisama.com |
Add-on services
デフォルト設定でOK
Tags - optional
設定項目 | 設定値 |
---|---|
Key | Name |
Value - optional | mattermost-alb |
Summary
デフォルト設定でOK
Route 53にサブドメイン追加
- ここはRoute53の画面の作業で、サブドメインの運用をする設定です。ALBがないと設定ができません。
- Route53の画面を開く→ 作成したホストゾーンをクリック →
レコード作成
をクリックします。
画面 | 設定項目 | 設定値 |
---|---|---|
レコードのクイック作成 | レコード名 | toki ※自分の名前でいいと思います。ブラウザからここで設定する名前+ドメインでMattermostにアクセスすることになります。例:https://toki.jagisama.com)重要なので覚えておきましょう。 |
レコードタイプ | A-IPv4 アドレスと一部のAWSリソースにトラフィックをルーティングします。 | |
エイリアス | 〇を右側に寄せる | |
トラフィックのルーティング先 | Application Load Balancer と Classic Load Balancer へのエイリアス | |
アジアパシフィック(東京)[ap-northease-1] | ||
XXXX.masttermost-alb-XXXXX.ap-northease-1.elb.amazonaws.com ※選択できるALBは1つしかないと思います。 |
||
ルーティングポリシー | (デフォルトのままでOK) | |
ターゲットのヘルスを評価 | はい |
この後、Route 53にサブドメインのAレコードが追加されます
(今回は実施しません)ALBでHTTPリクエストをHTTPSにリダイレクト
- なくてもいいのですが、あると少し便利なので設定します。
- 最近画面が英語表記になったようだ。画像は日本語のときのものです。
- ロードバランサーの画面で、作成したロードバランサーをクリック → Listnersの
HTTP:80
をクリック →Rules
タブをクリック →Manages rules
をクリックするとルールの編集画面が表示sれます。以降は画像に沿って設定します。
↓
↓
↓
↓
↓
アクションの追加→リダイレクト先
↓
↓
↓
こうなればOK。設定がうまくいかなくてもhttpでアクセスできないだけなので大丈夫です。