以前、職場から自宅のAirMac Extremeに繋いだディスクに接続できなかったのだが、いつの間にか繋がるようになっていた。その設定等を控えておく。
AirMacユーティリティ(英語版だとAirPort Utility)でディスクを接続しているAirMacを開いて、Disksのパネルでファイル共有をオンにする。ここでは、LaCieの外付けハードディスクをUSB接続しているので、LaCieと名付けている。
どこでもMyMac(英語だとBack to My Mac)は使わない(設定しない)。
これだけでいいはず。
繋ぐときは、Finderでサーバへ接続を選んで、サーバの登録をする。ServerAddressにafp://xxx.xxx.xxx.xxx/LaCieと入力して、Connectボタンを押すだけ。iPadから繋ぐときは、afpに対応しているアプリ、例えばGoodReaderを使えば簡単にできる。
Ubuntuから繋ぐこともできる。まず、afpfs-ng, afpfs-ng-utils, libafpclient0をインストール。ホームディレクトリに、MyMacというディレクトリを作成。そして以下のようにマウントすればいい。
$ mount_afp afp://username:password@xxx.xxx.xxx.xxx/LaCie ~/MyMac Mounting xxx.xxx.xxx.xxx from LaCie on /home/xxxxx/MyMac Mounting of volume LaCie of server AirMac00 succeeded.といった具合で、接続完了。意外に簡単である。
いや、これは便利である。EC2のWebDAV要らなかったじゃないかといいいたくなるほどである。
今度は、WebDAVである。一つあったら何かと便利ではないかと思って……
まず、libapache2-mod-encodingをインストール。多分、日本語名などに対応できるようにするため。
sudo apt-get install libapache2-mod-encoding次に、webDAV用のディレクトリを作る。目的の場所で、こんなふうに。今回は追加で作ったEBSで。
$ sudo mkdir webdav $ sudo chown www-data:www-data webdav $ sudo chmod 770 webdav/etc/apache2/conf.dにあるwebdav.confに、次のように書く。
Alias /dav /mnt/vol/dav <Location /dav> DAV On AuthUserFile "/etc/xxxx/.htpasswd" AuthName "WebDav Server" AuthType Basic Require valid-user </Location>そして、/etc/apache2/mods-available/にencoding.confという名のファイルを作成し、以下を記述。
<IfModule mod_encoding.c> EncodingEngine on NormalizeUsername on SetServerEncoding UTF-8 DefaultClientEncoding JA-AUTO-SJIS-MS SJIS AddClientEncoding "cadaver/" EUC-JP </IfModule>ここで、WebDAV関連のアプリケーションを動かす。
$ sudo a2enmod dav Enabling module dav. To activate the new configuration, you need to run: service apache2 restart $ sudo a2enmod dav_fs Considering dependency dav for dav_fs: Module dav already enabled Enabling module dav_fs. To activate the new configuration, you need to run: service apache2 restart $ sudo a2enmod encoding Enabling module encoding. To activate the new configuration, you need to run: service apache2 restart何度も、service apache2 restartが必要と言われるけれども、まだしない。最後に、パスワードを作る。
$ sudo htpasswd -c .htpasswd xxxxx New password: Re-type new password: Adding password for user xxxxxこれで、ようやく
$ sudo service apache2 restartこれでアクセスできるようになっているはず。次は、利用する方(クライアント)である。MacOSXの場合は、Finderから「サーバに接続」を選んで、http://xxx.xxx.xxx.xxx/dav と入力してEnterキーを叩くだけ。ユーザ名とパスワードを入れるように要求されるので上で設定したものを入力すればいい。簡単である。
次は、Ubuntu 13.04で使えるように設定した。まず、davfs2をインストール。
$ sudo apt-get install davfs2一般ユーザがマウントできるように、
$ sudo chmod u+s /usr/sbin/mount.davfs自分をdsvfs2グループに追加する
$ sudo gpasswd -a xxxx davfs2 Adding user xxxx to group davfs2次にdavfs2の設定ファイルを置くために、ホームディレクトリに.davfs2というフォルダを作る。そして、その中に、davfs2.confというファイルを置いて、
use_locks 0 server_charset UTF-8と書く。さらに、同じ場所にsecretsというファイルを作って、
http://xxx.xxx.xxx.xxx/dav xxxxx passwrdと書き込み、このファイルの権限を600にする。そして、マウントするディレクトリを作る。私はホームディレクトリにMyDAVというフォルダを作った。 /etc/fstabを編集。
http://xxx.xxx.xxx.xxx/dav /home/xxxxx/MyDAV davfs user,noauto 0 0これで、
mount ~/MyDAVとするとマウントできる。二回目以降は、ウィンドウの左側の一覧Devicesにあるアイコンをクリックするだけで繋がる。 アンマウントはumount ~/MyDAVでいいはず。
正確に云えば、このインスタンスもEBSベースなので、そもそも全部EBSなのだが、別のEBSに移すということである。ここでは、/mnt/volとしてマウントした別のEBSにMySQLのデータ・ディレクトリを移すことを考える。データのみである。Logとか、設定とかはそのままである。
話は簡単で、/var/lib/mysqlを/mnt/vol/mysqlに移せばよい。所有権の設定なども変えないために、cp -a か何かでコピーする。そして、/etc/mysql/my.cnのデータの場所を書き換える。
datadir = /var/lib/mysql ↓ datadir = /mnt/vol/mysqlとして、sudo service mysql restartとするだけでいいはず。ところが、エラーが出てしまう。/var/log/mysql/error.log を見てみると、ibdata1に対する権限がないという。どういうことだ? どうやら、設定を書き換えるのがmy.cnfだけでは足りないらしい。/etc/apparmor.d/usr.sbin.mysqld も書き換えなくてはならないのだ。
/var/lib/mysql/ r, /var/lib/mysql/** rwk, ↓ /mnt/vol/mysql/ r, /mnt/vol/mysql/** rwk,とするのだ。そして、sudo service mysql start としてやれば、正常に動き出す。まあ、少なくとも私の場合は。やれやれ。
この貴重な情報は、Twiwt:Blog 「EC2 で MySQL のデータの保存先を EBS ボリューム(/mnt)に変更する」で知った。
忘れていた。すっかり忘れていた。Apacheがちゃんと動いていても、80ポートが開いていなければ外からアクセスできない。当然のことながら。
EC2のSecurity Groupsのパネルを開いて、Create a new ruleのところでhttpを選んで、そうすると自動的にPort range欄に80が入るから、そのままAddRuleをクリックし、続けてApply Rule Changesを押せばよい。
これでようやく"It works!"が表示された。やれやれ。
暑くなってきたので自宅サーバをAmazon EC2に引っ越すことにした。久しぶりなので何もかも忘れている。
まず、EC2 consoleのサイトにログインして、インスタンスを起動させる地域を選ぶ。今回は、US Eastにする。特に理由はない(本当はあるけど、秘密)。新規インスタンス作成を選んで、Quick Launch Wizardで進める。Key Pairは既存のものを選ぶ。"Choose a Launch Configureation:"というところで、Ubuntu Server 13.04 (64 bit) を選んだ。Typeはt1.micro。他は特に何か選ぶこともなくLaunchを押すと起動。
インスタンス一覧に今回起動したもののPublic DNSが表示されているので、Termnal から、ssh -i keypair.pem ubuntu@ec2-000-000-000-000.compute-1.amazonaws.com というような感じでログインできることを確認。
そして、$ df -h と打つと、
Filesystem Size Used Avail Use% Mounted on /dev/xvda1 8.0G 1.1G 6.9G 14% / udev 286M 8.0K 286M 1% /dev tmpfs 59M 180K 59M 1% /runというような情報が表示される。/dev/xvda1がroot deviceとなっている。
次に、EBSを作る。今作ったroot deviceがあるのと同じZoneで作成。30 GBまで無料期間があるから、それ以下にしろって書いてあったので30 GBで新規作成したが、これはさっきの8 GBと合わせたら越えてしまうのではないか。よく判らないが30 GBで作ってしまった。作っただけでは、まだ使えない。これは、コンソールのEBSのパネルで作ったEBSを右クリックでAttach Volumeを選んで、device nameを/dev/sdfを選んで連結させる。しばらくattachingのままで待たされる。表示がattachedになっても、/dev/sdfにディスクが見当たらない。/dev/xvdvにあるのだ。まずはフォーマット:
sudo mkfs.ext4 /dev/xvdfこのVolumeは/mnt/mydiskにマウントしようと思うので、
sudo e2label /dev/xvdf /mnt/mydiskとし、次に、/etc/fstabに、
LABEL=/mnt/mydisk /mnt/mydisk ext4 defaultsと書いて、sudo mount -aとやって、fstabの設定でマウントするように指示。再び、df -h で、
/dev/xvdf 30G 44M 28G 1% /mnt/mydiskとなっていることも確認。今日はここまで。