ConoHaの管理画面でクレジットカードの情報正しく入力しても使用期間の延長ができなかったのでLightsailに移行しました;o;
とりあえずインスタンス作成
LightsailについてCentOS8も選べるみたいですがAWSなのでAmazonLinux2を使うことにしました。
色々とインストールするのでOSのみのインストールとしました。
移行元とCPU性能が似てると思われる5$のプランを選択しました。
![]() | ![]() |
![]() | ![]() |
インスタンス作成後、以下の作業を実施
- キーペア作成
- 固定IPを作成&インスタンスにアタッチ
- ネットワーキングでHTTPSのアクセス許可設定を作成
移行元と移行先の比較情報
移行元(ConoHa VPS) | 移行先(AWS Lightsail) | |
プラン | メモリ 1GB/CPU 2Core | メモリ 1GB/1 vCPU |
ディスク | SSD 100G | SSD 40GB |
料金 | 月946円(3か月の契約) | 月 5$~ |
PHP8.0インストール
# amazon-linux-extras enable php8.0 # yum clean metadata # yum install php php-cli php-devel php-fpm php-gd php-intl php-mbstring php-mysqlnd php-pdo php-pear php-pecl-zip php-xml php-opcache # cp /etc/php.ini /etc/php.ini.20211225 # vi /etc/php.ini # diff /etc/php.ini /etc/php.ini.20211225 374c374 < expose_php = Off --- > expose_php = On 672c672 < post_max_size = 16M --- > post_max_size = 8M 825c825 < upload_max_filesize = 14M --- > upload_max_filesize = 2M 902c902 < date.timezone = "Asia/Tokyo" --- > ;date.timezone = # cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.20211225 # vi /etc/php-fpm.d/www.conf # diff /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.20211225 24c24 < user = nginx --- > user = apache 26c26 < group = nginx --- > group = apache 38c38 < listen = /var/run/php-fpm/php-fpm.sock --- > listen = /run/php-fpm/www.sock 48,50c48,50 < listen.owner = nginx < listen.group = nginx < listen.mode = 0660 --- > ;listen.owner = nobody > ;listen.group = nobody > ;listen.mode = 0660 55c55 < ;listen.acl_users = apache,nginx --- > listen.acl_users = apache,nginx 381c381 < security.limit_extensions = .php .html --- > ;security.limit_extensions = .php .php3 .php4 .php5 .php7
composerインストール
# cd /usr/local/bin # wget https://getcomposer.org/installer -O composer-installer.php # php composer-installer.php --filename=composer --install-dir=/usr/local/bin # rm composer-installer.php # ln -s /usr/local/bin/composer /usr/bin/composer # composer --version Continue as root/super user [yes]? Composer version 2.2.1 2021-12-22 22:21:31
rootで実行できるようにするのはあまり良くなさそうです。。
nginxインストール
ソースからのインストールなので前回のConoHa環境構築の際の手順をコピペで行けました。
# cd /usr/local/src # wget https://nginx.org/download/nginx-1.21.3.tar.gz # tar -zxvf nginx-1.21.3.tar.gz # wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz # tar -xvzf ngx_cache_purge-2.3.tar.gz # wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz # tar zxvf openssl-1.1.1l.tar.gz # yum install pcre-devel zlib-devel # ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-openssl=../openssl-1.1.1l/ --with-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pipe' --add-module=/usr/local/src/ngx_cache_purge-2.3 # make && make install # nginx -v nginx version: nginx/1.21.3 # openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
設定ファイルも移行元のファイルをローカル経由でコピーしました。
起動スクリプトなんかも以前と同様に作成。→以前の記事
MySQL8インストール
# yum remove mariadb-libs # yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm # yum-config-manager --enable mysql80-community # yum install mysql-community-server # mysql --version mysql Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL) # cp /etc/my.cnf /etc/my.cnf.20211225 # vi /etc/my.cnf # diff /etc/my.cnf /etc/my.cnf.20211225 25,27c25 < default-authentication-plugin=mysql_native_password < character-set-server=utf8mb4 < collation-server=utf8mb4_bin --- > # default-authentication-plugin=mysql_native_password 34,36d31 < < [client] < loose-default-character-set=utf8mb4 # systemctl enable mysqld.service # systemctl start mysqld.service # cat /var/log/mysqld.log | grep root 2021-12-25T04:43:19.711898Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: @@@@@@@@@@@@ # mysql -u root -p@@@@@@@@@@@@ > ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword@@@@@';
初回のrootパスワードはmysqld.logに書いてある。
ログインしたらALTERで書き換える必要がある。
移行元のデータベースとMySQLユーザーの移行については、以前作成した記事と同じような作業を行いました。→以前の記事
スワップ領域を作成
後述するruby関連の環境構築の際、メモリ不足のエラーが出てしまったためスワップ領域の作成を行いました。
以下の記事を参考にさせていただきました。

