別のサーバー(Amazonではない)にインストールされている、使用しているサービスにフックするWebサイトをAmazonec2に移行しました。そのサービスのAPIへのアクセスはIPに制限されており、PHPで*http_build_query*および*stream_context_create*を使用してXMLデータを送信することによって行われます。
新しいサーバーからサービスに接続する場合は、最初に新しいIPを追加するようにベンダーに依頼する必要があります。私はElasticIPを送信することでそれを行いましたが、機能しません。デバッグしようとしているときに、$ _SERVER['SERVER_ADDR']の出力がec2インスタンスのプライベートIPであることに気付きました。反対側のサーバーが同じデータを受信していると想定しているため、プライベートIPを認証しようとします。プライベートIPからのアクセスも許可するようにベンダーに依頼しました。まだ実装されていないため、問題が解決するかどうかはわかりませんが、APIの動作を理解している限り、次のようになります。データを解析して、接続元のIPに戻します。これは、サーバーがAmazonクラウドの外部にあるため不可能です。
私はここで本当に明白な何かを見逃すかもしれません。rc.local(ec2インスタンスでCENT OSを実行)にec2-associate-addressを使用して起動時にElastic IPをサーバーに関連付けるコマンドを追加しました。これは、別の外部サーバーへのMySQL接続を機能させるのに役立つようです。しかし、上記のAPIでは運がありません。
1つを除外すると、APIはHTTPSを介してアクセスされ、セキュリティグループでポート80と443(およびmysqlポート)が有効になってテストされます。ドメインとSSLは正常に実行されています。
ヒントは高く評価されています-私はすでにたくさん検索しましたが、これまでのところ有用なものは見つかりませんでした。