AWSからさくらのVPSへ移行と構築手順

  • 2022.10.18
  • web
AWSからさくらのVPSへ移行と構築手順

ポートフォリオを運用するサーバーにAWSを使っているのですが、個人で運用するには割高だし、本格的にサービス運用しているわけではないのでAWSだとオーバースペックだなあと感じました。今の要件だとアクセス数の少ないAPIを一つ動かせれば良い程度なんです。

そこで、昔使っていたさくらインターネットさんのVPSにポートフォリオのサーバーを移行することにしました。

契約プランを選ぶ

では、さくらのVPSトップページから契約プランを選ぶとしましょう。

https://vps.sakura.ad.jp/

 

基本的に最初は低額プランで契約して、足りなくなったら高いプランにすれば良いと思いますが、1番安い512MBプランだと心配。

CPU1Coreでメモリ512って、簡単なバッチを動かしたり、サーバー構築の練習に使うには良いかもしれないですが、ポートフォリオ動かすには少し不安になるスペック。もう一つ上の1GBプランだと、どのリージョンのサーバーを契約しても値段がせいぜい300円程度しか変わらず、CPU2コアで、メモリ1GBなのでこっちにすることにします。

契約するサーバーの場所を選択することになりますが、私は関東をメインに活動しており、関東の人にポートフォリオを見てもらいたいので東京のサーバーを契約することにします。情報の伝送スピードの事を考えると、アクセスするサーバーの距離は近い方が良いと思いますしね。

ただ、他のブログで速度検証している記事を見ると、意外と石狩が速い(内部のハードスペックの問題?)とかいう情報も出てくるので、リージョンごとの伝送速度はあまり気にする必要ないのかも。

1GBプランを選んで次へ進みます。

こんな画面昔あったっけ?契約時に自動でOSインストール出来るの楽だな。

出来るだけ慣れたOSを選びたいので、私はCentOSでいきます。

CentOSをよく使っていたのは、確か6か7あたりの時代だったな。

ぶっちゃけサーバーなので安定した少し古いバージョンの方が安心なのですが、休みの日に趣味で作っているので、遊び心ないとつまらないし最新版を使っちゃおう。というわけで、Stream 9とやらを使ってみます。

 

2週間無料のお試しは絶対利用する。使ってみてスペックに不満があった場合は、上のプランに変更出来るし。

支払いを完了したらサービスが開始されるまで少し待ちます。

 

サーバー構築

支払いを完了してしばらく経つとサーバー一覧に契約したサーバーが表示されるので、選択して、サーバーを起動します。

その後は、コンソールから以下のコマンドでssh接続して構築を始めます。

ssh -l admin_name(管理者ユーザー名) xxx.xxx.xx.xx(IPアドレス)

ちなみに構築でよくわからないことがあったら、私はよくServer Worldさんの記事を昔から参考にしています。OSのバージョンごとに設定方法がまとまっていてめちゃくちゃ助かります。

https://www.server-world.info/

yumをアップグレードする

パッケージ管理ソフトをアップデートし、ソフトをインストールする前にインストール対象のリストを更新しておきます。

sudo yum update

vimインストール

とりあえず設定ファイルいじるにもvimが欲しいタイプなので、真っ先にインストール。

sudo yum install vim

ファイヤーウォールとSELinux設定

#ファイヤーウォールの現在の状態確認
# Active: inactive (dead)と表示されていたら停止しているので起動させる
service firewalld status

# ファイヤーウォール起動
sudo systemctl start firewalld

# ファイヤーウォール自動起動
sudo systemctl enable firewalld

# SELinuxの現在の状態確認
# Disabledと表示されたら停止しているので有効にする
getenforce

# 設定ファイルを開く
sudo vim /etc/sysconfig/selinux

# 設定ファイル内のSELINUXの設定値をenforcingにする
SELINUX=enforcing

# 設定反映
sudo grubby --update-kernel ALL --remove-args selinux

# 再起動
sudo reboot

ネットワーク設定

サーバーのホスト名を設定してあげましょう。

# ホスト名設定
sudo hostnamectl set-hostname ホスト名

# ホスト名確認
hostname

ssh鍵認証

# 鍵ペア作成
# 作成時に聞かれる質問は必要がなければ空エンターで進む
ssh-keygen

# 鍵移動
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

 

クライアントで証明書を設定する。

# 鍵を置くディレクトリを作成
mkdir ~/.ssh chmod 700 ~/.ssh

# 秘密鍵をクライアントに移動
scp ユーザー名@ホスト:/home/ユーザー名/.ssh/id_rsa ~/.ssh/id_rsa_sakura

クライアントに置いてある鍵が既にあり、今回が2回目以降だった場合

# configを変更する
sudo vim ~/.ssh/config

Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_git
  User git

# 今回の設定を追加
Host ホスト名
  HostName ホスト名
  IdentityFile ~/.ssh/id_rsa_vps
  User ユーザー名

# 接続確認
ssh ユーザー名@ホスト名

鍵認証でログイン出来たら、通常のパスワード認証を禁止しておきましょう。

sudo vim /etc/ssh/sshd_config

# 以下をnoに変更
PasswordAuthentication no

KbdInteractiveAuthentication no

# 再起動
sudo systemctl restart sshd

MySQLの設定

公式からダウンロードするrpmを見つける。

https://dev.mysql.com/downloads/repo/yum/

今回は以下

mysql80-community-release-el8-4.noarch.rpm

インストールする

# rpmパッケージ取得
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm

# インストール
sudo yum install mysql-community-server

起動する

# 自動起動にする
systemctl enable mysqld

# 起動する
systemctl start mysqld

# 初期パスワードを確認
# A temporary password is generated for root@localhost: (password) に書いてある
sudo head -n 5 /var/log/mysqld.log

# ログインする
mysql -u root -p

# 新しいパスワード設定
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

 

デフォルトだと外部からrootで接続出来ないので、接続用の管理者ユーザーを作ってあげましょう。

# ログイン
mysql -u root -p

# 接続用の管理者ユーザー
CREATE USER administrator IDENTIFIED BY 'password';

# 管理者ユーザーに権限を付与
GRANT ALL PRIVILEGES ON * . * TO administrator;

# 設定反映
FLUSH PRIVILEGES;

# MySQLのユーザー一覧表示で確認
select user, host from mysql.user;

 

Nginxインストール

 

# Nginxインストール
sudo yum install nginx

# nginxの起動設定
sudo systemctl start nginx

# nginxの自動起動設定
sudo systemctl enable --now nginx

# 外部からの接続許可
sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
sudo firewall-cmd --runtime-to-permanent

firewallを使いたいので、パケットフィルターを解除します。

 

 

 

 

一通り設定したところで今回は終わります。

 

 

webカテゴリの最新記事