Skip to content

Google App Engine

Chetabahana edited this page Feb 27, 2019 · 94 revisions

Pada sesi ini kita akan bahas tentang cara tampilkan Frontend di GAE.

Table of Contents

Layanan

Konfigurasi

URL dari aplikasi (Rute):

  • URL dari aplikasi (default): http://<app-version>.<application-id>.appspot.com
  • URL (service): http://<app-version>.<service-name>-dot-<application-id>.appspot.com

GAE Region

Layanan tersedia untuk Region berikut:

[1] asia-east2    (supports standard and flexible)
[2] asia-northeast1 (supports standard and flexible)
[3] asia-south1   (supports standard and flexible)
[4] australia-southeast1 (supports standard and flexible)
[5] europe-west   (supports standard and flexible)
[6] europe-west2  (supports standard and flexible)
[7] europe-west3  (supports standard and flexible)
[8] northamerica-northeast1 (supports standard and flexible)
[9] southamerica-east1 (supports standard and flexible)
[10] us-central    (supports standard and flexible)
[11] us-east1      (supports standard and flexible)
[12] us-east4      (supports standard and flexible)
[13] us-west2      (supports standard and flexible)

Setelan

Limit Aplikasi

Jumlah limit services and versi

  • Maksimum service per aplikasi: 5 (Gratis), 105 (Berbayar)
  • Maksimum versi per aplikasi: 15 (Gratis), 210 (Berbayar)
  • Maksimum Instance per manual/basic: 20 (Gratis), 25 (Berbayar), 200 (Berbayar kusus us-central)

Dispatch URL

#gcloud app deploy dispatch.yaml
dispatch:
  # Default service serves the typical web resources and all static resources.
  - url: "*/img/favicon.ico"
    service: default

  # Send to portfolio
  - url: "*/konsep/portfolio/*"
    service: portfolio

  # Send to Frontstore
  - url: "*/product/*"
    service: product

  # Send to wordpress
  - url: "*/blog/*"
    service: wordpress

  # Send to reverse-proxy
  - url: "*/ansible/*"
    service: proxy

  # Default service serves simple hostname request.
  - url: "www.chetabahana.com/*"
    service: default

Service

Default

File app.yaml

runtime: python37
instance_class: F1
default_expiration: "365d"

handlers:
# site root
- url: /
  static_files: index.html
  upload: index.html
  
- url: /(.*)
  static_files: \1
  upload: .*

- url: /.*
  secure: always
  redirect_http_response_code: 301
  script: auto

Portfolio

File app.yaml

runtime: python27
api_version: '1'
env: standard
threadsafe: true
service: portfolio
handlers:
- url: /konsep/portfolio/
  static_files: _build/html/index.html
  upload: _build/html/index.html
  secure: always
  # login: admin

- url: /konsep/portfolio/
  static_dir: _build/html
  secure: always
  # login: admin

- url: /konsep/portfolio/(.*\.(gif|png|jpg|ico|js|css|html))
  static_files: /
  upload: _build/html/(.*\.(gif|png|jpg|ico|js|css|html))
  secure: always
  # login: admin

skip_files:
- ^parts
- ^bootstrap.py
- ^env$
- ^buildout.cfg
- ^downloads$
- ^eggs$
- ^bin$
- .installed.cfg
- develop-eggs
- ^venv
Instalasi via Cloud Shell
cd .. 
rm -rf portfolio 
git clone https://github.com/chetabahana/portfolio.git 
cd portfolio 
sh install.sh
Output shell logs

Frontstore

Untuk Frontend dari Fronstore kita pakai Build Image.

Instal Image Saleor

Konfigurasi pemasangan di Console lihat Deploying Containers


Catatan:

  • Untuk memasang image kita perlu satu instance tersendiri. GCE hanya ijinkan satu image per instance. Seperti telah dijelaskan dia atas untuk GraphSQL, postgres, MySQL dan redis kita bisa pasang sekaligus dalam satu instance lainnya.
  • Dengan demikian Billing Free untuk f1-micro kita hanya bisa pakai di salah satu instance dan kita juga tidak bisa pasang saleor non container bersama yang lain karena build size nya yg besar (kisaran 1GB) sehingga kemungkinan besar Free 30GB-month akan terlampaui.
  • Bila kredit gratis sudah habis atau expired maka Kita bisa hentikan salah satunya supaya tidak kena tagihan bulanan. Karena Instalasi MySQL dipakai oleh Wordpress maka yg kita bisa hentikan adalah instance image saleor.
  • Biaya instance GCE terendah adalah $4.28 per bulan. Jika Bisnis Anda berjalan tentu tagihan ini semakin ringan malah bisa ditingkatkan lagi jenis layanannya.

Kita sudah bahas di Instalasi di GAE jika pemasangan tidak dapat dilakukan di GAE Standard. Jadi kita pasang di GAE Flexible supaya transaksi bisa dilakukan dalam satu host.

Seperti halnya Portfolio kita akan tampilkan via disptach di GAE dengan menyetel template halaman sesuai halaman utama.

Wordpress

Salah satu kelebihan dari GAE Standar adalah kita bisa setel Batas Biaya Harian. Karenanya untuk memperkaya Site maka diluar Frontend dari Portfolio dan Frontstore kita perlu pasang juga untuk menampilkan layanan lain seperti Blog, Panduan dll.

Namun jika dia memerlukan instance MySQL di Cloud SQL sementara kita sudah pasang Postgres maka ongkosnya tidak akan efektif karena secara keseluruhan hanya sebagai penunjang.

Solusi yang dapat dilakukan agar tidak perlu pasang instance MySQL adalah:

Reverse Proxy

Sepanjang bisa dilakukan maka sebaiknya aplikasi dipasang di GAE Standard.

Apabila tidak bisa maka jika tidak harus pasang di GAE Fleksibel (misal tidak perlu transaksi di domain utama), akan lebih hemat jika dilakukan pakai type GCE yang Always Free dan disetel sbb:

  • Pakai 1 non-preemptible f1-micro VM US regions dengan manual instance
  • Pasang dan operasikan HDD dibawah 30 GB-months
Namun supaya Frontend nya berada dalam domain maka tampilan bisa tetap dimunculkan via disptach dengan memasang Reverse Proxy atau https proxy di GAE.

Referensi

Project Tutorial

You are on the wiki of our repo

Chetabahana Project

Clone this wiki locally