Help us understand the problem. What is going on with this article?

GCPでNAT構築と、CloudSQL+mroonga on GCEスレイブしようとして断念

公式ドキュメントに書いてあるけどね。

NAT構築

やること

Cloud NAT使わずに自前でNATインスタンスを構築

なんで

開発環境で、可用性がそんなにいらない。落ちたら立て直せばいいし。
通信量もそんなに無いし…ってことで貧乏構成でいこうじゃあないか。
というわけでf1-micro/centos7。

成功の手引き

https://cloud.google.com/vpc/docs/special-configurations#natgateway

一応

VPCやサブネットの作成は割愛。ドキュメントにも載ってるし、かなり前に自分でも書いた。
ドキュメントはCUIで進めてるけど自分はコンソールでやりました。
インスタンス名はここではyasui-natとでもしましょう。

注意点は、インスタンス作成時にオプションのネットワークタブにあるIP転送チェックボックス、これ忘れたら後からいじれないんじゃないかって気がするくらいです。ネットワークタグはpubとでもしましょう。

ドキュメントにはno-ipってタグがすごい胸張った感じで出てくるので「このタグそのものに何か意味があるのか?」と最初怯みましたが、別に何だって動きます。ここでは適当にprivとかにしましょうか。
多分↑のドキュメント、VPCがデフォルトルールなのが前提なのか、GCP内部NWからNATへの通信を許可するためのルール設定が割愛されてます。pubprivからのパケットは基本全部許可するようなファイアウォール設定を忘れずにしときましょう。勿論、利用ポートが完全に絞れているなら全部じゃなくても問題なし。

あとは書いてある通り

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 確認
iptables -v -L -t nat

で転送設定を書き、ネットワーキングのルート設定から、送信IPを0.0.0.0/0、タグはprivでネクストホップはyasui-natを指定します。

これでまあいけるかと思います。
設定の保存に関しては、

yum -y install iptables-services
/usr/libexec/iptables/iptables.init save

でいけるって見ましたが、自分の場合この設定入れたあとインスタンス止めてイメージ化、イメージから起こしなおしたらiptableの設定は無くなってました。かなしみ。

CloudSQL+mroonga on GCE

結論、ムリです

・CloudSQLにはプラグイン突っ込めない
・ならばGCEでスレーブ作ってスレーブ側でmroonga入れれば良いのでは?

・mroongaはトランザクションが効かないエンジンである
・GTID_MODEはトランザクション効かないエンジンに機能しないし、マスターとスレーブで異エンジン・同一テーブルの場合ONにしたらアカン
・CloudSQLはGTID_MODEを触れない上にデフォルトONである(ちなみにAWS RDSはパラメータグループでOFFに出来る)
・ゴフッ

検索に使うタネとelasticsearchとかに突っ込んでキーだけ取得、キーでDBからデータ本体持ってくる仕組みに作り変えるか、それともmysql on GCEにするか…で悩んだけど後者にすることにしたよもう。
DBだけはAWS使うっていうウルトラCも一瞬頭によぎったけど転送量高そうだし…

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした