【SEO】単語数カウンターを作りました

IT
スポンサーリンク

勉強を兼ねてSEOで使える単語数カウンターを作りました

新しい技術を学びたかったのでGolangで文章中に出現する単語の数をチェックするツールを作りました。

チェック対象はURLからとテキストの貼り付けに対応しています。
SEOの調整などにお役立てください。

SEO 単語出現率カウンター - SEO Tools
文章の文字数、総単語数、頻出単語トップ10をカウントします。集計対象はURLまたはテキストを貼り付けることによりカウントできます。SEO対策にお役立てください。

この記事を公開後にこのページの単語数をチェックしてみました

結果はこのようになりました。

無料がダントツで多かったです……
cloudが2位でgoogleが4位なのはおそらくGoogle Cloud Platformというワードがまだ辞書にないのでそのあたりの誤差かと思います。
3位のITはこのブログのカテゴリです。
そんなにカテゴリ名が含まれているのですね。
これは自分でも意外でした。

さすがに無料が一番になるよりはGCEかGCPが一番になるように後日調整していきたいと思います。

最初はXSERVERでリリースを考えました。

XSERVERでGolangを動かしたという先人の方がいましたので、最初は同じ方法で進もうかと思いました。
ソースもHello World!を出力するような単純なものでしたので、検証にはちょうどいいかと思い、XSERVERにしました。

動いた実績のあるソースをそのままXSERVERに転送して動かしたのですが、どうにもこれが動かない。
そしてログを見るもデバッグするにはなんの足しにもならないエラーしか出ないのです。

せめてWEBサーバのログレベルを変えてデバッグしたいと思いXSERVERのサポートにも連絡しましたが、個別の調整は受け付けていないとの事でした。
自前でもログ出力を追加しましたが、そもそも書き込みでエラーになってるのか、はたまたそれ以前にエラーになってるのかすら把握できない状態でした。

GCPのGCEでサーバを立てて無料枠で運用する

AWSも候補に上がったのですが、無料枠を超えて課金されてしまった人の体験談をあちこちで見かけちょっと個人で勉強のために運用するのは怖い印象がありましたので、Google Cloud Platform(GCP)の無料枠で運用することにしました。
正確にはGCPのCompute Engine(GCE)でサーバを立てて運用することにしました。

GCP と G Suite を含む Google Cloud - 無料トライアル  |  Google Cloud
Google Cloud Platform を使った構築、革新、スケーリング。G Suite を活用したコラボレーションで生産性を向上。Google Cloud の機能をご覧ください。

XSERVERで運用するより、かえって勉強になって良かったかもしれません。

GCPは1年間無料の他に$300分のクレジットももらえますので無料枠を超えて最悪課金が発生したとしても安心です。
そして1年の無料期間が過ぎてもAlways Freeの対象となるように運用すれば無料枠が継続されるのも魅力です。

GCP の無料枠 - 無料の長期トライアル、Always Free  |  Google Cloud
GCP の無料枠では、無料プログラムがさらに充実し、12 か月間 300 ドル分の無料トライアルと Always Free(常時無料)という 2 つのプログラムが提供されます。詳細をご覧ください。

無料で運用するには他の方のサイトに詳しく紹介されていますので、そちらに譲るとして肝だけメモしておきます。

GCEの無料枠内でのインスタンスの作成方法

  • リージョンはus-を選ぶ
    ※ 北バージニア [us-east4] を除く
    ※ us-
    以外は無料の対象外です。

  • マシンタイプはf1-microを選ぶ

  • ブートディスクは標準永続ディスクを選ぶ
    ** ブートディスクの容量は30GBまでが無料なので10GBから30GBに変更する

以上の設定で無料枠内でのVMインスタンスが作成されます。
右上に月間予測として$5ほどのかかると表示されて心配になったのですが、こちらは先の条件でインスタンスを作成していれば$0で済むらしいです。

こちらは実際に1ヶ月後に無料枠で収まったかどうか追ってご報告します。

忘れてはならないSSHのポート変更

中国、オーストラリアとの通信は課金対象となるのですが、中国からのSSH総当たり攻撃にも課金されてしまいます。
実際一月で一円にも満たないか金額らしいのですが、気持ち悪いので変更しておきます。
ファイアウォールも忘れずに変更してください。
僕はOSをCentos7にしたのですが、firewalldとSELinuxは無効にしました。
GCEのファイアウォールで一元管理した方が楽だからです。

WEBサーバへの中国、オーストラリアからのアクセスはどうする?

上でSSHのことを書きながら、ふとWEBサーバにも中国、オーストラリアからの不正アクセスあるよなぁと思い、
こちらのページを参考にGoogle Cloud SDKを使用し、最新のリストからGCEのファイアウォールに一括で登録するスクリプトを作成しました。

GCP:GCE 海外からのアクセスを一括で拒否するFW管理スクリプト | お名前.com、さくらのVPS等のサーバーでの開発・設定メモ

こちらのものを使用しても良かったのですが、2018年10月時点と少々古かったのとGolangの勉強がてら自分で作りました。

リストはこちらのものを使用させていただきました。

ipv4.fetus.jp : 国/地域別IPアドレス(IPv4アドレス)割り当て一覧

一つのルールには250個のIPアドレスレンジを指定しています。
※こちらのIPアドレスを指定できる最大値は255個までであるとか256個まであるとか複数ありましたので、実際にいくつまでか検証してみました。
IPアドレスを500個にしてルールを作成しようとしたところ、下記のエラーが返されました。

どうやらIPアドレスは256個まで指定できそうです。
先のスクリプトでは切りの良いところで250個としてルールを作成しています。
ルールは全部で40個、IPアドレスレンジは中国、オーストラリアでそれぞれおよそ5,000個、計10,000ものIPアドレスレンジからの通信が拒否されるようになります。

使い方はこちらからファイルをダウンロード後、解凍してください。

fwrule.zip

その後シェルにそのファイルを渡してください。

Google Cloud SDKを使用しますので、そちらの設定は済ませたあとに行ってください。

Cloud SDK  |  Cloud SDK  |  Google Cloud
Google Cloud Platform のコマンドライン ツールのコレクション。gcloud、bq、gsutil やそのほかの重要なツールが含まれます。

このようにルールが作成されます。

ルールの中にはこのようにIPが250個設定されています。

スクリプトで作ると楽ですね。

これで気持ちよく使えそうです。
ちょくちょくログや課金状態をチェックして運用していきたいと思います。

GCPのGCEを運用する上で地味にハマった点

無料枠で運用するためにf1-microを選びましたのでマシンスペックの低さとかははじめから気にしていなかったのですが、ハマった点がデフォルトの状態ではswap領域がなく、ライブラリのコンパイルでエラーになってしまいました。
swap領域が少ないとかではなくまったく無い状態がデフォルトです。

どうしても必要なライブラリでしたので、swap領域を確保することにより事なきを得ました。

このswap領域は今後どうしていくか監視しながら調整していきたいと思います。

コメント

タイトルとURLをコピーしました