スマホなんて無かった子供時代、単語や公式を覚えるのに、単語帳を使ってませんでしたか?
単語帳って定期的に覚えるべきことを目にするためのデバイスとして優れてるんだけど、いまどき物理的な何かを持ち歩くというのはしんどいので、twitter bot にしちゃえばいいと思いました。
そんな昔を思い出した理由は、PMPの勉強を最近してなくて、でも9月末の受験を諦めていなくて、でも重要ワードや公式を覚えて無くて。これはもう、単語帳作るしか無いなと思ったからなんですけどね。笑
実は、PMP関連の twitter bot は既にいくつか存在してます。でもPMBOK第四版までにしか対応してないんです。
で、下記のようにメンションしたのですが、1週間以上放置プレイだったので、じゃあ全部作っちゃうことにしました。
@pmp_study 定期的に重要ワードがリマインドされて勉強になってます!自分も必要作業分担しますので、第6版対応しませんか?きっともっと喜ぶ人増えると思います!
— ぱん@プロマネ (@toaster4us) 2018年9月1日
ということで今回から3回シリーズで、PMP のtwitter bot 作ります。
- #1: サーバ環境構築編
- #2: twitter API – Ruby 連携編
- #3: Railsアプリケーション構築編
では1回目、サーバ環境構築始めます。今回は、GCP(Google Cloud Platform)のCompute Engineを利用します。AWS・EC2でも良いのですが、GCPの方が無料対象の条件が良いという理由でGCPを選択しました。
以下、GCPのアカウントを作った後の手順です。
プロジェクト作成
プロジェクトとは、サーバ等のインスタンスをまとめるグループです。作成しても課金される類のものではないので、今回用に作成します。①プロジェクトの選択をクリックするとダイアログが表示されるので、②新しいプロジェクトを作成します。今回は「pm-professional」としました。
Compute Engine インスタンス作成
Compute Engine は、AWSでいうところのEC2です。CPUやメモリー、OSを選択し、サーバを自由に構築できます。GoogleのGと合わせ、GCEと呼ばれたりします。先程作成した「pm-professional」内に1つ作成します。①→②→③とクリックしてください。
GCEインスタンス設定
インスタンスを設定します。①名前を「twitter-bot」とし、②サーバの場所をアメリカのサウスカロライナに設定しました。サーバの場所は、webサービス等の場合日本や台湾に設定すべきですが、今回はbotということで、日本や台湾より安いサウスカロライナにしています。右のゾーンは、そのままでOKです。
③マシンのスペックは、標準としておきます。これくらいのスペックの方が最初のサーバ構築でRuby等をインストールをする時に速いのでこうしていますが、構築が終わったらマシンのスペックを下げる予定です。④OSはUbuntu16を選択していますが、最新の18でも問題ないと思います(細かな調整が必要になる可能性はありますが)。
SSH設定
サーバに入るためのSSH設定します。GCEペインの①メタデータから、②SSH認証鍵をクリックし、③SSH認証鍵を追加します。
④に使用する公開鍵をコピペし、⑤保存します。鍵の作成は「秘密鍵・公開鍵を作成する(Mac)」「秘密鍵・公開鍵を作成する(Win)」あたりに情報がまとまっています。
SSH先IPの確認
①VMインスタンスをクリックすると、②外部IPが表示されます。このIPに対し、先程登録した認証鍵でSSHします。AWSと異なり、サーバの停止・起動時にIPが変わる確率が高いので注意が必要です。
以上で、Webコンソール画面からの操作は終了です。
以下、terminalから操作していきます。
ruby2.5.1のインストール(rbenv使用)
$ sudo apt-get update $ sudo apt-get install -y emacs gcc make libssl-dev libreadline-dev zlib1g-dev $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv $ cd ~/.rbenv && src/configure && make -C src $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ source ~/.bash_profile $ emacs /.bash_profile #add <code>MARKDOWN_HASH2ac742365ce7306202dfba6a96727831MARKDOWN_HASH</code> $ mkdir -p "$(rbenv root)"/plugins $ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build $ rbenv install 2.5.1
mysql5.7のインストール
$ sudo apt install mysql-server mysql-client $ sudo systemctl enable mysql
ひとまず、Ruby と mysql を、GCEにある ubuntu16 に入れました。
twitterへのアプリケーション申請あたりをカバーします。
ピンバック: twitter botで単語帳を作る(twitter API - Ruby 連携編) - All for CONTENT