【小ネタ】ECSタスク定義の設定で、マウントポイントのコンテナパスの細かい挙動を確認してみた

2023.01.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

今回のテーマ

こんにちは、AWS事業本部コンサルティング部のこーへいです。

今回のテーマは「マウントポイントのコンテナパスの細かい挙動の紹介」です。

この記事で何がわかるか

  1. コンテナに配置しているファイルが、EFSのマウントによりアクセス出来なくなる挙動について
  2. コンテナパスに設定したディレクトリがコンテナに存在しない場合、不足しているディレクトリが自動生成される挙動について

コンテナに配置しているファイルが、EFSのマウントによりアクセス出来なくなる挙動について

分かりやすいように具体例で説明します。

コンテナ内に直接配置しているindex.htmlファイルの絶対パスを「/usr/local/apache2/htdocs/index.html」とします。

そして、EFSのルートディレクトリ配下にindex-2.htmlファイルを配置した状態で、マウントポイントのコンテナパスを「/usr/local/apache2/htdocs」と設定します。

すると「/usr/local/apache2/htdocs/」配下に格納されているファイルはindex-2.htmlのみで、元々格納していたindex.htmlファイルはアクセス出来なくなってしまいます
※マウントを解除すると再びアクセスできるようになる

コンテナパスに設定したディレクトリがコンテナに存在しない場合、不足しているディレクトリが自動生成される挙動について

こちらも分かりやすいように具体例で説明します。

先ほどと同様、コンテナ内に直接配置しているindex.htmlファイルの絶対パスを「/usr/local/apache2/htdocs/index.html」とし、EFSのルートディレクトリ配下にindex-2.htmlファイルを配置しておきます。

そして「/usr/local/apache2/htdocs/」配下にtestディレクトリがない状態にて、マウントポイントのコンテナパスに「/usr/local/apache2/htdocs/test」と設定します。

するとコンテナ内では、「/usr/local/apache2/htdocs/」配下にtestディレクトリが自動生成され、「index.html」と「index-2.html」が以下のパスに存在する状態になります。

  • /usr/local/apache2/htdocs/index.html
  • /usr/local/apache2/htdocs/test/index-2.html

結論

今回の記事は細かい挙動の紹介でしたが、こちらの記事で少しでも調査時間の短縮に繋がれば幸いです。