AWSのEC2(Ubuntu 16.04 LTS)に,S3をマウントする手順をメモしておく.前提として,EC2インスタンスに対して,SSH接続済みとする.

環境

  • Ubuntu Server 16.04 LTS (HVM), SSD Volume Type

手順

S3 bucketを準備する

マウントしたいEC2インスタンスと同じリージョンを選択すること.

IAMロールの準備

  • 信頼関係:
    • ロールを利用するサービス:EC2
    • ユースケースの選択:EC2
  • アクセス権限
    • ポリシー名:AmazonS3FullAccess

作成したロールをEC2インスタンスに割り当てる.

s3fs-fuseのインストール

以下のコマンドでS3をマウントできる.

なお,uidgidid ubuntuで確認した値を設定すること.

マウントの自動化

ここで結構ハマった.rc.localで設定する方法で実現したかったが,どうしてもうまくいかなかったので,.bashrcで設定した.参考のため,以下に試行錯誤の記録を残す.

EC2インスタンスにS3をマウントする - Qiitaを参考に,/etc/rc.localに以下を追記した.

Ubuntu 16.04だと,上記の方法では起動時に実行されないようだ.Ubuntu16.04でスクリプトを起動時に自動実行する - Qiitaを参考にサービスファイルを作成したが,何故かうまく動作しなかった.

After upgrade to 16.04 LTS rc.local is not executing a command - StackExchangeを参考に,以下のように変更してみた.

そして,/etc/rc.localの一行目を#!/bin/sh -eから#!/bin/bashに変更する.上記でもうまくいかないので,~/.bashrcに以下を追記した.

うまくいった.bashを起動するたびにマウントされちゃうので,あまり良くない気がする.

参考