2014年10月1日水曜日

AWSのアカウントを二つ持っていて、片方から片方のRDSに接続する方法的なお話

  • このエントリーをはてなブックマークに追加

まんまタイトル通りのお話。
AWSでサービスを作る際に、サーバ単位で請求明細が出るわけではなく、
アカウント一括で請求が出るのでわかりにくかったりする。
だからサービス毎にアカウントを分けて、サービス毎にサーバ代がどれくらいだろうなって判断すると楽なんだけど、
その際にAっていうアカウントのRDSにBから接続するってことが実は出来なかったりする。

ってことで今回それを解決するための方法をいくつか試してみたのでその話をば。

■VPCの設定を行う

ぶっちゃけかなり面倒なのでというかややこしい話っぽいので今回は行わず。
http://recipe.kc-cloud.jp/archives/702
というかそもそもVPCで他のアカウントとの接続が出来るのかもよくわからない。。。

ってことで他の方法をば。


■RDSのホワイトリストの設定を行う

RDSのセキュリティーグループの設定画面でどこからの接続を許可するのかっていうのがあるので、
こちらで諸々と設定する事が実は出来たりする。

EC2 Security GroupはどのAWSアカウントの、どのセキュリティーグループからのアクセスか。
これをつるっと設定しようと思ったんだけど、VPC的なものなのかよくわからないけどできず。。。
実際にアカウント同士で連携をするのは難しいのかなんなのかって感じだった。

で、CIDR/IPでどのIPからのアクセスかを指定することによって対応出来た。
IPっていうぐらいだからグローバルIPじゃないとダメとか、
違うアカウントのインスタンスのものとか指定出来ないんじゃないかって思っちゃうんだけど、大丈夫だったりする。
多分AWSのネットワーク内だからってことなんだと思うけど。
なのでEC2のインスタンスのパブリックIPをここに指定してあげればOK。

※ただ注意するべき点としては、
・インスタンスの再起動
・オートスケーリングなどELBを使っている場合
都度インスタンスのパブリックIPをRDSのセキュリティーグループに設定しないとダメなので、
そうしたこれらに対応するなら何かプログラム組むなり手動でがんばるしかないので面倒だったりはするけど。


ってな感じで違うアカウントのRDSに接続するにはCIDR/IPでインスタンスのパブリックIPを指定してあげれば大丈夫。
そのかわり都度設定しないとダメだよっていう感じ。

けどまぁ普通に考えればRDSはこっちのアカウント、EC2はこっちのアカウントとかってことはやらないはずなんだけど。
サービスが増えたからサービス毎にアカウントを分離させる際に、仕組み上うまくわけれないとか、
時間がかかるのでというときはこういう風に応急処置的な感じでやるんだろうなぁって感じだったりするよ的なみたいな。

Adsense