あったらしくるえるはてなくしょん

id:kskmeuk あったらしく

AWS の EC2 インスタンスからの、RDS for Oracle 接続

Oracle とかとても久しぶりに珍しくちょっとだけ検証で使ったので。こういうとき、有り難いですね。AWS

まずは、AWS のアナウンス

Amazon Web Services ブログ: Amazon RDS for Oracle DatabaseでOracle Enterprise Manager (OEM) を利用可能に!
安心の公式から。あと気をつけることは、当たり前過ぎて記載はとくにないようですが、セキュリティグループの設定でそれぞれポートをあけないとつながらなくて焦るはめになりますので、ご注意を。OEM 使う場合は1158 を、普通に接続のポートつかうときは1521使うとかで、それぞれご注意ください。それから、OEM 使う場合は、 micro インスタンスじゃだめで、small 以上使う必要があるようですね。OEM というのは、ざっくりですけど、phpmyadmin とか adminer 的なあれです。重いですけどね。

手順とライブラリ取得、接続や設定。

【AWS】Amazon LinuxにOracle Instant Clientをインストールする(Chefレシピ付) | DevelopersIO
安心の、クラスメソッド先生のブログも手順が参考になります。とくに接続先設定や、ライブラリの取得場所等、参考になりました。Amazon Linux など使っていて、rpm で行ける場合、あと chef ご利用の場合はこちらがとても参考になるかと存じます。

逆に、ubuntu とかを好む方の場合で、PATH 設定とかを知りたい方の場合は、
Oracle on Amazon RDSを使ってみた - log4moto
こちらが参考になるかと存じます。

私には、tnsnames.ora 書いて接続する方が Oracle の流儀に感じられたのでそちらは上のリンク先を参考にPATHについては下のリンク先を参照させていただきました。
実際やってて、間違えたりしたことは、

  • Oracle の sqlplus 他をダウンロードする場合は要登録。リンク先 wget したら変なのつかまえてたw
  • 私はPECL でいれましたが、php の oci8 をインストールして使う場合は、sdk の header も取得する必要あり。ないとこける。
  • libaio1 などのいくつか追加ライブラリを入れる必要と、libclntsh.so -> libclntsh.so.11.1 として、シンボリックリンクはる必要がある

このあたりがちょっとひっかかりました。あとはつながれば、もちろん追い込めばいろいろですが、SQL のところはだいたいイメージ出来るのと同じなので、どうにかこうにかと。Oracle とか超ど級要塞感ありますね…。オープンソースプロダクトでいくつか db あるのとか、有り難いことだと思います。未来はどうなるかわからないところもありますが。

あとは、
Amazon RDS for Oracle への接続 - yoshidashingo
ざっくりと、接続のしかたのまとめの俯瞰に、上記記事がよろしいかと。em ね、https なんですよね。

では、良い人生を。