EC2を使った経緯
ちゃんとしたバックアップが取りたくてさくらのVPSからの移行先として選んだ。
AWSBackupで全自動バックアップだ!
バージョンは最新の4.2を使う。
2要素認証もあるしな。
もともとは記事化する気はなかったが色々収穫があったので記事化。
ちなみに、データを持ち出すのが面倒なので、移行じゃなくて新規で立てた。
インスタンスタイプについて
以前さくらのVPSで立てた時はアイドル時で400MBくらいのメモリ消費量だったのでt2.nano
で良いかなと思ったが、500MBだと途中のビルド作業が無理だったので、t2.micro
にした。
t2.micro
ならサインアップしてから1年間無料だし、とりあえずこれで。
EC2側の手順は探せばたくさんあると思うので割愛。
固定IPとか色々やってコマンドラインで操作できるところまで持っていく。
手順
Ubuntu大好きマンなのでUbuntuで立てる。
下記ページを参考にさせていただいた。
つまづいたところと補足
メモリ不足
冒頭にも書いたが、t2.nanoの500MBではgemパッケージのインストールが無理だったのでt2.microにしてメモリ増やしたが、今度はPassengerのビルドが途中で止まる。
何かおかしいなと思ってhtop
で監視しながらビルドしてみると、それでもメモリが不足していることが分かった。
AWS標準イメージのUbuntuServerではSwapが無いので、下記手順で追加で1GB確保してやったらギリギリ通った。
ストレージのIOPSとかを気にする人は普通にメモリ増やしてください。
HTTPS化
certbotにApache用のプラグインがあるらしい。
適当にFQDNを/etc/apache2/sites-available/000-default.conf
のServerName
に突っ込んでsudo certbot --apache
とすると、証明書を引っ張ってきた後色々設定を書き換えてくれる。
cron組まなくても証明書の更新自動なのか。便利。
2022/1/26追記
9日前に「期限迫っててヤバいぞ」的なメールがとどくが、証明書の自動更新は期限の5日前に動く模様。
以下コマンドにて何時頃動くか確認できる。
sudo systemctl status certbot.timer
メール送信
せっかくEC2なので、無料枠のあるAmazonSESを使ってメール送信してみる。
Redmine側の設定手順は以下の参考にさせていただいた。
メール送信テストで554とかのエラーが出たらメールアドレスの認証エラーだ。
まず、SESでは悪用防止のために送信元メールアドレス(Redmineのメール送信設定画面で設定するやつ)の所有権を確認しないと送れない事になっている。
これはSESの管理コンソールでVerified identities
からメールアドレスを登録し、送られてきたメールのURLをクリックする必要がある。URLをクリックしないと利用可能なメールアドレスにならないので、受信できるアドレスを登録すること。
で、初期設定だと、悪用防止のために送信先メールアドレスも登録が必要である。
同様に登録しておくこと。
送信先メールアドレスについては、申請をすれば制限を解除できるがここでは触れない。
あとがき
ちょいちょい詰まったが、思ったよりはスムーズに立てられた気がする。
Let'sEncryptのやつは初めて知ったが、Apacheの設定ファイル編集が自動なのが超便利だった。
ポートの変更とかは前回の記事を参考にしてください。