# dd if=/dev/zero of=/var/swapvaol bs=1M count=4096 # chmod 0600 /var/swapvaol # mkswap /var/swapvaol # swapon /var/swapvaol # vi /etc/fstab +/var/swapvaol swap swap defaults 0 0
rbenv、ruby、bundlerインストール
ここも前回の手順通りだったと思います。
# cd /usr/local # git clone git://github.com/sstephenson/rbenv.git rbenv # git clone git://github.com/sstephenson/ruby-build.git rbenv/plugins/ruby-build # vi /etc/profile.d/rbenv.sh # cat /etc/profile.d/rbenv.sh export RBENV_ROOT="/usr/local/rbenv" export PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init --no-rehash -)" # yum install bzip2 gcc openssl-devel readline-devel zlib-devel # rbenv --version rbenv 1.2.0-6-g304cb7b ↓以下のコマンドがスワップ領域なしでこけた # rbenv install 2.6.0 # rbenv versions 2.6.0 # rbenv global 2.6.0 # rbenv versions * 2.6.0 (set by /usr/local/rbenv/version) # ruby -v ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux] # rbenv exec gem install bundler # bundle --version Bundler version 2.3.3
nvm、Node.js、npmインストール
# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # source ~/.bash_profile # nvm install 10.16.0 # node -v v10.16.0 # which node /root/.nvm/versions/node/v10.16.0/bin/node # npm -v 6.9.0 # which npm /root/.nvm/versions/node/v10.16.0/bin/npm # npm install -g npm@8.1.1
npm管理してるプロジェクトでnpm installがこけて、最終的にnpmを6.9.0→8.1.1に更新することで解決しました。謎。
Python3製のツールを動かす環境構築
Python3自体は3.7がデフォルトでインストール済みなのでそのまま利用。
AmazonLinux2でvenv以下にuwsgiをインストールするのに以下の記事を参考にしました。

# yum install python3-pip python3-devel python3-tkinter # yum groupinstall "Development Tools" # venv/bin/pip install uwsgi
また、自作のツール内でffmpegが必要なので以下の手順を参考にインストールしました。

# cd /usr/local/bin # mkdir ffmpeg # cd ffmpeg # wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz # tar -xf ffmpeg-release-amd64-static.tar.xz # ln -s /usr/local/bin/ffmpeg/ffmpeg-4.4.1-amd64-static/ffmpeg /usr/bin/ffmpeg
wkhtmltopdfインストール
# cd /usr/local/bin # wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.amazonlinux2.x86_64.rpm # yum install ./wkhtmltox-0.12.6-1.amazonlinux2.x86_64.rpm # ln -s /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf # ln -s /usr/local/bin/wkhtmltoimage /usr/bin/wkhtmltoimage # wkhtmltopdf --version wkhtmltopdf 0.12.6 (with patched qt)
どこで使用しているのかわかっていない(^q^
IPAフォントインストール
# unzip IPAexfont00401.zip # unzip sakura-vps-fonts.zip # mv IPAexfont00401 /usr/share/fonts/ # mv sakura-vps-fonts /usr/share/fonts/ # fc-cache -fv
sakura-vps-fonts.zipはさくらVPSの環境で使用していたフォントの一式です。
certbotインストール、ワイルドカード証明書発行
AmazonLinux2にsnapdをインストールする手順について以下の記事を参考にさせていただきました。

# cd /etc/yum.repos.d/ # wget https://people.canonical.com/~mvo/snapd/amazon-linux2/snapd-amzn2.repo # vi /etc/yum.conf [main] +exclude=snapd-*.el7 snap-*.el7 # yum install snapd # systemctl enable --now snapd.socket # ln -s /var/lib/snapd/snap /snap # snap refresh core # snap install --classic certbot # ln -s /snap/bin/certbot /usr/bin/certbot # certbot certonly --manual --preferred-challenges dns-01 --agree-tos -d imo-tikuwa.com -d *.imo-tikuwa.com -m [メールアドレス] --server https://acme-v02.api.letsencrypt.org/directory
証明書の発行コマンドでは前回同様TXTレコードを2回追加する作業が必要でした。
まとめ
前回の移行作業(さくらVPS→ConoHa)から日が経ってないのもあり、2~3時間くらいで作業を終えられました。
月の使用料が前より少し安くなりそうなのと、インスタンスの使用料が3か月間無料なのがうれしい。
その他、記事内には書いてないですがインスタンスの日本語化設定だとかUTC→JSTの設定とかも行っています。