ConoHa VPSをセットアップ!
これは何
これは個人的メモ。手順は結構グダグダ
契約
サービスとイメージタイプ
今回は、VPSのUbuntu 22.04を選択した。
料金タイプとプラン
最近サービスリニューアルがあり、「VPS割引きっぷ」の代わりに「まとめトク」が登場している。サーバーの割り当てを後から変更できなくなったっぽい。
以前からConoHaを利用している人は、バージョン2に切り替えると以前のシステムで契約ができそう (未検証)
参考: 【リリース】[VPS]サービスリニューアルのお知らせ|VPSならConoHa
rootパスワードとネームタグ
いい感じに設定
オプション
SSH Keyだけ設定した。「キーを新規作成」を選択すると秘密鍵がダウンロードできる
決済!
「構築中」のまま待っていても変わらず、ページをリロードしたらステータスが「起動中」になっていた。
発行されたIPアドレスをコピーしておく
SSH設定 (やめた)
Host conoha-peach
HostName 000.000.000.000 # コピーしたIPアドレス
User root
port 22
IdentityFile ~/.ssh/key-peach.pem # ダウンロードした秘密鍵ファイル
せっかく鍵を生成したけど、うまく接続できなかったので断念
ssh: connect to host 000.000.000.000 port 22: Operation timed out
そもそもrootユーザーでログインできないようにしよう
サーバーのネットワーク設定 > セキュリティグループが default
だけだと完全に遮断される様子。
用意されているSSH用のセキュリティグループを追加すると22番ポートに接続できる
ユーザー追加
ConoHaのウェブ上のコンソールから root
ユーザーでログイン。
続いて、一般ユーザーのUSER_NAME
さんを追加する。
adduser USER_NAME
gpasswd -a USER_NAME sudo
一旦ログアウトして、ユーザーを切り替え変更
logout
セットアップ
# パッケージ更新
sudo apt update
sudo apt upgrade -y
途中で以下の質問が表示された。 どうやらcloud-initという、LinuxのOSの初期設定を自動化するツールらしい。デフォルト選択肢の現状維持を選択した。
参考
Enter で進めた。一旦再起動する
reboot
シリアルコンソールに切り替えてみた。好きな壁紙を選べるみたい。コピペも楽にできて良さそう。
いろんな設定
時刻
タイムゾーンは既に Asia/Tokyo
。
時刻同期をするNTP sercviceがn/a
になっている。
$ timedatectl status
Local time: Mon 2023-12-11 16:34:02 JST
Universal time: Mon 2023-12-11 07:34:02 UTC
RTC time: Mon 2023-12-11 07:34:02
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: n/a
RTC in local TZ: no
しかし、以下のコマンドで時刻同期のプロセスが動いていることがわかった。
# ntpdが動いているか探す
$ ps aux | grep ntpd
# ntpのサービスが動いていることを確認
$ sudo systemctl status ntp
ホスト名
sudo hostnamectl set-hostname peach
ssh関連
ssh公開鍵認証
ローカルで生成して転送
ssh-keygen -t ED25519 -C [メールアドレス] -f ~/.ssh/id_ed25519_peach
scp ~/.ssh/id_ed25519_peach.pub conoha-peach:~/.ssh
間違えてrootユーザーに送ったので作成したユーザーの方に移動して設置し直した
- PermitRootLogin yes
+ PermitRootLogin no
- PasswordAuthentication yes
+ PasswordAuthentication no
設定を保存し ssh conoha-peach
で接続できるようにしておく
Host conoha-peach
HostName [IPアドレス]
User [ユーザー名]
Port 22
IdentityFile ~/.ssh/id_ed25519_peach
ポート変更
SSH使用ポートを変更
- #Port 22
+ Port 3456
ファイアウォール設定で、22番ポートを閉鎖(OpenSSH
を削除)して3456ポートを開放。
$ sudo ufw status # 設定確認
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
$ sudo ufw allow 3456/tcp # 3456追加
Rule added
Rule added (v6)
$ sudo ufw delete allow OpenSSH # デフォルト設定を削除
Rule deleted
Rule deleted (v6)
$ sudo ufw status # 設定反映を確認
Status: active
To Action From
-- ------ ----
3456/tcp ALLOW Anywhere
3456/tcp (v6) ALLOW Anywhere (v6)
$ sudo systemctl restart sshd # sshdを再起動
ローカルのssh設定を更新
Host conoha-peach
HostName [IPアドレス]
User [ユーザー名]
- Port 22
+ Port 3456
IdentityFile ~/.ssh/id_ed25519_peach
ConoHaのセキュリティグループを変更。カスタムのセキュリティグループを作成して、VPSに適用。
nginx
インストール
sudo apt update
sudo apt install nginx
ポート開放 (ufw)
sudo ufw allow 'Nginx FULL'
Nginx FULL
は80(HTTP)と443(HTTPS)の両方の指定。設定可能な値はsudo ufw app list
, sudo ufw app info [プロファイル名]
で確認できる。
ポート開放 (ConoHa)
セキュリティグループ設定を更新し、80と443を追加 (または、用意されているIPv4v6-Web
を追加)
参考
rtx
rtxは、asdfとかanyenvのようなランタイムバージョンマネージャ
あとで、Node.jsを使うために入れておく
ここは公式の手順でインストール。
wget -qO - https://rtx.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/rtx-archive-keyring.gpg 1> /dev/null
echo "deb [signed-by=/etc/apt/keyrings/rtx-archive-keyring.gpg arch=amd64] https://rtx.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/rtx.list
sudo apt update
sudo apt install -y rtx
MySQL
sudo apt install mysql-server