Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan aplikasi multi-stack menggunakan AWS CDK dengan TypeScript
Dr. Rahul Sharad Gaikwad, Amazon Web Services
Ringkasan
Pola ini menyediakan step-by-step pendekatan untuk penerapan aplikasi di Amazon Web Services (AWS) menggunakan AWS Cloud Development Kit (AWS CDK) dengan. TypeScript Sebagai contoh, pola tersebut menyebarkan aplikasi analitik real-time tanpa server.
Pola membangun dan menyebarkan aplikasi tumpukan bersarang. CloudFormation Tumpukan AWS induk memanggil tumpukan turunan, atau bersarang,. Setiap tumpukan anak membangun dan menerapkan sumber daya AWS yang ditentukan dalam tumpukan. CloudFormation AWS CDK Toolkit, perintah antarmuka baris perintah (CLI)cdk, adalah antarmuka utama untuk tumpukan. CloudFormation
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
Virtual Private Cloud (VPC) dan subnet yang ada
AWS CDK Toolkit diinstal dan dikonfigurasi
Seorang pengguna dengan izin administrator dan satu set kunci akses.
Node.js
Antarmuka Baris Perintah AWS (AWS CLI)
Batasan
Karena AWS CDK menggunakan AWS CloudFormation, aplikasi AWS CDK tunduk pada kuota CloudFormation layanan. Untuk informasi selengkapnya, lihat CloudFormation kuota AWS.
Versi produk
Pola ini telah dibangun dan diuji menggunakan alat dan versi berikut.
Perangkat AWS CDK 1.83.0
Node.js 14.13.0
npm 7.0.14
Pola tersebut harus berfungsi dengan versi AWS CDK atau npm apa pun. Perhatikan bahwa Node.js versi 13.0.0 hingga 13.6.0 tidak kompatibel dengan AWS CDK.
Arsitektur
Tumpukan teknologi target
Konsol AWS Amplify
Amazon API Gateway
AWS CDK
Amazon CloudFront
Amazon Cognito
Amazon DynamoDB
Amazon Data Firehose
Amazon Kinesis Data Streams
AWS Lambda
Amazon Simple Storage Service (Amazon S3)
Arsitektur target
Diagram berikut menunjukkan penerapan aplikasi multi-tumpukan menggunakan AWS CDK dengan. TypeScript

Diagram berikut menunjukkan arsitektur contoh aplikasi real-time tanpa server.

