ブログ用のサーバー、データバックアップ用のサーバー、勉強用のサーバーなど、個人用にちょっとしたサーバーを作る際、Google Cloud Platform(GCP)は、とても便利ですよね。
今回の記事では、Debian系Linuxサーバーを作った際に、必要になる共通的な初期設定について、紹介しています。
こんにちは!初子です。
この記事では、ときどき、わたしが、優しく解説しますので、初心者にもわかりやすくしています。
よろしくお願いします。
GCPサーバー初期設定の概要
Google Cloud Platformは、米国企業であるGoogle社が提供するサービスのため、この記事では、日本人の皆さんが使いやすいサーバー環境にする、最小限の設定方法を理解いただけるように設定方法を解説しています。
主な解説内容は、下記となります。
- sshで、仮想サーバーへのリモート接続環境を整える(teratermで接続)
- OS・パッケージを最新化して、セキュリティを強化する
- 固定IPで、仮想サーバーへのリモート接続先を固定する方法
- 日本語/日本時間の環境を整える
なお、Debian系のLinuxサーバーである、Debian,Ubuntuを利用している方を前提にしています。
Linuxには、ディストリビューションと呼ばれる、インストールされているアプリケーション群の種類があります。
GCPでは、仮想サーバーを作成する際、ブートディスクのオペレーションシステムで選択しますが、特に、変更しなかった場合は、Debianが選択されています。
Linuxのディストリビューションは、何十種類もありますが、原点であるGNU/Linuxから派生して、主に数種類の系統に分かれています。例えば、Debian系、Redhat系、Fedora系、Slackware系、Gentoo系、OpenSuSE系などが有名ですね。
このディストリビューションの種類によって、標準で利用できる機能や、コマンド名、コマンドオプションなどが変わってくるため、自分が利用しているディストリビューションが何なのか、覚えておきましょう。
もし、何をお使いかわからない場合には、下記のコマンドで確認できます。
$ cat /etc/issue
Debian GNU/Linux 9 \n \l
なお、GCPを使って、仮想サーバーを構築する手順は、下記を参考にしてください。
sshでのリモート接続環境の設定
GCPには、Google Cloud Shellと呼ばれる、シェル環境が標準で提供されています。
シェル(shell)とは、Linuxオペレーティングシステムに対して、さまざまなコマンドを入力できる、ユーザーインタフェースを提供する機能をしめします。このシェルを使う環境により、サーバーの使いやすさが変わってきます。
ここでは、日本の方が開発されたTera Term(テラターム)という、非常に使いやすいリモートログインアプリを利用して、GCP仮想サーバーへ接続する方法(シェル環境を使う方法)を紹介します。
Tera Termのインストール
下記のURLから、Tera Termアプリをダウンロードしてください。
自己実行(exe)形式の、teraterm-?.???.exeファイルをダウンロードして、パソコンに保存してください。
ダウンロードしたファイルを実行すれば、あとは、そのまま進めていけば、簡単にインストールできます。
仮想サーバーへsshログインできるように設定する
サーバーにログインするための一般的な方法になっているSSHを利用して、公開鍵認証でログインする環境を作ります。
公開鍵認証でログインするとは、「鍵」と呼ばれる、他人には知れられにくい複雑で長い文字列を使って、「鍵」をもった人だけがログインできるようにする仕組みです。
sshは、サーバー上で任意のコマンドを実行できますが、インターネット環境に設置されているため、不正ログインを受けやすく、悪用されてしまう可能性があります。
公開鍵認証は、ログインID/パスワードといったものより、高いセキュリティになっているので、安心して利用できますね。
公開鍵/秘密鍵を生成します。
「Tera Term」のメニューから、[設定]-[SSH鍵生成]を選んでください。
「鍵の種類」に、「RSA」を選択し、「生成」ボタンを押します。
「パスフレーズ(2カ所)」と「コメント」を設定し、それぞれ「公開鍵の保存」「秘密鍵の保存」ボタンを押して、ファイルを任意の場所に保存します。
なお、「コメント」には、ログイン名を設定してください。 ログイン名は、GCPでVM仮想サーバーを作成した場合、Googleアカウントの@マークの前が登録されています。例えば、[email protected]であれば、ログイン名は、「testuser」です。
これで、公開鍵と秘密鍵が生成できました。
公開鍵は、サーバー側に設定され、だれでも知る事ができる鍵です。特定の端末側が、接続したい正規サーバーである事を識別するために、利用される鍵と理解してください。
秘密鍵は、接続を許可する端末にしか知りえない鍵です。サーバーがこの「秘密鍵」を持った端末のみログイン認証するために、利用します。
「秘密鍵」は、非常に重要なファイルですので、他人に知られないように大切に保管してください。万が一、盗まれた場合を考慮して、先ほど設定したパスフェーズ(passphrase)が有効です。
VMサーバーに、公開鍵/秘密鍵を設定します。
GCPコンソールのハンバーガーメニューの「コンピューティング」カテゴリーから、[Compute Engine]-[VM インスタンス]を選択してください。
VMインスタンスの詳細を表示して、「編集」ボタンを、押してください。
「SSH認証鍵」の「+項目を追加」を押して、「公開SSH認証鍵を入力」の部分へ、先ほどダウンロードした、公開鍵の中身をコピー&ペーストします。
編集画面の一番下にある「保存」ボタンを押します。
Tera Termで、仮想サーバーに接続します。
Tera Termを起動すると、「新しい接続」画面が表示されます。
もしくは、「Tera Term」のメニューから、[ファイル]-[新しい接続]を選んで表示してください。
「ホスト」に、仮想サーバーのホスト名か、IPアドレスを入力してください。
「サービス」に、SSHを選んでください。
「OK」ボタンを押すと、SSH認証画面が表示されます。
※SSHのポート番号を変更している場合には、TCPポートを22から、変更してください。
「ユーザー名」「パスフレーズ」を、入力してください。
認証方式は、「RSA/DSA/ECDSA/ED25519鍵を使う」を選択し、「秘密鍵」に秘密鍵のファイルを指定してください。
「OK」ボタンを押すと、ログインできます。
ホスト名に指定するIPアドレスは、GCPコンソールのVMインスタンスに表示される、「外部IP」を指定しましょう。
ログイン名、パスフレーズは、秘密鍵を生成した際に設定したパスフレーズです。ログイン名は、コメント欄で指定しましたね。
Windwosからワンクリックでログインできるように設定します。
Windowsに、下記のコマンドラインのショートカットを作成しておくと、ワンクリックでログインできますね。
"C:\Program Files (x86)\teraterm\ttermpro.exe" <IPアドレス>:22 /ssh /2 /auth=publickey /user=<ユーザ名> /passwd=<パスフレーズ> /keyfile=<秘密鍵ファイル名>
OS・パッケージを最新化する方法
GCPで公開されているOSイメージは、毎日更新されているわけではありませんので、日々、更新される新しいパッケージはインストールされていません。
セキュリティ上にも、問題がありますので、最新情報にアップデートしましょう。
最新のパッケージ情報を再取得します。
aptコマンドを利用して、debianパッケージの最新情報を取得します。
$ sudo apt update
パッケージを最新に更新します。
aptコマンドを利用して、インストール済のdebianパッケージを最新に更新します。また、不要なパッケージの削除、カーネルの更新もしてくれます。
$ sudo apt dist-upgrade
OSイメージの提供時期により、結構、時間がかかります。
aptコマンドは、debianにインストールされるアプリケーションを操作できるコマンドです。
上記で紹介したコマンド以外に、下記のコマンドをおぼえておくと良いですね。
apt update・・・アプリケーションの更新。カーネルは更新しません。
apt autoremove ・・・不要となった古いアプリケーションの自動削除。
apt purge<アプリ名>・・・設定情報などを含めアプリに関連する情報を完全に削除。
今回は、新規サーバーを想定しているので、バックアップはとっていませんが、設定済のサーバーの更新を行う場合には、かならず、バックアップをとっておきましょう。
バックアップの仕方は、最後の章に掲載していますので参考にしてくださいね。
OSを再起動します。
新しいOS・アプリケーションで動作するため、OSを再起動しましょう。
$ sudo shutdown -r now
日本語環境の設定
日本語パッケージをインストールします。
日本語を表示するために必要となる、アプリケーションパッケージをインストールしてください。
$ sudo apt install locales locales-all
システムの文字セットを日本語に変更します。
システムで使用する文字セットを、日本語(UTF-8)に変更してください。
$ sudo update-locale LANG=ja_JP.UTF-8
一度、ログアウトして、再ログインして、文字セットが変更されている事を確認してください。
$ echo $LANG
ja_JP.UTF-8
オンラインマニュアルを日本語に変更します。
日本語のオンラインマニュアルを表示するために必要となる、アプリケーションパッケージをインストールしてください。
$ sudo apt install manpages-ja manpages-ja-dev
マニュアルを表示して、日本語になっているか確認してください。
$ man ls
LS(1) ユーザーコマンド LS(1)
名 前
ls - ディレクトリの内容をリスト表示する
書 式
ls [オプション]... [ファイル]...
説 明
FILE (デフォルトは現在のディレクトリ) に関する情報を一覧表示します。
-cftuvSUX のいずれも指定されず、 --sort も指定されていない場合、 要素は
アルファベット順でソートされます。
:
manコマンドは、さまざまなコマンドの使い方を表示できる、オンラインマニュアルです。
$ man <コマンド名>
で、表示できます。
日本時間の設定
GCPで仮想サーバーをインストールした直後は、OS内の時刻表示は、世界標準時となっています。日本時間で表示されないと、ファイル日付や、ログファイル内の日付表示に読み替えが必要になったり、自動実行処理を設定する場合に、誤った時刻に実行されています。
地域ごとに存在する、標準時間帯をタイムゾーンと言いますが、このタイムゾーンを日本に変更しましょう。
タイムゾーンを日本に変更します。
現在の時刻を表示してみてください。
$ date
2020年 3月 22日 日曜日 05:46:16 UTC
UTC(Universal Time, Coordinated)と呼ばれる、協定世界時で時刻表示されます。日本時刻とは約9時間の時差があります。
下記のコマンドで、日本時間に変更してください。
$ sudo apt install dbus
$ sudo timedatectl set-timezone Asia/Tokyo
もう一度、現在の時刻を表示してみてください。
$ date
2020年 3月 22日 日曜日 14:51:41 JST
固定IPアドレスの設定
GCPで作成した仮想サーバーの外部IPアドレスは、動的に割り与えられているため、システムを再起動した際に、変わってしまう場合があります。
それでは、毎回、GCPコンソールを開いて付与されているIPアドレスを確認して、接続先IPを変更しなければならなくなります。
先ほど説明した、Tera Termで、ワンクリックのリモートログイン環境をととのえても、変更する手間がかかりますので、固定IPアドレスに変更することで、いつでも、同じ接続先にしてしまいましょう。
仮想サーバのIPアドレスを、固定IPアドレスに変更します。
GCPコンソールのハンバーガーメニューの「コンピューティング」カテゴリーから、[Compute Engine]-[VM インスタンス]を選択してください。
VMインスタンスの詳細を表示して、「編集」ボタンを、押してください。
「ネットワークインターフェース」の編集ボタンを押してください。
「外部IP」に表示されている「エフェメラル」というのが、動的IPをしめします。
これを、「IPアドレスを作成」に変更すると、「新しい静的IPアドレスの予約」画面がポップアップします。
ここで、「名前」を設定して、「予約」ボタンを押すと、固定IPが付与されます。
※固定IPは、GCP側で自動的に割り与えられ、ユーザー側で指定できません。
静的IPが付与されると、ポップアップ画面が閉じますので、「完了」ボタンを押して、ネットワークインターフェースの設定を終わらせます。
最後に、VMインスタンスの詳細画面の最下部にある「保存」ボタンを押してください。
GCPスナップショットによる、VMバックアップ
ここまで設定した段階で、最小限の基本設定ができた状態です。
これから、ブログサーバーや、ファイルサーバーとして設定していく場合に、設定を変更していくと思いますが、一度、この段階で、バックアップをとっておくと、いつでも、この状態から再開する事ができます。
仮想サーバーのバックアップをとります。
GCPコンソールのハンバーガーメニューの「コンピューティング」カテゴリーから、[Compute Engine]-[スナップショット]を選択してください。
「スナップショット」画面の上部にある「スナップショットを作成」ボタンを押します。
「名前」に、スナップショット名を入力してください。ここでは、「snapshot-testserver」としています。
「ソースディスク」に、バックアップ対象のVMイメージを選択してください。
「ロケーション」は、「リージョン」を選択し、「us-west1(オレゴン)」を選択してください。
スナップショットは、一部の北米リージョン(us-east1,us-west1,us-central1)であれば、5GBまで無料枠での利用できます。
仮想サーバーをリストアします(リストアしたい場合)。
GCPコンソールのハンバーガーメニューの「コンピューティング」カテゴリーから、[Compute Engine]-[スナップショット]を選択してください。
リストアしたいスナップショットを選択してください。
「スナップショットの詳細」画面が表示されます。
「スナップショットの詳細」画面の上部にある、「インスタンスを作成」ボタンを押してください。
そうすると、VMインスタンスの作成画面が表示されますので、新規のVMインスタンス作成と同じように、マシン構成を指定してください。
まとめ
Google Cloud Platform(GCP)を使って、最初に共通的に実施するべき、サーバーの設定について解説しました。
この設定を保存しておくと、いろいろなサーバーとしてすぐに活用できるようになるので、準備しておくと便利です。
コメント