こんにちは、yassanです。
今回は、ALBにアタッチするセキュリティグループのアウトバウンドルールにS3への通信を許可しなくてもアクセスログが出力できる件 を紹介します。
(ラノベのタイトルではありません...!!!)
ALBにはアクセスログを作成してS3に出力する機能があります。
このときの通信経路について、開発者側が意識して許可しないといけないのか...といのが今回明らかにしたいポイントです。
というわけで今回は、その下記の構成で検証したいと思います。
- ALB
- Publicサブネットに配置
- 80リスナーを作成
- 80でヘルスチェックを実施
- Target Group
- 80でトラフィックを流す
- EC2
- パブリックサブネットに2つ配置
ALBのセキュリティグループのアウトバウンドルール
公式の見解
早速検証に入る前に、まずは公式のドキュメントを読んでみます。
公式ドキュメントのリンクは↓です。
Application Load Balancer のセキュリティグループ - Elastic Load Balancing
アウトバウンドルールにだけ注目すると、
PublicでもInternalでも、以下を許可する必要があると記載があります。
- 送信先:インスタンスセキュリティグループ ポート:インスタンスリスナー
- 送信先:インスタンスセキュリティグループ ポート:ヘルスチェック
1つ目の方は、通常の通信経路のことですね。
こちらが許可されていないと、LBとしての機能が利用できません。
2つ目の方は、ヘルスチェック用の通信経路のことですね。
通常は80とかに設定してることが多いのではないでしょうか。
大体のケースは1つ目と2つ目は同じことが多いですね。
さて、今回取り上げているS3への通信経路については...記載されてないですね。
おそらく、ALBのアクセスログ自体がデフォルトの設定ではないので記載されていないのでしょう。
アウトバウンドルールを設定する
というわけで、実際にやっていきます。
まずは、アウトバウンドルールを全許可したセキュリティグループをALBにアタッチします。
アタッチしセキュリティグループは下記の感じです。
どこにでもよくあるアウトバウンドルールですね(?)
では、この状態でALBにアクセスしてみます。
ちょっと見えづらいですが、17:01にアクセスしました。
では次に、アウトバウンドルールを公式ベストプラクティスに従って変更します。
HTTPでEC2インスタンスにアタッチされたセキュリティグループを許可します。
セキュリティグループを変更しました。
これで、もしかしたらS3にアクセスログは出力できないですね。
では、もう一度ALBにアクセスしてみます。
ちょっと見えづらいですが、17:04にアクセスしました。
というわけで、アクセスはここまでにして、S3バケットを見に行きます。
ちゃんと出力されていますね。
ということは、アウトバウンドルールに関係なくS3に出力できるということでしょうか。
今度は、このログをダウンロードして中身を確認したいと思います。
http 2022-05-21T08:01:01.958191Z app/以下略
http 2022-05-21T08:03:14.303771Z app/以下略
http 2022-05-21T08:04:08.308663Z app/以下略
ちゃんと17:04のアクセスも記録されていました。
(真ん中の通信は知らないところからでした、怖)
というわけで、
ALBにアタッチするセキュリティグループのアウトバウンドルールには、S3への通信経路を用意しなくてもログが出力できることがわかりました。
どのようにして通信しているのか、というところまではわかりませんでしたが、
このあたりはパブリッククラウドなので”よしなに”やってくれていると思うしかなさそうです。
ここまで読んでいただき、ありがとうございました!
AWS学習におすすめの書籍
AWSについて、しっかりと基礎から学びたい、実践的なスキルを身につけたいと考えている方向けに、おすすめの書籍を紹介します。
これらの書籍は、実際にAWSエンジニアとして働く僕が参考にしている書籍です。
AWSエンジニア入門講座――学習ロードマップで体系的に学ぶ
AWSを使いこなすための前提となるITインフラの知識が足りない初学者にとって、どこからどのように学べばよいのかがわかりづらくなっています。そこで本書では、AWS学習サイト運営YouTuberである監修者自身が実サービスの導入で習得しながら体系化した「学習ロードマップ」に沿って、AWSのサービスとIT技術をやさしく解説していきます。
著者が作成した学習ロードマップに沿って、AWSやインフラストラクチャを体系的に学ぶことができます。
付属のロードマップの完成度が高く、学習に迷ったときや復習にも使えます。
これからAWSエンジニアを目指す方や、インフラストラクチャを基礎から学びたい方におすすめです。
Amazon Web Services 業務システム設計・移行ガイド
オンプレミス上に構築された業務システムをAWS上に移行するための「サービスの選定」「ネットワーク設計・構築」「サーバとデータの移し方」「運用・監視体制の構築」など。これまで多くの企業にAWSを導入し、コンサルティングフェーズから実際の設計・開発、運用フェーズまでの全行程に携わってきた著者陣のノウハウを凝縮して、一般的な企業にAWSを導入する際のベストプラクティスをお届けします。
実務を想定した様々なユースケースとそれに対するベストプラクティスを、設計構築から運用まで幅広くカバーして紹介しています。
タイトルからは移行に焦点を当てたように見えますが、僕としては移行に限らずエンタープライズとしてAWSを利用する上で知っておくべきことが記されていると思います。
より実践的な知識やノウハウを身に着けたい方、初学者から一皮むけたい方におすすめです。