Alat
Alat
AWS Amplify Console adalah pusat kendali untuk penerapan web dan aplikasi seluler fullstack di AWS. Hosting Konsol Amplify menyediakan alur kerja berbasis git untuk hosting aplikasi web nirserver fullstack dengan deployment kontinu. UI Admin adalah antarmuka visual untuk pengembang web dan seluler frontend untuk membuat dan mengelola backend aplikasi di luar konsol AWS.
Amazon API Gateway adalah layanan AWS untuk membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs pada skala apa pun.
AWS Cloud Development Kit (AWS CDK) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
AWS CDK Toolkit adalah kit pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan aplikasi AWS CDK Anda. Perintah
cdkCLI adalah alat utama untuk berinteraksi dengan aplikasi AWS CDK Anda. Ini menjalankan aplikasi Anda, menginterogasi model aplikasi yang Anda tentukan, dan memproduksi serta menerapkan CloudFormation template AWS yang dihasilkan oleh AWS CDK.Amazon CloudFront adalah layanan web yang mempercepat distribusi konten web statis dan dinamis, seperti.html, .css, .js, dan file gambar. CloudFront mengirimkan konten Anda melalui jaringan pusat data di seluruh dunia yang disebut lokasi tepi untuk latensi yang lebih rendah dan peningkatan kinerja.
Amazon Cognito menyediakan otentikasi, otorisasi, dan manajemen pengguna untuk web dan aplikasi seluler Anda. Pengguna Anda dapat masuk secara langsung atau melalui pihak ketiga.
Amazon DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang memberikan kinerja yang cepat dan dapat diprediksi dengan skalabilitas yang mulus.
Amazon Data Firehose adalah layanan yang dikelola sepenuhnya untuk mengirimkan data streaming
real-time ke tujuan seperti Amazon S3, Amazon Redshift, OpenSearch Amazon Service, Splunk, dan titik akhir HTTP kustom atau titik akhir HTTP apa pun yang dimiliki oleh penyedia layanan pihak ketiga yang didukung. Amazon Kinesis Data Streams adalah layanan untuk mengumpulkan dan memproses aliran besar catatan data secara real time.
AWS Lambda adalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda gunakan—tidak ada biaya saat kode Anda tidak berjalan.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Kode
Kode untuk pola ini terlampir.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Instal AWS CDK Toolkit. | Untuk menginstal AWS CDK Toolkit secara global, jalankan perintah berikut.
| DevOps |
Verifikasi versinya. | Untuk memverifikasi versi AWS CDK Toolkit, jalankan perintah berikut.
| DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Siapkan kredensil. | Untuk mengatur kredensil, jalankan
| DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Unduh kode proyek terlampir. | Untuk informasi selengkapnya tentang direktori dan struktur file, lihat bagian Informasi tambahan. | DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Bootstrap lingkungan. | Untuk menerapkan CloudFormation template AWS ke akun dan Wilayah AWS yang ingin Anda gunakan, jalankan perintah berikut.
Untuk informasi selengkapnya, lihat dokumentasi AWS. | DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Bangun proyek. | Untuk membangun kode proyek, jalankan | DevOps |
Deploy proyek. | Untuk menyebarkan kode proyek, jalankan |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Verifikasi pembuatan tumpukan. | Di AWS Management Console, pilih CloudFormation. Di tumpukan untuk proyek, verifikasi bahwa tumpukan induk dan dua tumpukan anak telah dibuat. | DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kirim data ke Kinesis Data Streams. | Konfigurasikan Akun AWS Anda untuk mengirim data ke Kinesis Data Streams menggunakan Amazon Kinesis Data Generator (KDG). Untuk informasi selengkapnya, lihat Amazon Kinesis Data Generator | DevOps |
Buat pengguna Amazon Cognito. | Untuk membuat pengguna Amazon Cognito, unduh templat cognito-setup.json CloudFormation dari bagian Buat Pengguna Amazon Cognito di halaman bantuan Kinesis Data Generator. Tab Output mencantumkan URL Kinesis Data Generator. | DevOps |
Masuk ke Kinesis Data Generator | Untuk masuk ke KDG, gunakan kredenal Amazon Cognito yang Anda berikan dan URL Kinesis Data Generator. | DevOps |
Uji aplikasi. | Di KDG, di Rekam template, Template 1, tempel kode uji dari bagian Informasi tambahan, dan pilih Kirim data. | DevOps |
Uji API Gateway. | Setelah data tertelan, uji API Gateway dengan menggunakan | DevOps |
Sumber daya terkait
Referensi
Informasi tambahan
Direktori dan detail file
Pola ini mengatur tiga tumpukan berikut.
parent-cdk-stack.ts— Tumpukan ini bertindak sebagai tumpukan induk dan memanggil dua aplikasi anak sebagai tumpukan bersarang.real-time-analytics-poc-stack.ts— Tumpukan bersarang ini berisi infrastruktur dan kode aplikasi.real-time-analytics-web-stack.ts— Tumpukan bersarang ini hanya berisi kode aplikasi web statis.
File penting dan fungsinya
bin/real-time-analytics-poc.ts— Titik masuk aplikasi AWS CDK. Ini memuat semua tumpukan yang didefinisikan di bawahlib/.lib/real-time-analytics-poc-stack.ts— Definisi stack (real-time-analytics-poc) aplikasi AWS CDK.lib/real-time-analytics-web-stack.ts— Definisi stack (real-time-analytics-web-stack) aplikasi AWS CDK.lib/parent-cdk-stack.ts— Definisi stack (parent-cdk) aplikasi AWS CDK.package.json— manifes modul npm, yang mencakup nama aplikasi, versi, dan dependensi.package-lock.json— Dipelihara oleh npm.cdk.json— Toolkit untuk menjalankan aplikasi.tsconfig.json- TypeScript Konfigurasi proyek..gitignore— Daftar file yang harus dikecualikan Git dari kontrol sumber.node_modules— Dipelihara oleh npm; termasuk dependensi proyek.
Bagian kode berikut di tumpukan induk memanggil aplikasi turunan sebagai tumpukan AWS CDK bersarang.
import * as cdk from '@aws-cdk/core'; import { Construct, Stack, StackProps } from '@aws-cdk/core'; import { RealTimeAnalyticsPocStack } from './real-time-analytics-poc-stack'; import { RealTimeAnalyticsWebStack } from './real-time-analytics-web-stack'; export class CdkParentStack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); new RealTimeAnalyticsPocStack(this, 'RealTimeAnalyticsPocStack'); new RealTimeAnalyticsWebStack(this, 'RealTimeAnalyticsWebStack'); } }
Kode untuk pengujian
session={{date.now('YYYYMMDD')}}|sequence={{date.now('x')}}|reception={{date.now('x')}}|instrument={{random.number(9)}}|l={{random.number(20)}}|price_0={{random.number({"min":10000, "max":30000})}}|price_1={{random.number({"min":10000, "max":30000})}}|price_2={{random.number({"min":10000, "max":30000})}}|price_3={{random.number({"min":10000, "max":30000})}}|price_4={{random.number({"min":10000, "max":30000})}}|price_5={{random.number({"min":10000, "max":30000})}}|price_6={{random.number({"min":10000, "max":30000})}}|price_7={{random.number({"min":10000, "max":30000})}}|price_8={{random.number({"min":10000, "max":30000})}}|
Menguji API Gateway
Di konsol API Gateway, uji API Gateway dengan menggunakan GET metode ini.

Lampiran
Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip