Untuk men-deploy lingkungan database bagi aplikasi Anda di AlloyDB untuk PostgreSQL, Anda membuat cluster dan instance utamanya. Cluster mengelola penyimpanan regional dan setelan konfigurasi Anda, sedangkan instance utama menyediakan resource komputasi untuk operasi baca dan tulis. Anda dapat membuat cluster dan instance utamanya menggunakan konsol Google Cloud , Google Cloud CLI, REST API, atau Terraform.
Sebelum memulai
- Project Google Cloud yang Anda gunakan harus diaktifkan untuk mengakses AlloyDB.
- Jaringan Virtual Private Cloud (VPC) dalam project Google Cloud yang Anda gunakan harus sudah dikonfigurasi untuk akses layanan pribadi ke AlloyDB.
- Untuk workload pengembangan dan sandbox, pertimbangkan region dan jenis mesin Anda. Untuk menggunakan bentuk 1 vCPU, pastikan Anda memilih region yang mendukung bentuk tersebut. Untuk mengetahui informasi selengkapnya, lihat Pertimbangan saat menggunakan 1 vCPU.
Peran yang diperlukan
Sebelum dapat membuat cluster AlloyDB pertama, Anda harus memiliki peran Identity and Access Management (IAM) yang benar.
- Anda harus memiliki salah satu peran IAM ini dalam
Google Cloud project yang Anda gunakan:
roles/alloydb.admin(peran IAM yang telah ditetapkan Admin AlloyDB)roles/owner(peran IAM dasar Pemilik)roles/editor(peran IAM dasar Editor)
- Jika Anda tidak memiliki peran ini, hubungi Organization Administrator Anda untuk meminta akses.
- Anda juga harus memiliki izin
compute.networks.listdi project Google Cloud yang Anda gunakan. Untuk mendapatkan izin ini sekaligus mengikuti prinsip hak istimewa terendah, minta administrator untuk memberi Anda peran Compute Network User (roles/compute.networkUser).
Membuat cluster dan instance utama baru
Konsol
Buka halaman Clusters.
Klik Create cluster.
Pilih konfigurasi cluster. Untuk mengetahui informasi selengkapnya tentang perbedaan antara konfigurasi ketersediaan tinggi dan dasar, lihat Apa yang dimaksud dengan instance AlloyDB?.
Jika Anda tidak yakin apakah cluster baru memerlukan instance kumpulan baca, pilih salah satu konfigurasi tanpa kumpulan baca. Anda dapat menambahkan instance kumpulan baca ke cluster nanti, kapan pun diperlukan.
Klik Lanjutkan.
Di bagian Configure your cluster, di kolom Cluster ID, masukkan ID untuk cluster Anda.
Di kolom Password, masukkan sandi awal untuk cluster baru. AlloyDB menetapkan sandi yang diberikan kepada pengguna database
postgressaat membuat cluster.Opsional: Untuk menetapkan flag
alloydb.iam_authenticationsecara manual, batalkan pilihan Create an IAM database user. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi flag database.Secara default, Create an IAM database user dipilih, yang melakukan hal berikut:
Mengaktifkan flag
alloydb.iam_authenticationpada instance utama.Membuat pengguna database IAM untuk Anda.
Di kolom Database version, pilih versi utama PostgreSQL untuk cluster AlloyDB baru Anda.
Pilih region. Untuk workload pengembangan dan sandbox, pertimbangkan bentuk 1 vCPU, yang tersedia di region tertentu. Untuk mengetahui informasi selengkapnya, lihat Pertimbangan saat menggunakan 1 vCPU.
Pilih jalur jaringan.
Opsional: Untuk menerapkan rentang alamat IP tertentu ke cluster ini, alih-alih mengizinkan AlloyDB memilih rentang alamat IP, ikuti langkah-langkah berikut:
Klik Show allocated IP range option.
Dari daftar Allocated IP range, pilih rentang alamat IP.
Untuk mengetahui informasi selengkapnya tentang opsi ini, lihat Membuat cluster dengan rentang alamat IP tertentu.
Opsional: Untuk mengenkripsi cluster ini menggunakan kunci enkripsi yang dikelola pelanggan (CMEK), bukan enkripsi yang dikelola Google, ikuti langkah-langkah tambahan berikut:
Klik Opsi enkripsi lanjutan.
Pilih Customer-managed encryption key (CMEK).
Di menu yang muncul, pilih kunci yang dikelola pelanggan.
Konsol Google Cloud membatasi daftar ini ke kunci dalam project dan region Google Cloud yang sama dengan cluster baru. Untuk menggunakan kunci yang tidak ada dalam daftar ini, klik Tidak melihat kunci Anda? Enter key resource name, lalu ketik nama resource kunci ke dalam dialog yang dihasilkan.
Perhatikan bahwa penggunaan CMEK dengan AlloyDB memerlukan beberapa penyiapan tambahan. Untuk mengetahui informasi selengkapnya, lihat Menggunakan CMEK dengan AlloyDB.
Klik Lanjutkan.
Konfigurasikan instance utama Anda:
- Di kolom Instance ID, masukkan ID untuk instance utama Anda.
Pilih salah satu seri mesin berikut:
- C4A (seri mesin berbasis Google Axion).
- N2 (seri mesin berbasis x86). Ini adalah seri mesin default.
- C4 (seri mesin berbasis x86).
- Z3 (seri mesin berbasis Intel Xeon).
Pilih jenis mesin. Untuk mengetahui informasi selengkapnya, lihat Memilih jenis mesin.
- C4A mendukung 1, 2, 4, 8, 16, 32, 48, 64, dan 72 vCPU.
- N2 mendukung 2, 4, 8, 16, 32, 64, 96, dan 128 vCPU.
- C4 mendukung 4, 8, 16, 24, 32, 48, 96, 144, 192, dan 288 vCPU.
- Z3 mendukung 8, 14, 16, 22, 32, 44, dan 88 vCPU.
Untuk mengetahui informasi selengkapnya tentang penggunaan seri mesin berbasis Axion C4A, termasuk jenis mesin 1 vCPU, lihat Pertimbangan saat menggunakan seri mesin berbasis Axion C4A.
Opsional: Tetapkan flag kustom untuk instance Anda. Untuk setiap tanda, ikuti langkah-langkah berikut:
- Klik Add flag.
- Di daftar flag database baru, pilih flag database.
- Berikan nilai untuk flag.
- Klik Done.
Klik Create cluster.
gcloud
Untuk menggunakan gcloud CLI, Anda dapat menginstal dan melakukan inisialisasi Google Cloud CLI, atau Anda dapat menggunakan Cloud Shell.
Anda harus membuat cluster dan instance utama AlloyDB sebelum mulai menggunakan AlloyDB.
Membuat cluster
Untuk membuat cluster dengan akses layanan pribadi atau Private Service Connect yang diaktifkan, gunakan perintah
gcloud alloydb clusters create.Akses layanan pribadi
gcloud alloydb clusters create CLUSTER_ID \ --database-version=POSTGRES_VERSION \ --password=PASSWORD \ --region=REGION_ID \ --project=PROJECT_ID \ --network=NETWORKPrivate Service Connect
gcloud alloydb clusters create CLUSTER_ID \ --database-version=POSTGRES_VERSION \ --password=PASSWORD \ --region=REGION_ID \ --project=PROJECT_ID \ --enable-private-service-connectGanti kode berikut:
CLUSTER_ID: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.VERSION: versi utama PostgreSQL yang Anda inginkan agar kompatibel dengan server database cluster. Pilih salah satu opsi berikut:14, untuk kompatibilitas dengan PostgreSQL 1415, untuk kompatibilitas dengan PostgreSQL 1516, untuk kompatibilitas dengan PostgreSQL 1617, untuk kompatibilitas dengan PostgreSQL 17, yang merupakan versi PostgreSQL default yang didukung18, untuk kompatibilitas dengan PostgreSQL 18
PASSWORD: sandi yang akan digunakan untuk penggunapostgresdefault.NETWORK(Opsional): nama jaringan VPC yang Anda konfigurasi untuk akses layanan pribadi ke AlloyDB. Jika Anda menghilangkan flag--network, AlloyDB akan menggunakan jaringandefault.Jika Anda menggunakan jaringan VPC Bersama, tetapkan ke jalur yang sepenuhnya memenuhi syarat dari jaringan VPC—misalnya,
projects/cymbal-project/global/networks/shared-vpc-network.--enable-private-service-connect(Opsional): ditetapkan untuk mengaktifkan Private Service Connect sebagai metode konektivitas untuk cluster dan instance-nya.REGION_ID: region tempat Anda ingin menempatkan cluster.
PROJECT_ID: ID project tempat Anda ingin menempatkan cluster.
Perintah ini memulai operasi yang berjalan lama, dan menampilkan ID operasi.
Opsional: Untuk menerapkan rentang alamat IP tertentu ke cluster ini, alih-alih mengizinkan AlloyDB memilih rentang alamat IP, berikan argumen berikut:
--allocated-ip-range-name=RANGEGanti
RANGEdengan nama rentang alamat IP yang ingin Anda gunakan untuk akses layanan pribadi di cluster ini.Untuk mengetahui informasi selengkapnya tentang opsi ini, lihat Membuat cluster dengan rentang alamat IP tertentu.
Opsional: Untuk mengenkripsi cluster ini menggunakan kunci enkripsi yang dikelola pelanggan (CMEK), bukan enkripsi default yang dikelola Google, berikan argumen berikut:
--kms-key=KEY_ID \ --kms-keyring=KEYRING_ID \ --kms-location=LOCATION_ID \ --kms-project=PROJECT_IDGanti kode berikut:
KEY_ID: ID kunci CMEK yang akan digunakan.KEYRING_ID: ID key ring kunci.LOCATION_ID: ID region key ring, yang harus sama dengan region cluster.PROJECT_ID: ID project key ring.
Konfirmasi bahwa operasi berhasil.
gcloud alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDGanti
OPERATION_IDdengan ID operasi yang ditampilkan dari langkah sebelumnya.
Setelah membuat cluster utama, Anda harus membuat instance utama.
Membuat instance utama
Untuk membuat instance utama, gunakan perintah gcloud alloydb instances create.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--allowed-psc-projects=ALLOWED_PROJECT_LISTGanti kode berikut:
INSTANCE_ID: ID instance yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.REGION_ID: region tempat Anda ingin menempatkan instance.CLUSTER_ID: ID cluster yang Anda buat sebelumnya.PROJECT_ID: ID project tempat cluster Anda dibuat.CPU_COUNT: jumlah vCPU yang Anda inginkan untuk instance.- Anda harus menentukan
cpu_countataumachine_type. Jika hanya
cpu_countyang disediakan, instance N2 akan dibuat dengan spesifikasi berikut:- 2: 2 vCPU, RAM 16 GB
- 4: 4 vCPU, RAM 32 GB
- 8: 8 vCPU, RAM 64 GB
- 16: 16 vCPU, RAM 128 GB
- 32: 32 vCPU, RAM 256 GB
- 64: 64 vCPU, RAM 512 GB
- 96: 96 vCPU, RAM 768 GB
- 128: 128 vCPU, RAM 864 GB
Jika
machine_typedancpu_countdisediakan, nilaicpu_countharus sesuai dengan jumlah vCPU yang ditentukan dalammachine_type. Misalnya, jikamachine_typeadalahn2-highmem-4, Anda harus menetapkancpu_countke4.
- Anda harus menentukan
MACHINE_TYPE: Pilih dari daftar jenis mesin yang didukung sepertin2-highmem-4,c4-highmem-4-lssd, atauc4a-highmem-4-lssd. Untuk mengetahui informasi selengkapnya, lihat Memilih jenis mesin AlloyDB.Saat Anda menggunakan
machine_typedancpu_countbersama-sama, nilai dalamcpu_countdanmachine_typeharus cocok. Misalnya, jikamachine_typeadalahn2-highmem-4, Anda harus menetapkancpu_countke4.ALLOWED_PROJECT_LIST: (Opsional) jika Anda menggunakan Private Service Connect,ALLOWED_PROJECT_LISTadalah daftar project ID yang dipisahkan koma atau nomor project yang ingin Anda izinkan untuk mengakses instance.
Terraform
Membuat cluster dan instance utama
Untuk membuat cluster dan instance utamanya, gunakan resource Terraform.
Berikut adalah cuplikan kode untuk membuat cluster dan instance utama berdasarkan contoh instance AlloyDB lengkap:
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY"
machine_config {
cpu_count = 2
}
depends_on = [google_service_networking_connection.vpc_connection]
}
resource "google_alloydb_cluster" "default" {
cluster_id = "alloydb-cluster"
location = "us-central1"
network_config {
network = google_compute_network.default.id
}
database_version = "POSTGRES_17"
initial_user {
password = "alloydb-cluster"
}
}
data "google_project" "project" {}
resource "google_compute_network" "default" {
name = "alloydb-network"
}
resource "google_compute_global_address" "private_ip_alloc" {
name = "alloydb-cluster"
address_type = "INTERNAL"
purpose = "VPC_PEERING"
prefix_length = 16
network = google_compute_network.default.id
}
resource "google_service_networking_connection" "vpc_connection" {
network = google_compute_network.default.id
service = "servicenetworking.googleapis.com"
reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
}
Contoh ini membuat instance N2. Untuk mengetahui daftar jenis mesin lain yang didukung seperti n2-highmem-4, c4-highmem-4-lssd, atau c4a-highmem-4-lssd, lihat Memilih jenis mesin AlloyDB.
Menyiapkan Cloud Shell
Untuk menerapkan konfigurasi Terraform di project Google Cloud , siapkan Cloud Shell sebagai berikut:
- Luncurkan Cloud Shell.
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri, yang juga disebut modul root.
- Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus berupa file TF—misalnya,
main.tf. Dalam dokumen ini, file ini disebut sebagaimain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
- Salin kode contoh ke dalam
main.tfyang baru dibuat. Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh. - Tinjau file
main.tfdan ubah contoh parameter untuk diterapkan pada lingkungan Anda. - Simpan perubahan.
- Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
Opsional: Untuk menggunakan versi penyedia Google terbaru, sertakan opsiterraform init
-upgrade:terraform init -upgrade
Menerapkan perubahan
- Tinjau konfigurasi untuk mengonfirmasi bahwa update Terraform sesuai dengan ekspektasi Anda:
Koreksi konfigurasi jika diperlukan.terraform plan
- Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yespada prompt: Tunggu hingga Terraform menampilkan pesanterraform apply
Apply complete!. - Buka project Google Cloud Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
REST v1
Membuat cluster
Contoh ini membuat cluster. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat Metode: projects.locations.clusters.create. Untuk mengetahui informasi tentang setelan cluster, lihat Melihat setelan cluster dan instance.
Jangan sertakan informasi sensitif atau informasi identitas pribadi di ID cluster Anda karena informasi tersebut terlihat secara eksternal. Anda tidak perlu menyertakan project ID dalam nama cluster. Hal ini dilakukan secara otomatis jika sesuai, misalnya, di file log.
Untuk mengirim permintaan Anda, simpan isi permintaan dalam file bernama cluster_request.json:
{
"databaseVersion": "<var>DATABASE_VERSION</var>",
"initialUser": {
"user": "<var>INITIAL_USERNAME</var>",
"password": "<var>INITIAL_USER_PASSWORD</var>"
},
"labels": {
"test": "alloydb-cluster-full"
}
}
Lakukan penggantian berikut:
DATABASE_VERSION: string enum versi database—misalnya,POSTGRES_17.INITIAL_USERNAME: nama pengguna yang Anda gunakan untuk pengguna postgres default.INITIAL_USER_PASSWORD: sandi yang Anda gunakan untuk pengguna postgres default.
Gunakan metode HTTP dan URL berikut:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID
Lakukan penggantian berikut:
PROJECT_ID: ID project tempat Anda ingin menempatkan cluster.LOCATION_ID: ID region cluster.CLUSTER_ID: ID cluster yang Anda buat. ID cluster harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.
Anda dapat menggunakan curl berikut untuk menjalankan permintaan sebelumnya:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID -d @cluster_request.json
Membuat instance utama
Contoh ini membuat instance utama. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat Metode: projects.locations.clusters.instances.create. Untuk mengetahui informasi tentang setelan cluster, lihat Melihat setelan cluster dan instance.
Jangan menyertakan informasi sensitif atau informasi identitas pribadi dalam ID cluster Anda, karena informasi tersebut terlihat secara eksternal. Anda tidak perlu menyertakan project ID dalam nama cluster karena hal ini dilakukan secara otomatis jika sesuai—misalnya, dalam file log.
Untuk mengirim permintaan Anda, simpan isi permintaan berikut dalam file bernama
instance_request.json.
{
"instance_type": "PRIMARY",
"machine_config": {
"cpu_count": VCPU_COUNT
}
}
Lakukan penggantian berikut:
VCPU_COUNT: jumlah core CPU yang terlihat pada instance yang ingin Anda buat.
Contoh sebelumnya membuat instance N2 dengan spesifikasi berikut:
- 2: 2 vCPU, RAM 16 GB
- 4: 4 vCPU, RAM 32 GB
- 8: 8 vCPU, RAM 64 GB
- 16: 16 vCPU, RAM 128 GB
- 32: 32 vCPU, RAM 256 GB
- 64: 64 vCPU, RAM 512 GB
- 96: 96 vCPU, RAM 768 GB
- 128: 128 vCPU, RAM 864 GB
Contoh berikut menunjukkan cara membuat instance untuk jenis mesin:
"machine_config": {
"machine_type": "MACHINE_TYPE"
}
Ganti MACHINE_TYPE dengan jenis mesin yang didukung seperti n2-highmem-4, c4-highmem-4-lssd, atau c4a-highmem-4-lssd. Untuk mengetahui informasi selengkapnya tentang jenis mesin yang didukung, lihat Memilih jenis mesin AlloyDB.
Gunakan metode HTTP dan URL berikut:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID
Lakukan penggantian berikut:
PROJECT_ID: ID project tempat Anda ingin menempatkan cluster.LOCATION_ID: ID region cluster.CLUSTER_ID: ID cluster yang Anda buat. ID harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.INSTANCE_ID: nama instance utama yang ingin Anda buat.
Anda dapat menggunakan curl untuk menjalankan permintaan, seperti yang ditunjukkan dalam contoh berikut:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID -d @instance_request.json
Meng-clone cluster aktif
Untuk membuat clone cluster aktif, yang berisi salinan semua data cluster sumber dan berjalan di region yang sama, lakukan pemulihan point-in-time pada cluster tersebut. Anda dapat menentukan titik waktu yang sangat baru saat melakukannya—misalnya, detik pertama dari menit saat ini.
Proses ini hanya menyalin data cluster sumber ke clone, bukan konfigurasi cluster sumber. Untuk mengenkripsi data clone menggunakan CMEK, Anda harus menentukan detail CMEK sebagai bagian dari perintah pemulihan point-in-time, meskipun data cluster sumber sudah dienkripsi CMEK. Setelah cluster baru dibuat, Anda perlu menambahkan instance, flag database, jadwal pencadangan, dan konfigurasi lain yang diperlukan untuk memenuhi kebutuhan Anda.
Cluster yang dibuat dengan cara ini ada secara independen dari sumbernya, dengan datanya tidak memiliki hubungan dengan data cluster sumber setelah duplikasi awal selesai. Jika Anda ingin membuat cluster sekunder yang otomatis melacak dan mereplikasi perubahan data yang dibuat di cluster sumbernya, lihat Tentang replikasi lintas region.
Membuat cluster dengan rentang alamat IP tertentu
AlloyDB menggunakan akses layanan pribadi untuk memungkinkan resource internal cluster berkomunikasi satu sama lain. Sebelum Anda dapat membuat cluster, jaringan VPC Anda harus berisi setidaknya satu rentang alamat IP yang dikonfigurasi dengan koneksi akses layanan pribadi.
Pertimbangan saat menggunakan seri mesin C4A berbasis Axion
AlloyDB menawarkan seri mesin C4A berdasarkan Google Axion, prosesor berbasis Arm kustom Google. Virtual machine (VM) C4A tersedia sebagai konfigurasi yang telah ditetapkan untuk 1, 2, 4, 8, 16, 32, 48, 64, dan 72 vCPU, dengan memori Double Data Rate 5 (DDR5) hingga 576 GB.
Saat Anda memilih C4A, perhatikan hal-hal berikut:
- Untuk mengalihkan instance N2 yang ada ke instance C4A, ubah
machine_typeinstance saat ini menggunakan konsol Google Cloud , gcloud CLI, Terraform, atau API. - Jangan menghapus instance N2 dan membuat instance C4A baru di cluster yang sama.
C4A didukung di region berikut:
asia-east1asia-southeast1europe-west1europe-west2europe-west3europe-west4us-central1us-east1us-east4
Pertimbangan saat menggunakan jenis mesin 1 vCPU
AlloyDB menawarkan bentuk 1 vCPU dengan C4A dan hanya ditujukan untuk tujuan pengembangan dan pengujian. Untuk workload produksi, pilih dua vCPU atau lebih.
Saat Anda memilih 1 vCPU, perhatikan batasan berikut:
- 1 vCPU ditawarkan dengan memori 8 GB tanpa dukungan cache ultra-cepat.
- Konfigurasi 1 vCPU direkomendasikan untuk lingkungan pengembangan dan sandbox dengan ukuran database yang lebih kecil dalam puluhan gigabyte. Untuk database yang lebih besar dan untuk workload produksi, pertimbangkan untuk menggunakan 2 vCPU atau lebih tinggi.
- Anda dapat mengonfigurasi dengan ketersediaan tinggi (HA), tetapi tidak ada SLA waktu beroperasi yang ditawarkan.
- Untuk mempelajari tempat Anda dapat men-deploy 1 vCPU, lihat Wilayah yang didukung C4A.