You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否免费关联Google Cloud SQL与Amazon Elastic Beanstalk及配置方法

能否免费关联Google Cloud SQL?

没问题,完全可以免费关联,但要先留意Google Cloud SQL的免费额度限制:Google提供了Cloud SQL的免费试用套餐(比如针对MySQL的db-f1-micro实例,每月有固定的免费使用时长和存储额度),只要你的使用量在免费额度范围内,就可以免费使用。超出额度会按标准计费,建议提前确认清楚Google Cloud的免费条款细节。

下面分步骤讲解如何配置AWS Elastic Beanstalk和你的Spring MVC项目,实现对Google Cloud SQL的访问:

第一步:配置Google Cloud SQL允许AWS Elastic Beanstalk访问

  • 获取EB环境的公网IP/IP段:
    登录AWS控制台进入Elastic Beanstalk,找到你的目标环境,查看实例的公网IP;如果是负载均衡架构的环境,就获取负载均衡的IP。要是担心实例重启后IP变化,直接拿EB所在VPC的出站IP范围会更稳定,也可以通过AWS CLI命令aws elasticbeanstalk describe-environments --environment-name YOUR_ENV_NAME来查询相关IP信息。
  • 授权EB访问Cloud SQL:
    登录Google Cloud控制台,进入你的Cloud SQL实例,打开「连接」标签页。在「网络」区域点击「添加网络」,输入一个自定义名称(比如AWS-EB-Access),把刚才获取的AWS IP/IP段填进去,点击保存。同时要确保你的Cloud SQL实例已经开启了公网IP访问(免费场景下公网访问配置最简单)。
  • 确认数据库用户权限:
    确保你有一个可以从外部访问的数据库用户(比如自定义用户或root),设置了正确的密码,并且该用户拥有目标数据库的读写权限。

第二步:配置AWS Elastic Beanstalk环境变量

为了避免硬编码数据库信息,推荐用EB的环境变量来存储敏感配置:

  • 登录AWS控制台进入EB目标环境,点击「配置」→「软件」。
  • 在「环境属性」区域添加以下变量:
    • DB_URL:Google Cloud SQL的JDBC连接URL,MySQL格式为jdbc:mysql://[CLOUD_SQL_PUBLIC_IP]:3306/[YOUR_DB_NAME]?useSSL=true&requireSSL=true;PostgreSQL格式为jdbc:postgresql://[CLOUD_SQL_PUBLIC_IP]:5432/[YOUR_DB_NAME]?sslmode=require
    • DB_USERNAME:Cloud SQL的数据库用户名
    • DB_PASSWORD:Cloud SQL的数据库用户密码
  • 点击「应用」保存配置,EB会自动重启环境加载这些变量。

第三步:配置Spring MVC项目连接数据库

修改你的Spring MVC项目配置,读取EB的环境变量来建立数据库连接:

  • 如果使用application.properties(或application.yml):
    spring.datasource.url=${DB_URL}
    spring.datasource.username=${DB_USERNAME}
    spring.datasource.password=${DB_PASSWORD}
    # MySQL驱动,PostgreSQL则替换为org.postgresql.Driver
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
  • 如果是传统XML配置(比如applicationContext.xml):
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="#{systemEnvironment['DB_URL']}"/>
        <property name="username" value="#{systemEnvironment['DB_USERNAME']}"/>
        <property name="password" value="#{systemEnvironment['DB_PASSWORD']}"/>
    </bean>
    
  • 确保项目包含对应数据库的驱动依赖,比如Maven的pom.xml中添加:
    <!-- MySQL驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.33</version>
    </dependency>
    <!-- PostgreSQL驱动(如果用PostgreSQL则启用) -->
    <!-- <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.6.0</version>
    </dependency> -->
    
  • 重新打包WAR包,部署到Elastic Beanstalk即可完成配置。

额外注意事项

  • 强制SSL连接:Google Cloud SQL要求外部连接必须使用SSL,所以JDBC URL里一定要包含SSL相关参数,否则会连接失败。
  • IP稳定性:如果EB实例会自动扩容或重启换IP,建议把AWS VPC的CIDR段添加到Cloud SQL的授权网络里,或者使用AWS NAT网关的固定IP,避免连接中断。
  • 免费额度监控:定期查看Google Cloud的账单页面,确保Cloud SQL的使用量在免费额度内,避免产生意外扣费。

内容的提问来源于stack exchange,提问作者Venkatraman Muthukrishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:39:16