社内システムをGCPへ移行①

GMO NIKKOのS.Tです。
社内システムをクラウド化(移行中)する機会があったので共有します。
長いので今回はその第ー回目として下記を説明します。
・Compute Engine
・Cloud Storage
・Big Query
 

全体図

 
現在オンプレで稼働中のシステムからなるべく変更点を少なくして工数を抑えつつ費用もあまりかからない方法になっていると思います。

Compute Engine

■Windowsサーバーでレポートやマスター取得等のバッチを実行
最大の変更点はデータベースがOracleからCloud SQL(PostgeSQL)に変更になったことですね。
クラウドでWindowsを動かすので他の設定は比較的そのまま使えます。
以前はキュー管理にRabbitMQを使用していましたが、タスクスケジューラで定期的に非同期実行を行いCloud SQLにキュー用のテーブルを用意することで対応しました。
毎分実行するように下記のように設定しましたが、Windows Update等でOSを再起動すると指定時間まで実行されない仕様(タイミングによっては翌日まで動かない)なのでスタートアップ時も実行するようにトリガーを追加して対応しました。
取得してレポートデータは扱いやすいCloud Storageに保存します。

Cloud Storage

■Cloud Storageへアップロード
下記はバッチの内容ですが、PHPでレポートデータをCSV形式で保存してGZIP圧縮してアップロードしています。
実行するとこのようにCloud Storageにアップロードされているのが確認できます。

Big Query

Cloud StorageからBig QueryへのインポートもWindowサーバーのバッチから行っています。
Big Queryのテーブル設定も必要なので$schemaとして下記データを渡しています。
フィールド定義と日付でパーティショニングを行う場合の設定になります。
ID等の数字でパーティショニングを行う場合はこのように設定する必要がありました。
実行するとこのようにBig Queryにテーブルが作成されてCloud Storageのデータがインポートされているのが確認できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です