Some notes when I deploy my project to Google Cloud

Một vài note khi deploy ứng dụng trên Compute Engine

1. Cloud SQL

  • Phần này giúp tạo database MySQL kể các ứng dụng kết nối đến.

Một điểm chú ý là Cloud SQL mặc định sẽ không kết nối với gì. Nếu bạn muốn kết nối vào Cloud SQL, bạn cần thêm địa chỉ IP của bạn vào Cloud SQL

  1. Open the navigation menu. Under Storage, click SQL
  1. Click the name of the SQL instance that you want to connect

  2. Click the Connections tab

  3. Click Add network

  4. Enter the static IP address of your VM instance

  5. Click Done and Save

Your SQL instance will now accept connections from your VM instance.

Với máy cá nhân, bạn có thể xem địa chỉ IP của mình tại: http://ipv4.whatismyv6.com/

Chi tiết xem tại đây

Kết nối cái này để kết nối với các tools quản lý MySQL như Workbench

  • Kết nối được với VM (xem docs trên trang chủ luôn vì nó khá ez)

2. Chú ý Firewall trên VM instance

Mặc định nó chỉ mở tcp cồng 80, nếu bạn muốn deploy cổng khác: 81 chẳng hạn, thì cần edit rule này

Để chỉnh sửa firewall, phần navigation menu, chọn VPC network => Firewall rules

3. Lỗi 500 khi deploy

Lỗi này xuất hiện do 2 nguyên nhân:

  • Bạn chưa cấp quyền đủ cho thư mục
  • Phiên bản PHP đang chưa đúng (phiên bản PHP trong Apache2 nhé chứ không phải là CLI)

4. Cloud Storage

Một lưu ý là mặc định, các file đang có phạm vi truy cập là “Not public”

  • Public - object can be accessed or edited by all users on the public internet.
  • Not public - object can be accessed only by approved users.
  • Per object - access to a folder’s contents is set at the object level. Folder may contain publicly accessible objects

Để nó có phạm vi public có thể truy cập ở mọi nơi, chúng ta cần điều chỉnh phạm vi truy cập của file
https://laravel.com/docs/6.x/filesystem#file-visibility

1
2
3
4
5
6
7
8
9
public function storeAvatar($file)
{
$avtPath = $file->store('avatars');

# Ref: https://laravel.com/docs/6.x/filesystem#file-visibility
Storage::setVisibility($avtPath, 'public');

return substr($avtPath, 8);
}

5. Connect Cloud MySQL với Workbench

Về cơ bản, nó sẽ như sau:

  1. Bạn thực hiện Note 1, cung cấp quyền kết nối từ địa chỉ IP của bạn đến Cloud MySQL
  2. Khi thực hiện xong bước 1, chỉ cần config như các DB khác bình thường thôi

Ref: https://cloud.google.com/sql/docs/mysql/admin-tools

Author

Ming

Posted on

2020-02-06

Updated on

2021-04-10

Licensed under

Comments