Linux

カゴヤVPSで自分専用の開発環境を立ち上げてみた

更新日:

どこからでもアクセスできる自分専用の開発環境が欲しい…。

そんな願いを叶えるべく、VPSのことを調べていたのですが、いままで「なんか難しそう…」と尻込みしていました。しかし、最近は値段も安くて扱いやすいVPSも増えてきたので、この機会に試してみることにしました。

ということで、今回はVPSを契約して最低限の環境を立ち上げるまでの備忘録です。

VPSについて

VPSって何?

まずVPSについてですが、簡単に言えば「レンタルサーバーの上位互換」みたいなものです。

通常のレンタルサーバーだと、Web公開用のディレクトリやデータベースのみを提供され、システムの奥深くは触れません。一方、VPSではOS丸ごとに加え、root権限も貰えるので、その環境内での神様になれます。

その分、最初は最低限なOSが起動しているだけなので、セキュリティ面を含めすべて自己責任での環境構築+運用となります。システム周りを意識しなくて良いレンタルサーバーと比べると、上級者向けのサービスですね。

VPSについてもっと知りたい方は、以下のサイトがわかりやすいと思います。

カゴヤのVPSを契約してみた

数ある中でどこのVPSを契約しようか悩んだのですが、今回はカゴヤを選びました。

決めては値段と性能のバランスです。1日あたり約30円で、CPU3コア・メモリ1GB・ストレージ80GB(SSD)の環境が手に入ります。月額に換算しても1000円未満なので、お財布にも優しいのが嬉しいですね。性能も学習環境として使う分には十分です。

契約自体はWebでサクッとできます。契約して即環境を立ち上げられるので、面倒もなく楽ちんです。以下、実際の環境構築手順になります。

手順1:インスタンスを立ち上げる

最初に、自分専用の環境(=インスタンス)を立ち上げます。カゴヤの場合、用意されたスペックとOSの組み合わせでインスタンスを作成します。一番下に月額の料金が表示されるので、スペックとお値段のバランスを見ながら決めましょう。

ちなみに、私はCPU3コア+SSD、OSはCentOS7(64bit)を選びました。ホントはUbuntuが良かったのですが、さすがに14.04はバージョンが古すぎるので却下です(´・ω・)

また、インスタンスにSSHでアクセスするための「ログイン用認証キー」も一緒に作成します。作成と同時に認証キーをダウンロードできるので、大切にとっておきましょう。

手順2:インスタンスにSSH接続する

インスタンスを作成すると、コントロールパネルから起動することができます。

起動ができたらインスタンスに外部からアクセス可能になるので、適当なSSHクライアント(TeraTermとか)でインスタンスのIPアドレスに接続してみます。このとき、ユーザー名を「root」、認証方式を鍵認証にして、手順1で保存した認証キーを指定すればOKです。コンソールで接続する場合はこんなコマンドになります。

ssh root@<インスタンスのアドレス> -i <認証キーのパス>

うまく接続できれば、ひとまず自分だけの環境をゲットすることは成功です。あとはセキュリティまわりを中心に、実際の開発環境として使えるように整備していきます。

手順3:環境を整える

パッケージのアップデート

まずはデフォルトで入っているパッケージのアップデートです。以下のコマンドを叩けばOKです。

yum update

ユーザーの追加

この時点ではrootでログインしていますが、それだとセキュリティ的に不安なのでユーザーを追加します。まずは、ユーザー追加の前にsudoをインストールします。こうしておけば、追加したユーザーでもsudoで管理者権限付きのコマンドを実行できます。

yum install sudo

続いて、ユーザーを作成します。useraddでユーザーを追加した後、passwdでパスワードを設定しましょう。

useradd <ユーザー名>
passwd <ユーザー名>

SSHの設定変更

続いて、SSHの設定変更です。デフォルトだと22番ポート(SSHの標準的なポート)を使っているので、外からの攻撃の被害に遭いやすくなります。また、rootユーザーでのログインもできてしまうのでこれも良くありません。そこで、ポート番号を独自の番号に変更し、rootでのログインも禁止します。

具体的には、SSHの設定ファイル/etc/ssh/sshd_configの中で、最低限以下の2点を書き換えます。

#Port 22

Port <新しいポート番号>
#PermitRootLogin without-password

PermitRootLogin no

SSHのポート変更に合わせ、ファイアウォール(iptables)でも変更後のポート番号による通信を許可させます。これをしないと新しいポートでSSH接続ができなくなるので要注意です。

iptablesの定義ファイル/etc/sysconfig/iptablesを開き、元々ある22番ポートの定義を変更後のポート番号に書き換えます。

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport <変更後のポート番号> -j ACCEPT

もし設定ファイルが見つからない場合は、iptablesがサービス化されていない可能性もあるので、以下のコマンドでiptables-servicesを事前にインストールすればOKです。

yum install iptables-services

最後に、SSHとiptablesを再起動すればOKです。

systemctl restart iptables
systemctl restart sshd

以降、rootでのログインと22番ポートは使えないので、最初に作成したユーザーと変更後のポート番号でアクセスしましょう。

新しいユーザーで鍵認証の設定はしていないので、以降は普通のユーザー名とパスワードによる認証となります。セキュリティ的には鍵認証がベストですが、あとからでも設定できるので、とりあえず良しとします。

以上でVPSの最低限の環境構築はおしまいです。いざやってみるとそこまで難しくないという印象でした。これからも自分専用の環境として育てていく中で、ちょくちょく備忘録をまとめていきたいと思います。

ではでは

2019/8/14追記

当初はOpenVZでインスタンスを作っていたのですが、それだとswap領域が設定できないなど不便があったため、KVMのインスタンスに乗り換えました。うーん、ここらへんの違いがよく分からない…。

-Linux

Copyright© Corgi Lab. ~備忘録のための技術ブログ~ , 2019 All Rights Reserved.