Last November, we made relational database migration easier for MySQL users with our public preview of Database Migration Service (DMS). Today, we’ve officially made the product generally available, and bring the same easy-to-use migration functionality to PostgreSQL.

The thing I’ve appreciated the most about diving deep with DMS has been that it just works. Once you get your source instance and database(s) prepared, and establish the connectivity between source and destination, doing the migration is all handled. …


That's a new one to me! At least on this. Generally, I believe that happens when you're trying to use an HTTP service with HTTPS when it's not configured to serve HTTPS traffic. Nothing in this walk through does anything like that, so I'm wondering if perhaps it's something in your application maybe?


There are times when I’m building an application on GCP when I don’t want to use a more traditional datastore like Cloud SQL or Bigtable. Right now, for example, I’m building an app that allows non-technical folks to easily add icons into a build system. I’m not going to write a front-end from scratch, and teaching them source control, while valuable, isn’t really something I wanted to tackle right now. So an easy solution is to use Google Drive. Maybe you never thought of it as a data store…but let’s talk about it here for a minute. …


Hi friends!

Hopefully you’ve already heard about a new product we’ve released: Database Migration Service (DMS). If you haven’t, you should check out the announcement blog. TL;DR, the idea is to make migrating your databases reliably into a fully managed Cloud SQL instance as easy and secure as possible.

I’ll be talking a lot about MySQL (available in preview) and PostgreSQL (available in preview by request, follow this link to sign up) in this post. I’m not leaving SQL Server out in the cold, it’s just that as of the writing of this blog, DMS doesn’t yet support SQL Server…


Hi friends!

This blog is a bit longer than my usual how-to’s, because we’re dealing with a lot of moving parts. We’ve got Cloud SQL, the Cloud SQL Proxy, Docker and containers, Google Container Registry, Kubernetes, and managing secrets like your db credentials in the Cloud so you don’t have to have them exposed in any configuration files or environment variables.

Don’t be intimidated though! I am coming at this from the perspective of a beginner so I’m explaining things in a lot of detail. …


No Docker whales were harmed in the creation of this image.

Hi friends!

This post is an addendum to a blog post I wrote for running a Kubernetes application with the Cloud SQL Proxy running in a sidecar.

In writing that blog, I found myself bouncing all around in order to figure out enough about containers from a position of “I don’t know anything about containers or Kubernetes” (I know, I know, I’ve lived a sheltered life) to being able to confidently get an application running in the Cloud using these tools.

What I want to do is break down creating a container for two very different applications. The first is…


Hi friends!

Whatever the reason may be, there comes a time in most developers’ lives, that we need to show off something we’ve done with a database back-end. While throwing up a database is now much easier than it once was, there still remains the problem of inserting a bunch of fake data. You might be asking, “Why do this! There’s plenty of ways already to do this…” There are online services that will do this for you, but you need to upload your schema, they often aren’t even https sites, and just feel…insecure. There are also I’m sure scripts…


Hi friends!

So, You’ve created your first Cloud SQL instance! But the guide tells you to just connect to it in the cloud shell. Which is awesome. Don’t get me wrong. I LOVE the cloud shell. However, that does you virtually no good when trying to figure out how to connect to your database with your application, or database management tools.

What I’m going to cover in this post is the Where, How and Why of connecting to Cloud SQL.

  1. Where you’re connecting from and how that affects what the docs call “public vs. private” IP and the considerations around…


Hi friends!

This blog is going to walk you through creating a GCE (Google Compute Engine) virtual machine to run a sample application that will connect to a Cloud SQL instance as securely as possible. Via private IP (Cloud SQL instance won’t have a public IP available to reduce attack surface) and using the Proxy to ensure all the SSL connectivity is handled for us. Don’t take this as gospel of “This is how you should do it” because the real world has requirements. Sometimes those requirements mean you don’t get to do all the things, or even SHOULD do…


Hi friends!

This blog is going to walk you through, step-by-step instructions on how to connect to your Cloud SQL instance using the public IP option, and allowing only specific IP addresses to connect. This is arguably the least secure way to create and use a Cloud SQL instance. Everyone has their own tolerances in terms of what they might find safe to do, and for me, I’d never do this in production. Testing, proof of concept, prototyping, all that, sure, absolutely…as long as no sensitive data ends up in that database. …

Gabe Weiss

Husband, father, actor, sword fighter, musician, gamer, developer advocate at Google. Making things that talk to the Cloud. Pronouns: He/Him

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store