1.Serposcopeを無料で運営したい。
Google Cloud Platformの無料枠を使って、Serposcopeを無料で運営しようとする試みです。
Google Cloud PlatformにはAlways Freeという無料枠があります。これを使って無料のSEO検索順位チェックツールSerposcopeをインストールして、全部無料で使います。
ただし、一部のサービスが、2020年から有料化するらしいです。(外部IPアドレス)1 時間あたり $0.004 なので、一か月だと0.004×24×30=$2.88 日本円で300円前後です。これでも安いです。
2.GCPの設定&Serposcopeインストール
2-1.プロジェクト作成
上のGoogle Cloud Platformと表示されている右側のプロジェクト名のところ(プロジェクトがない場合は空白)をクリックする。
プロジェクトの選択が表示されるので、新しいプロジェクトをクリック。
新しいプロジェクトが表示される。
プロジェクト名に任意の名前を入力。
プロジェクトIDを変更したいなら、編集をクリックして変更する。(変えなくてもいいと思う)
作成をクリックするとプロジェクトができる。
2-2.インスタンスの作成
ナビゲーションメニューから、Compute Engine>VM インスタンスを選択 作成をクリック。
インスタンスの作成が表示される。
名前:適宜決める。ここではserposcope-serverにする。
リージョン:無料枠がオレゴン: us-west1、アイオワ: us-central1、サウスカロライナ: us-east1 のみ。(参照:Always Freeの使用上限)
この中で、us-west1を使おうと思う。
ゾーン:ここをみると、使っているマシン性能がいろいろあるみたいだけど、わからないので、us-west1-aにしようと思う。
マシンタイプ:これは、f1-microのみ(参照:Always Freeの使用上限)
ブートディスク:30Gまで無料なようなので、30Gにする。OSはデフォルトのDebian GNU/Linux 9 (stretch)のままにする。
ここまで変更したら、作成ボタンを押す。するとインスタンスが表示される。
そこの右のほうに接続SSHと表示されているところをクリックすると、コンソールがブラウザで表示される。
2-3.SSH認証鍵の作成
ここでSSHの認証鍵を作成して登録する。
ssh-keygen -t rsa -f ~/.ssh/(鍵のファイル名) -C (ユーザー名)
このコマンドをコンソールに書いてリターンすると、鍵が作成される。
ssh-keygen -t rsa -f ~/.ssh/sshkey-20191006 -C user
ここでは鍵のファイル名とユーザー名を上記にする。
そのあと、鍵を書き換えできないように、読み取り専用にする。 下のコマンドを実行する。
chmod 400 ~/.ssh/sshkey-20191006 //読み取り専用にする
その次は、鍵を表示させる。 cat ~/.ssh/sshkey-20191006.pub ・・//鍵を表示する。.pubのつけ忘れ注意
上のコマンドを実行したら、コンソールに鍵が表示されるので、コピーする。
ナビゲーションメニュー、 Compute Engine>VMインスタンスをクリック。名前、ここではserposcope-serverをクリック。
すると、VMインスタンスの詳細が表示されるので、編集をクリック。
SSH認証鍵の下に、SSHキーが0個ありますとあって、表示して編集するのところをクリック。(画面ではやり直したので、項目の追加になっている。この時は項目の追加をクリック)認証鍵全体を入力のところに先ほどコピーした鍵をペーストする。ユーザー名が左に表示される。保存をクリック。
2-4.SSHのポート番号変更
serposcophaのポートを22から、ほかの番号に変更する。なぜかというと、22のポートは一般的な数字なので、アタックが世界中からされて、これが課金対象になるらしい。
まず、設定ファイルのバックアップをする。sshd_configをsshd_config.orgという名前でコピーする。次を コンソールに打ち、実行する。 sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org
そのあとは、次のコードを実行する。
sudo nano /etc/ssh/sshd_config
sshd_config が開く。#Port 22 と書いてある場所を探す。(nanoのところはviでもいいです。)
Port 22というところがあるので、Port 好きなポート番号 にする。#シャープ記号は取る。ここでは40022にする。
#Port 22
Port 40022//変更後
変更したら、ctrl+Oで保存、ctrl+Xで終了。
sshを再起動する。
sudo service ssh restart
2-5.ファイアウォールルールの設定
そのあと、ファイアウォールの設定をします。
ナビゲーションメニューから、Compute Engine>VMインスタンスを選択。
インスタンスの一番右端の3つのドット の設定ボタンをクリック。ネットワークの詳細の表示をクリック。
VPCネットワーク>ファイアウォールルールを選択。
ファイアウォールルールの作成で
名前:disallow-22
一致したときのアクション:拒否
ターゲットタグ:disallow22-server
ソース IP の範囲:0.0.0.0/0
プロトコルとポート>指定したプロトコルとポート>tcpにチェックして、22と入力する。
あとはデフォルトのまま。作成ボタンを押す。
ファイアウォールルールの作成で
名前:allow- 40022
一致したときのアクション:許可
ターゲットタグ:allow 40022-server
ソース IP の範囲:0.0.0.0/0
プロトコルとポート>指定したプロトコルとポート>tcpにチェックして、 40022と入力する。
あとはデフォルトのまま。作成ボタンを押す。
そのあと、Compute Engine>VMインスタンスで、インスタンスの名前をクリック。VMインスタンスの詳細で編集をクリック。
ネットワークタグで、先ほど設定したターゲットタグを入力。保存ボタンをクリック。
Compute Engine>VMインスタンスで、インスタンスの接続のSSHの右の下矢印をクリック。ブラウザウィンドウで開く。をクリックして、失敗するのを確認する。これは22番をふさいでいるのでつながらないのが正解。
そのあと、ブラウザウィンドウでカスタムポートを開く。をクリック。
ポートのところに設定したポートを入力して、開くをクリック。コンソールが表示されたら成功。
2-6.Javaのインストール
sudo apt install default-jdk
でjavaをインストール。
2-7.Serposcopeのインストール
任意の場所で、wget https://serposcope.serphacker.com/download/2.10.0/serposcope_2.10.0_all.deb(serposcopeのダウンロードパス)
でファイルをダウンロード
そのあと、sudo dpkg -i serposcope_2.10.0_all.deb
でインストール。
依然やったようにファイアウォールルールで7134を許可する。
VMインスタンスのインスタンスの外部IPが34.56.245.132
とすると、
34.56.245.132:7134
でサイトが表示される。
2-8.IPを静的IPアドレスにする
標準 VM インスタンスで使用されている静的 IP アドレスとエフェメラル IP アドレスが、2020 年 1 月 1 日から、1 時間あたり $0.004 が課金されるらしい。エフェメラルなIPって動的IPのことですね。どっちみち課金されるので、静的IPを使おうと思います。
VPCネットワーク>外部IPアドレスで、外部アドレスが載っていて、タイプがエフェメラルとなっているので、静的をクリック。
名前は適当 ここではserposcopeにする。予約をクリック。
これで静的IPアドレスになった。
2-9.データベースをMYSQLにする。
データ量が増えたら、MYSQLのほうがいいらしい。とりあえずMYSQLに変える。 sudo apt-get -y install mysql-server
今はMYSQLの代わりにMariaDBになってる。MYSQLの上位互換らしい。普通に動くらしいのでMariaDBを使う。
コンソールで sudo mysql -u root -p //mysqlにルート権限で入る
CREATE USER 'ユーザー名'@'ホスト名' identified by 'パスワード';
で入りなおす。
GRANT ALL PRIVILEGES ON . TO 'ユーザー名'@'ホスト名' ;
FLUSH PRIVILEGES;
sudo mysql -u ユーザー名 -p パスワード
MariaDB [(none)]>CREATE DATABASE serposcope DEFAULT CHARACTER SET utf8;//データベースを作成
Exitでmysqlから出る。sudo nano /etc/serposcope.conf
をコンソールに打ち込む。# alternative database url
serposcope.db.url=
というところを# alternative database url
serposcope.db.url=jdbc:mysql://localhost/serposcope?user=ユーザー名&password=パスワード&allowMultiQueries=true
にする。sudo service serposcope restart
で再起動。
3.参考にしたサイト
- https://serposcope.serphacker.com/en/doc/install.html
- https://sakura-bird1.hatenablog.com/entry/2019/03/12/034009#53-%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%82%92%E3%81%99%E3%82%8B
- https://qiita.com/Brutus/items/22dfd31a681b67837a74
- https://qiita.com/ndxbn/items/7ef0a96e409a5b5837bd#ssh-%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%82%92%E3%81%8B%E3%81%88%E3%82%8B
- https://qiita.com/met_ganchan13/items/4a26bc419eea8f642b44