LoginSignup
5

More than 5 years have passed since last update.

AWS ALBはWebDAVを通してくれるのか?

Posted at

長いので先に結論

結論を先に書くと、ALBはWebDAVを通してくれます。よかったですね。

素朴な疑問

AWSの新しいロードバランサ、Application Load Balancer(ALB)がリリースされました1
プロトコル面ではWebSocketやHTTP/2のサポートなどが目新しいところですけども、果たしてWebDAVは通るんだろうか?
と云うわけで調べてみたものの、意外にも類例が見つからなかったので試してみました。

やってみた

テスト構成

今回は以下の構成でテストを行いました。

構成図

セキュリティグループ、ターゲットグループ、ACM(SSL)の設定は割愛します。

EC2インスタンスの設定

下記構成のEC2インスタンスを2つ作成し、各サブネットに1つずつ配置しました。

EC2インスタンスのOSはAmazon Linux2を使用しました。
インストールしたパッケージはhttpd24のみです。
http24の設定ファイルには手を加えず、/etc/httpd/conf.d/webdav.confファイルを作成し下記内容を追加しています。

webdav.conf
DavLockDB /tmp/DavLock

Alias /dav/ /var/www/dav/

<Directory "/var/www/dav/">
    Dav on

    Options None
    AllowOverride None

    AuthType Basic
    AuthName WebDAVoverALBTest
    AuthUserFile /var/www/.htpasswd

    <RequireAll>
        Require valid-user
    </RequireAll>
</Directory>

WebDAVのローカルディレクトリは/var/www/dav/、HTTP上のディレクトリは/dav/になるよう設定しています。また/healthcheckでヘルスチェックできるようにしています。

ALBの設定

次にELBの作成に移ります。
まずはロードバランサタイプの選択から。もちろんここはALBを選びます。
ロードバランサタイプの選択

ロードバランサの設定は前述の構成通りに行います。
ステップ1

SSL証明書の設定。ここでは事前にACMで作成したものを使用しました。
ステップ2

セキュリティグループの設定。HTTPSが開いているだけのものを事前に作成してあります。
ステップ3

ルーティングの設定。
ステップ4

ターゲットの登録。EC2インスタンスは事前にターゲットグループへ登録済みです。
ステップ5

作成の確認。
ステップ6

ALBを作成しましたので、続いて「ルールの表示/編集」に移ります。
ロードバランサ一覧

ルールを追加し、/dev/fuga/へのアクセスは2つ目のターゲットグループへフォワードするよう設定します。
ルールの編集
ルール保存完了

手元の環境では、上記の設定でWebDAVの読み書きが2つのEC2インスタンスに振り分けられることを確認しました。

あとがき

今どきWebDAVを採用する機会は少ないでしょうし、ましてや同一ホスト名で複数サーバに振り分ける用途がどれだけあるかは分かりませんが、参考になれば幸いです。

注釈


  1. 「新しい」と云っても、すでに発表から10ヶ月(本稿執筆時点)経ちましたが‥‥‥ 

  2. 本稿執筆時点では2017.03 

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
5