0

(Fargate を使用して) Amazon ECS にデプロイされたアプリケーションは、サーバーレス Aurora DB との接続の問題に直面しています。踏み台ホスト、パブリック IP および SSH トンネルを備えた同じ VPC 内の EC2 インスタンスを使用して、このサーバーレス DB に正常に接続できます。DB 接続はprovisionedEngineMode では正常に機能しserverlessますが、次のエラーがスローされます。

2020-11-23 10:31:09.378 ERROR [main] com.zaxxer.hikari.pool.HikariPool request-id: ; user-id:  - jdbc:mysql:aurora://db-cluster-endpoint.us-west-2.rds.amazonaws.com:3306/test_service - Exception during pool initialization. 
java.sql.SQLNonTransientConnectionException: Communications link failure with primary. No active connection found for master. 
    at org.mariadb.jdbc.internal.failover.AbstractMastersListener.throwFailoverMessage(AbstractMastersListener.java:559)
    at org.mariadb.jdbc.internal.failover.impl.MastersSlavesListener.checkInitialConnection(MastersSlavesListener.java:350)
    ...
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)

DB クラスター構成: 自動一時停止機能を無効にし、2 つのインスタンスが常に稼働するようにクラスターを構成しました。RDS (AWS コンソール) で CPU 使用率とキャパシティ ユニット 2 を確認できます。

Type: AWS::RDS::DBCluster
Properties:
  BackupRetentionPeriod: !Ref DbBackupRetentionPeriod
  DBClusterParameterGroupName: !Ref DbClusterParameterGroup
  DBSubnetGroupName: !Ref DbSubnetGroup
  Engine: aurora-mysql
  EngineMode: serverless
  ScalingConfiguration:
    AutoPause: false
    MinCapacity: 2
    MaxCapacity: 32

データソース構成:

<bean name="dataSource" class="com.zaxxer.hikari.HikariDataSource">
    <property name="jdbcUrl"
              value="#{'jdbc:mysql:aurora') + '//${database.host}:${database.port:3306}/${database.name}'}"/>
    <property name="username" value="${database.username}"/>
    <property name="password" value="${database.password}"/>
    <property name="driverClassName" value="org.mariadb.jdbc.Driver"/>

解決済み:

問題は、クライアントが DB 接続を確立するために使用していたユーザーのアクセス制限にありました。

4

0 に答える 0