投稿者名:TOKIDA

このサイトは備忘録であるとともにIT界隈の人に情報をお返し出来たら良いなぁという物です。

ブログのサイトをAzureからGCPへお引っ越し

はじめに

お世話になっていたAzureもそろそろ無料で利用できなくなるので Google Cloud Platform (以降GCP)に移行をしてみました。
GCPは、Google社が自社で提供しているサービスが実際に動いている基盤をクラウドサービスとして利用できるようになっているクラウドサービスです。特に安くて早いと評判ですね。GCPの目指すところは、運用入らずの「NoOps」ということなので運用も楽になるといいなと思っています。

GCP上では色々な方式でWordpressを動かすことが出来ますが今回は、Containerでするか、Google App Engineでするか、通常のVM(Google Compute Engine)で行うか悩んだのですが、まずは Google Compute Engine(GCE)で行ってみることにしました。

環境

移行前 Azure (VM)

  • Standard DS1 (1 vcpu, 3.5 GB memory)
  • Ubuntu 16.04 LTS
  • Nginx(1.10.3-0ubuntu0.16.04.2) + php(7.0) + php-fpm + mySQL(5.7)
  • Region : Japan East

移行後 Google Cloud Platform (GCE)

  • f1-micro(vCPU x 1、メモリ 0.6 GB)
  • Intel(R) Xeon(R) CPU @ 2.20GHz
  • Ubuntu 17.10
  • Nginx(1.12.1-0ubuntu2) + php(7.1) + php-fpm + mySQL(5.7)
  • Region: asia-northeast1-a

PHPが少しだけバージョンが上がった事、OSの新しいリリースがその差になります。

移行の流れ

WordPressの以降についてはもう散々語られているので特に書くべきことはないのですが

  1. 元のサイトでバックアップの取得(今回は, BackWPup プラグインを利用しました)
  2. 新規サイト側でOSからMySQLいれてPHP動くところまで構築(普段使っている Ansible Scritpt で流した)
  3. バックアップを htdocsに展開、wp-config.phpを修正、mySQLを復元
  4. CDNで利用しているCloudFlareでサイトの方向を新規に切替

で動きました。

ちょっとメモ

MySQL5.7のメモリ利用量が多い

こちらで記載されていますが初期設定のメモリの量が増えている模様です、この設定無効化するオプションを /etc/mysql/conf.d/mysql.cnf に追記しました。初期の導入中では、大きなサイズのインスタンスでインストールしていたので、メモリサイズを小さいインスタンスにしたらmySQLが起動せず気が付きました。ログを見るとAppArmorのエラーが出るのですがそもそも起動していたので関係ないのだと思います。

[mysqld]
performance_schema = off

CDNの構成

普段からCDNには、CloudFlare を利用しています。私みたいに、普段からちょいちょいサイトを移動する人にはこういったフロントエンドを利用しておくと切り替える時に便利です。このサービスはCDNと同時にDNSの管理もしてくれておりとても便利です。

  • CloudFlare(CDN) -> { LB -> Instance Group -> wordpress_server }

という構成にしてみました。GCP上では1台なのですがLBの配下においています。したがって CloudFFlareに登録するIPアドレスは LBの「静的IP」を指定しています。

スペック不足..

やはりg1-small(vCPU x 1、メモリ 1.7 GB)に変更しています。もう少し時間が有る時に調べていきたいと思いますがメモリなさすぎて落ちまくっていました。定期的に何かのプログラムがメモリ食ってKillされているという流れ。事前に全く調べてなかったのですが Swapが指定されていないですね。 cat /proc/meminfo で確認するとSwapが0KBです。

sudo dd if=/dev/zero of=/swapfile bs=1024K count=1024
sudo mkswap /swapfile
sudo /sbin/swapon /swapfile
  • [todo] 自動マウントさせようとしたけどなんか旨く動かないので後で確認する
  • とりあえずは動いているのでf1-micro(vCPU x 1、メモリ 0.6 GB)で様子を見てみる。

ちなみにStackDriver使うとあとからでもログを管理コンソールから参照できてすごく便利

あとから調べたら結構似たような人は沢山いる。いま f1-micro(US)は1つまで無料なのですね。

まとめ

  • スペックはIaaSとしてはCPUの性能比を除けばメモリサイズとなります。メモリが割当たっていれば当面は十分そうです。この辺はStackDriverなりの画面を後で見ながら確認して行こうと思います。
  • 監視とかそのあたりの機能については出来ることを全部やってみてみたいと思います(特に StackDriverまわり)

.

情報収集をRSSに戻してみる

昨年はずっとFacebookで情報収集していたなぁと思います。
Facebookの良いところはフォローしている人達の興味を持っていることをすぐに知ることが出来るため色々新しい(またははやろうとしている)ようなことに気がつくことが出来る点でしょう。またSNSならではとして実際に知っている方の動向もよくわかります。ただそのぶんフォローしている人のバイアスは凄いなと思うのと広がりが無いなと思い始めてきています。

最近のIT系ではQiitaという情報サイトが非常に情報が集中してきており整理されていて興味のある範囲では楽しいです。

発信する人は昔からBlogを書いている人も多く以前はRSSなどでそういったサイトをフォローしていたのですがここ2,3年は全く見ていませんでした(正確には新しくサイトを追加したりしていませんでした)。今年は初心に帰って色々なサイト(人)をフォローして行きたいなと思います。特にCloudなどの関連は以外にブログとかあまりなく(これは最近の人が多いからなのかな?)、電子工作系は結構ブログとか書いている人が多い気がします。

ということで久しぶりにFeedlyのサイトに「ブラウザ」でログインしてみました。

カテゴリー的にはiPhone系が多いのですが250/400が既に新しく更新されていない/動いてないとのことでした(ちょっとさみしいですね)

  • RSSで情報収集
  • Pocketに気に入った記事を蓄積

このあたりの以前やっていた事をまた始めてみよう。

Homebridge経由でbmd280センサーを利用して温度・湿度を取得する

便利な世の中でなんでもモジュールがありますね。
利用しているのは Raspberry pi zero に BME280 を接続して温度を取得してみました。HomeKit(HomeBridge)経由で接続することで iPhoneの「HOME」アプリから簡単に見れるのがいいですね。

$ npm install -g homebridge-bme280

    "accessories": [
        {
            "accessory": "BME280",
            "name": "Sensor",
            "name_temperature": "Temperature",
            "name_humidity": "Humidity",
            "options": {
              "i2cBusNo": 1,
              "i2cAddress": "0x76"
            }
        }
    ]

実際に使ってみると表示の部分は TemperatureFileHumidityFile プラグインと同じ感じですね。このプラグインを使うと特にCronで定期的に取得しなくても良いのは楽です。

homebridgeにhomebridge-camera-rpiを追加したけどうまくいかない

Rapsberry pi の homebridgeにhomebridge-camera-rpiを追加してみました。

使い方は上記のREADMEの通りで特にしていけば大丈夫でした。

既存のセンサー類と共存が出来ない(Cameraを有効にすると排他)

  • はじめてHomeBridgeを触ったのでこれが仕様なのかわかりませんでしたがカメラを追加するとそもそも定義していたセンサー類が一切見えないです。
  • 正確には「カメラ」として追加すると「カメラ」だけが追加されます。
  • 「バーコード」から追加するとカメラ以外のものだけが追加されます。
  • なので排他で動いている模様です。したがって同時には利用できないのではないかなと推測してます。
  • そのためなのかスタンドアローンモードが用意されています。

  • 使った感じは便利そうでした。クリックすると「Live」で動画も見ることができました。

その他

上部へスクロール