LoginSignup
1
3

More than 3 years have passed since last update.

AWS EC2になぜかS3のマウントができない(/xxx/xxx にアクセスできません)

Last updated at Posted at 2019-12-05

はじめに

  • これは自分が実務で大いにハマった事象です。。。
  • AWSを商用利用したのは初めてということもあり、初歩的なミスかもしれませんが、もしかしたら他にも苦しんでいる方がいるかもしれないので、ノウハウをシェアします。

事象

  • 東京リージョンに作成したEC2を作成。
  • データ領域として、S3をマウントしようと試みた。
  • s3fsコマンドを導入し、マウントを行ったところ、一見うまく実行できたように見える。
    • echo $?による戻り値は0
  • ところがlsコマンドdfコマンドで状況を確認しようとすると、以下のエラーが出力される。
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ ls -al /xxx/xxx
ls: reading directory /xxx/xxx: 入力/出力エラーです
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ df -k
df: /xxx/xxx にアクセスできません: Transport endpoint is not connected
・・・中略・・・
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo tail -3 /var/log/messages
Jan 15 17:54:02 ip-xxx-xxx-xxx-xxx dhclient[1355]: bound to xxx-xxx-xxx-xxx -- renewal in 1693 seconds.
Jan 15 17:59:31 ip-xxx-xxx-xxx-xxx s3fs: init $Rev: 367 $
Jan 15 17:59:35 ip-xxx-xxx-xxx-xxx s3fs: init $Rev: 367 $
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$
  • df: /xxx/xxx にアクセスできません: Transport endpoint is not connectedというメッセージでWeb検索しても、EC2にS3の許可をしているか?やバケット名は合っているか?という対処法が出てくる。
  • 上記を再作成したり、何度も確認を行ったが、設定には問題がなさそう。

原因

  • EC2の時間が所属するリージョンの時間と異なった、もしくは大幅に時間がずれていたことで本事象が発生。
    • s3fsのデバッグ出力をする中でようやく発見しました

対処方法

  • EC2のタイムゾーンをJapanにすることで解決。
[root@ip-xxx-xxx-xxx-xxx ~]# cat /etc/sysconfig/clock
ZONE="UTC"
UTC=true
[root@ip-xxx-xxx-xxx-xxx ~]# view /etc/sysconfig/clock
[root@ip-xxx-xxx-xxx-xxx ~]# cat /etc/sysconfig/clock
ZONE="Japan"
UTC=true
[root@ip-xxx-xxx-xxx-xxx ~]# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
[root@ip-xxx-xxx-xxx-xxx ~]# reboot
  • reboot終了後、s3fsコマンドでマウントを改めて実行したところ、問題なくS3がマウントされることを確認。
1
3
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
1
3