Panduan Lengkap: Deploy Aplikasi GraphQL Serverless dengan AWS

Temukan cara mudah untuk deploy aplikasi GraphQL serverless dengan AWS! Panduan lengkap ini akan membawa Anda langkah demi langkah untuk sukses. Jangan lewatkan!

By WGS INDONESIA
4.9/4.9
Indonesia
Rp 43,750.00 GRATIS
E-COURSE banner with text and icons representing Artificial Intelligence and video learning

Detail Pembelajaran

Panduan Lengkap: Deploy Aplikasi GraphQL Serverless dengan AWS
  • Panduan, Teknologi, GraphQL, Serverless, AWS, Deployment

Baca Online

Panduan Lengkap: Deploy Aplikasi GraphQL Serverless dengan AWS

Daftar Isi

  1. Pengantar GraphQL dan Serverless
  2. Persiapan Lingkungan dan Akun AWS
  3. Membuat Proyek GraphQL Serverless
  4. Struktur Proyek dan Penjelasan Kode
  5. Deploy Aplikasi ke AWS Lambda dan API Gateway
  6. Testing dan Debugging
  7. Sumber Belajar dan Referensi

1. Pengantar GraphQL dan Serverless

GraphQL adalah sebuah query language untuk API yang memungkinkan client untuk meminta data secara fleksibel dan efisien. Serverless adalah arsitektur cloud yang memungkinkan Anda menjalankan aplikasi tanpa harus mengelola server secara langsung.

Dalam panduan ini, kita akan belajar bagaimana membuat aplikasi GraphQL yang berjalan secara serverless menggunakan AWS Lambda dan API Gateway. Dengan pendekatan ini, Anda dapat menghemat biaya dan meningkatkan skalabilitas aplikasi.

Diagram arsitektur GraphQL serverless yang menunjukkan client, AWS API Gateway, AWS Lambda, dan database

2. Persiapan Lingkungan dan Akun AWS

Sebelum memulai, pastikan Anda sudah memiliki:

  • Akun AWS aktif dengan akses ke AWS Lambda dan API Gateway
  • Node.js versi 16 atau lebih baru terinstall di komputer Anda
  • npm atau yarn sebagai package manager
  • Editor kode seperti VSCode

Jika belum memiliki akun AWS, Anda dapat mendaftar di https://aws.amazon.com/ .

Tampilan layar login AWS Console dengan form email dan password

3. Membuat Proyek GraphQL Serverless

Kita akan menggunakan Apollo Server dan Serverless Framework untuk membangun dan deploy aplikasi GraphQL.

Langkah 1: Inisialisasi proyek baru

npx create-serverless-app graphql-serverless-app
cd graphql-serverless-app
      

Langkah 2: Install dependencies

npm install apollo-server-lambda graphql serverless serverless-offline
      

Langkah 3: Buat file handler.js untuk server GraphQL

const { ApolloServer, gql } = require('apollo-server-lambda');

const typeDefs = gql\`
  type Query {
    hello: String
  }
\`;

const resolvers = {
  Query: {
    hello: () => 'Halo dari GraphQL Serverless!',
  },
};

const server = new ApolloServer({
  typeDefs,
  resolvers,
  playground: true,
  introspection: true,
});

exports.graphqlHandler = server.createHandler();
      

Langkah 4: Buat file serverless.yml untuk konfigurasi deploy

service: graphql-serverless-app

provider:
  name: aws
  runtime: nodejs16.x
  region: us-east-1

functions:
  graphql:
    handler: handler.graphqlHandler
    events:
      - http:
          path: graphql
          method: post
      - http:
          path: graphql
          method: get

plugins:
  - serverless-offline
      
Tampilan editor kode VSCode dengan kode JavaScript Apollo Server dan Serverless Framework

4. Struktur Proyek dan Penjelasan Kode

Berikut adalah struktur folder dan file utama proyek:

graphql-serverless-app/
├── handler.js
├── package.json
├── serverless.yml
└── node_modules/
      

Penjelasan kode utama di handler.js :

  • typeDefs: Mendefinisikan schema GraphQL, di sini hanya ada query hello yang mengembalikan string.
  • resolvers: Fungsi yang meng-handle query, mengembalikan string "Halo dari GraphQL Serverless!" saat query hello dipanggil.
  • ApolloServer: Membuat instance server GraphQL yang kompatibel dengan AWS Lambda.
  • exports.graphqlHandler: Handler Lambda yang akan dipanggil oleh API Gateway.

Penjelasan konfigurasi di serverless.yml :

  • service: Nama layanan serverless.
  • provider: Menentukan AWS sebagai provider dan runtime Node.js 16.
  • functions: Mendefinisikan fungsi Lambda bernama graphql dengan handler handler.graphqlHandler .
  • events: Menghubungkan fungsi dengan HTTP API Gateway pada path /graphql untuk metode GET dan POST.
  • plugins: Menggunakan plugin serverless-offline untuk testing lokal.

5. Deploy Aplikasi ke AWS Lambda dan API Gateway

Langkah 1: Login ke AWS CLI

aws configure
      

Masukkan Access Key ID , Secret Access Key , region (misal: us-east-1 ), dan format output (misal: json ).

Langkah 2: Deploy menggunakan Serverless Framework

npx serverless deploy
      

Setelah deploy selesai, Anda akan mendapatkan URL endpoint API Gateway untuk GraphQL.

Langkah 3: Jalankan server secara lokal (opsional)

npx serverless offline
      

Ini akan menjalankan server GraphQL di http://localhost:3000/graphql sehingga Anda bisa testing tanpa deploy ke AWS.

Tampilan dashboard AWS Lambda dan API Gateway di AWS Console

6. Testing dan Debugging

Anda dapat menguji endpoint GraphQL menggunakan tools seperti:

  • Apollo Sandbox - editor GraphQL online resmi dari Apollo.
  • Postman - aplikasi testing API yang mendukung GraphQL.
  • curl di terminal:
    curl -X POST https://your-api-id.execute-api.us-east-1.amazonaws.com/graphql \
    -H "Content-Type: application/json" \
    -d '{"query":"{ hello }"}'
              

Jika ada error, cek log Lambda di AWS CloudWatch untuk debugging.

Tampilan Apollo Sandbox dengan query GraphQL { hello } dan hasil response

7. Sumber Belajar dan Referensi

Logo YouTube The Net Ninja, AWS, dan ikon dokumentasi resmi GraphQL dan Serverless Framework

Edukasi Terkait