Итак, вот шаги, которые я предпринял в AWS, чтобы убедиться, что это работает на моих экземплярах Tomcat Docker для соединения JDBC.
Вам не нужно запускать -p 1521: 1521, поскольку контейнер докера является только экземпляром Tomcat и не содержит Oracle.
Убедитесь, что вы установили файл application.properties (ниже приведен пример)
spring.datasource.url=jdbc:oracle:thin:@//< DNS name for RDS>:1521/<SID>
spring.datasource.username=<oracle db username>
spring.datasource.password=< oracle db password for username>
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
#hibernate config
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
#spring.data.rest.base-path=/api
spring.data.rest.default-page-size: 20
Затем убедитесь, что ваша группа безопасности RDS настроена так, чтобы разрешить конкретный IP-адрес ваших экземпляров EC2. Я бы не рекомендовал открываться всем.
Далее обязательно откройте группу безопасности для экземпляра EC2 для 1521.
Так и должно быть. Проблема, с которой я столкнулся, заключалась в том, что группа безопасности RDS не была специально настроена для моего экземпляра EC2.
Вы также можете установить SQLplus, используя RPM-пакеты от Oracle, чтобы также проверить ваше соединение.
Пример команды будет:
sqlplus '<username>/<password>@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=<aws DNS name>)(Port=1521))(CONNECT_DATA=(SID=<name of SID>)))'