想ひ出15: GCP/VPCネットワークピアリングしてみる
おはようございます、moqrinです。
ドキュメントを読んでいるついでに、ふと思い立ってVPCピアリングをしました。
ドキュメント通りにやるだけなんで、特記することはありませぬー。
非常に簡単でした。
下記にある通りなのですが、片方から接続、もう片方から接続、わぁ相思相愛だあ!というだけです。
やること
1. プロジェクト1のnetwork1 と プロジェクト2のnetwork2 でピアリング
2. プロジェクト2のnetwork2 と プロジェクト1のnetwork1 でピアリング
3. プロジェクト1のredisクライアントから、プロジェクト2のredisサーバーに対して接続して確認する
1. プロジェクト1のnetworkA と プロジェクト2のnetworkB でピアリング
今回の例は、それぞれ下記のように設定されています。
Project | Network | |
---|---|---|
1 | funky-moqrin | default |
2 | sexy-moqrin | moqrin3-network1 |
なお、それぞれ設定することになる相手側のプロジェクトIDとVPCネットワーク名は、
手動で入力することになりますので、前もってコピーしておくと良いかと思います。
① [VPC ネットワーク ピアリング] ページで[接続の作成] をクリック
② 接続の自分側の [名前] にピアリング名を入力します。
③ [VPC ネットワーク] で、ピアリングするネットワークを選択
④ 同じプロジェクト内でピアリングする場合を除き、
[VPC ネットワーク ピアリング] ラジオボタンを [別のプロジェクト] に設定
⑤ 他のプロジェクトのプロジェクト ID を手動で指定
⑥ 他のネットワークの VPC ネットワーク名を手動で指定
⑦ [作成] をクリック
2. プロジェクト2のnetworkB と プロジェクト1のnetworkA でピアリング
1と同様の作業を行います。
[VPC ネットワーク ピアリング] ページに移動して確認すると、
ステータスに [Connected] と表示されています。
もう一つのプロジェクトで [VPC ネットワーク ピアリング] ページに移動し、
ステータスに [Connected] と表示されていることも確認します。
3. redisクライアントからredisサーバーに対して接続して確認する
プロジェクト1のnetworkAのインスタンスにredis-cliをインストール
プロジェクト2のnetworkBのインスタンスにredisをインストール 当然ですが、redisサーバー側は外部接続できるようにしておきましょう!
クライアントから内部IPにてサーバーに接続
redis-cli -h 10.XXX.X.X SET 1 moqrin
サーバー側で確認
redis-cli 127.0.0.1:6379> get 1 "moqrin"
わーい。
参考:
想ひ出14: Amazon Linux2でAnsibleがコケたじゃん?
おはようございます、moqrinです。
数日前にAmazon Linux 2で、特に何も留意せずAnsibleを流したところ、コケまくって当初ビビったのだけど、実際は特に大したことでもなかったので自身の恥を晒しますー。 (誰かのためになればいいな、と)
とりあえず、公式に書かれている通り(CentOS、RHEL、または Amazon Linux が実行されている Amazon EC2 インスタンスに対して EPEL リポジトリを有効にする方法を教えてください)、RHEL 7 および Amazon Linux 2 で EPEL rpmパッケージをインストールして有効にします。
- name: install epel yum: name=https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm state=present
こちらに、だいぶ昔に記載されているような理由で、インストールしたものが期待しているバージョンと異なっている、コケるなどありましたので、指定のリポジトリを参照できるように此奴等を変更しちゃいます。
- name: amzn2-core.repo priority down replace: path: /etc/yum.repos.d/amzn2-core.repo regexp: 'priority=10' replace: 'priority=99'
- name: amzn2-extras.repo priority down replace: path: /etc/yum.repos.d/amzn2-extras.repo regexp: 'priority = 10' replace: 'priority=99'
これで大体うまく進んでくれました。
ありがとうございました〜
参考:
RHEL 7 および Amazon Linux 2 で EPEL rpmパッケージをインストールして有効にする
Amazon LinuxでYUMを使う時に気をつけるポイント
想ひ出13 + 1/2 : GCP/StackDriverでAWSと連携 & Logging
おはようございます、moqrinです。
前回は、StackDriverからEC2インスタンスを監視して、アラートをSlackに投げるようにしました。
ついでといってはなんですが、ログ収集もやっておいたという補足内容になります。
サービスアカウントで下記のような設定をお忘れずに。
皆様はワタクシのようにマヌケではないはずなので、やっちまうことはないと思いますが、 ワタクシはログ書き込みにするところを「ログ設定書き込み」にしていたのに気付かず、ひたすらエラーログを見て何故にうまくいかん??と首をひねっていました・・・
エラーログは下記にございます。
/var/log/google-fluentd/google-fluentd.log
トラブルシューティング通り、テストログメッセージを送信して管理画面の確認します。
logger "Some test message"
OKでしたー。
いやはや。。
参考:
想ひ出13: GCP/StackDriverでAWSと連携 & Slackアラート
おはようございます、moqrinです。
今回は簡単なサーバー運用監視をしてみたく、Stackdriverをいじってみました。
Stackdriver、シンプルな画面で使いやすいですよね。
そんなStackdriverでAWSのリソースを監視してSlackアラートを投げたくなったので
やってみました。対象はEC2インスタンスです。
やったこと
1. Stackdriver でAWSと連携する
2. サービス アカウントを作成(エージェントを使用する場合)
3. 鍵をインスタンスに格納する(エージェントを使用する場合)
4. エージェントのインストール
5. Stackdriver でアラートを設定する
6. 確認
7. オマケのUptimeCheckアラート確認
1. Stackdriver でAWSと連携する
この辺は公式通りで、また参考となる記事がいくつもございますので、
そちらをご覧頂ければと思います。
基本的に画面で言われた通りに行えば大丈夫です。
Amazon EC2用のクイックスタート
Google Stackdriver でAWSと連携してみた
2. サービス アカウントを作成
IAMと管理からサービスアカウントを作成します。
今回はモニタリングとログ収集をしたいので、こんな感じで設定します。
(モニタリングはモニタリング指標の書き込みで問題ないと思います。)
サービス アカウント名: Agent service account 役割: モニタリング > [モニタリング編集者] ログ > [ログ書き込み]
3. 鍵をインスタンスに格納する
StackdriverにAWSのリソースが書き込みができるように対象インスタンス上で設定します。
まず、鍵をインスタンスに転送します。
ほんで、秘密鍵ファイル名を下記に変更して
application_default_credentials.json
/etc/google/auth
に格納します。
(ディレクトリがなければ作っちゃいます)
4. エージェントのインストール
Stackdriver Monitoring エージェントと Stackdriver Logging エージェントをインストールします。
curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
sudo bash install-monitoring-agent.sh
curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
sudo bash install-logging-agent.sh
ちなみに、サービスアカウントを入れていないとコケます。
(ワタクシは入れずに進めていて最初コケました・・・。マヌケですねー。。)
エージェントが動作していることを確認します。
ps ax | grep fluentd
ps ax | grep collectd
こんな感じでAGENTタブが増えて表示されますね。
5. Stackdriver でアラートを設定する
ここでドハマりしました。。
なんと、現在(2018/9/20)、AWSのはnew UIじゃないと設定できないという鬼仕様!
どうしても指標が表示されないゾ・・・
new UIにopt in して設定します。
Slackにアラートを投げるようにします。
画面で促される通りに設定すれば特に問題ないのですが、以下参考URLです。 Stackdriver Monitoring でメールや Slack による通知を設定しよう!
6. 確認
とりあえず、サーバーで負荷かけてやります。
yes >> /dev/null
アラートがきます。
負荷止めます。
すると連絡が来ます。
やったーー。
7. オマケのUptimeCheckアラート確認
UptimeCheckの設定をします。
アラートの設定をします。
ところで、これ最短が5分間なんです。
長くない??
nginxだかapacheだかを止めてやります。
systemctl stop httpd
アラートが来ます。
(復活もしています。)
やったーー。
参考:
Amazon EC2用のクイックスタート
Google Stackdriver でAWSと連携してみた
Monitoring エージェントのインストール
Stackdriver Monitoring でメールや Slack による通知を設定しよう!
想ひ出12: GCP/Cloud Storageを使ったDirect Hosting
おはようございます、moqrinです。
今回はよくあるWordpressの「Direct Hostingパターン」です。
静的なコンテンツをGoogle Cloud Storage(以下GCS)から提供します。
Googleさんが作者のGoogle Cloud Storage pluginを使ってバケットにUploadします。
やったこと
1. GCSのバケットを作成
2. GCSにCNAMEを設定
3. pluginを利用するための設定
4. Google Cloud Storage pluginを設定
5. 確認
6. オマケ
1. GCSのバケットを作成
使いたいドメイン名をバケット名にして作成します。
ドメインのオーナーである必要があるので、以前に取得したドメインを利用して、
「cdn.moqrin3.tk」とします。
2. GCSにCNAMEを設定
3. pluginを利用するための設定
公式のマニュアルに書かれている通りですが、
① バケットの権限にallUsersを付与します。
起動する時点で設定しておいてもいいですがw
4. Google Cloud Storage pluginを設定
Wordpressのプラグインインストールで、Google Cloud Storage pluginを
インストールして有効化して設定します。
5. 確認
バッタの画像URLはStorageから!
Storageに入っているー
6. オマケ
IAMと管理でサービスアカウントのCredentialを設定して、
wp-config.phpに書き込む方法もあるね。