Kuidas hoiatada kasutajaid mitteaktiivsete GCP-masinate eest

Kuidas hoiatada kasutajaid mitteaktiivsete GCP-masinate eest
Python

Google Cloudi kuluefektiivsuse suurendamine

Tänapäeva pilvekesksetes keskkondades on ressursside tõhus haldamine kulude minimeerimiseks ja tootlikkuse maksimeerimiseks ülioluline. Täpsemalt, Google Cloud Platformi (GCP) kasutajate jaoks on ressursside haldamise oluline aspekt masina tegevuse jälgimine. GCP-s kasutamata virtuaalmasinad võivad aja jooksul koguda märkimisväärseid kulusid, ilma et see tooks kasu.

Selle probleemi lahendamiseks pakutakse välja täiustus, mis hõlmab kasutajate teavitamist meili teel, kui nad pole oma masinasse sisse loginud rohkem kui kuu aega. See ennetav meede mitte ainult ei teavita kasutajaid võimalikest ebatõhusustest, vaid annab neile ka võimaluse teha teadlikke otsuseid masinaeksemplaride jätkamise või lõpetamise kohta, optimeerides seeläbi ressursikasutust ja vähendades tarbetuid kulutusi.

Käsk Kirjeldus
compute_v1.InstancesClient() Initsialiseerib Google Compute Engine API kliendi eksemplaride haldamiseks.
instances().list() Hangib GCP-st konkreetse projekti ja tsooni arvutusjuhtumite loendi.
datetime.strptime() Parsib kuupäevastringi kuupäeva ja aja objektiks vastavalt määratud vormingule.
timedelta(days=30) Esindab 30-päevast ajavahet, mida kasutatakse kuupäevanihete arvutamiseks.
SendGridAPIClient() Käivitab kliendi meilide saatmiseks SendGrid API-ga suhtlemiseks.
Mail() Koostab meilisõnumi, mida saab saata SendGridi kaudu.
compute.zone().getVMs() Node.js meetod, et tuua välja kõik virtuaalsed masinad Google Cloud Platformi konkreetses tsoonis, kasutades arvutamise teeki.
sgMail.send() Saadab meili SendGridi meiliteenuse abil Node.js keskkonnas.

Skripti funktsionaalsuse ülevaade

Pakutavad Pythoni ja Node.js-i skriptid on loodud selleks, et automatiseerida kasutajate tegevuse jälgimist Google Cloud Platformi (GCP) virtuaalmasinates (VM-ides). Nende põhieesmärk on vähendada kulusid, tuvastades VM-id, millele pole rohkem kui kuu aega juurde pääsetud, mis viitab võimalikule desaktiveerimisele või eemaldamisele. Pythoni skript kasutab 'compute_v1.InstancesClient', et tõhusalt hallata ja tuua andmeid GCP eksemplaridest. See kontrollib iga eksemplari viimase sisselogimise metaandmeid praeguse kuupäevaga, kasutades atribuute „datetime.strptime” ja „timedelta”, et arvutada, kas viimane juurdepääs oli rohkem kui 30 päeva tagasi.

Kui VM tuvastatakse passiivsena, kasutab skript käske SendGridAPIClient ja Mail, et koostada ja saata kasutajale meiliteatis, mis annab nõu võimalike kulude kokkuhoiu meetmete kohta, eemaldades või sulgedes passiivse virtuaalse masina. Sarnaselt kasutab skript Node.js VM-i üksikasjade toomiseks Google'i pilve „Compute” teeki ja kasutab meiliteatiste haldamiseks käsku „sgMail.send”. Need käsud on üliolulised, kuna need automatiseerivad suhtlemist nii GCP-ga andmete toomiseks kui ka SendGridiga e-kirjade saatmiseks, lihtsustades oluliselt pilveressursside tõhususe haldamise protsessi.

GCP VM-ide tegevusetuse teatiste automatiseerimine

Pythoni skript, mis kasutab Google'i pilvefunktsioone

import base64
import os
from google.cloud import compute_v1
from google.cloud import pubsub_v1
from datetime import datetime, timedelta
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail

def list_instances(compute_client, project, zone):
    result = compute_client.instances().list(project=project, zone=zone).execute()
    return result['items'] if 'items' in result else []

def check_last_login(instance):
    # Here you'd check the last login info, e.g., from instance metadata or a database
    # Mock-up check below assumes metadata stores last login date in 'last_login' field
    last_login_str = instance['metadata']['items'][0]['value']
    last_login = datetime.strptime(last_login_str, '%Y-%m-%d')
    return datetime.utcnow() - last_login > timedelta(days=30)

def send_email(user_email, instance_name):
    message = Mail(from_email='from_email@example.com',
                  to_emails=user_email,
                  subject='Inactive GCP VM Alert',
                  html_content=f'<strong>Your VM {instance_name} has been inactive for over 30 days.</strong> Consider deleting it to save costs.')
    sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
    response = sg.send(message)
    return response.status_code

def pubsub_trigger(event, context):
    """Background Cloud Function to be triggered by Pub/Sub."""
    project = os.getenv('GCP_PROJECT')
    zone = 'us-central1-a'
    compute_client = compute_v1.InstancesClient()
    instances = list_instances(compute_client, project, zone)
    for instance in instances:
        if check_last_login(instance):
            user_email = 'user@example.com' # This should be dynamic based on your user management
            send_email(user_email, instance['name'])

Taustaprogrammi integreerimine kasutajate teavitamiseks

Node.js Google'i pilvefunktsioonide kasutamine

const {Compute} = require('@google-cloud/compute');
const compute = new Compute();
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

exports.checkVMActivity = async (message, context) => {
    const project = 'your-gcp-project-id';
    const zone = 'your-gcp-zone';
    const vms = await compute.zone(zone).getVMs();
    vms[0].forEach(async vm => {
        const metadata = await vm.getMetadata();
        const lastLogin = new Date(metadata[0].lastLogin); // Assuming 'lastLogin' is stored in metadata
        const now = new Date();
        if ((now - lastLogin) > 2592000000) { // 30 days in milliseconds
            const msg = {
                to: 'user@example.com', // This should be dynamic
                from: 'noreply@yourcompany.com',
                subject: 'Inactive VM Notification',
                text: `Your VM ${vm.name} has been inactive for more than 30 days. Consider deleting it to save costs.`,
            };
            await sgMail

Strateegiline kulude juhtimine Google'i pilveplatvormis

Tõhus kulude haldamine pilvandmetöötluses, eriti sellistel platvormidel nagu Google Cloud Platform (GCP), on tegevuseelarve optimeerimiseks ülioluline. Lisaks mitteaktiivsete masinate tuvastamisele võib pilveressursside haldamise tervikliku lähenemisviisi mõistmine ja rakendamine kaasa tuua märkimisväärse kulude kokkuhoiu. See ei hõlma mitte ainult virtuaalmasina (VM) kasutamise jälgimist, vaid ka ressursside dünaamilist skaleerimist vastavalt nõudlusele, õigete hinnaplaanide valimist ja eelarvehoiatuste kasutamist. Kulude optimeerimise strateegiad võivad hõlmata kohandatud automatiseerimise seadistamist, mis vähendab või lõpetab ressursse tipptundidel, mis võib oluliselt vähendada tarbetuid kulutusi.

Kulude tõhusa haldamise oluline aspekt on ennetatavate VM-ide kasutamine, mis on tavapärastest VM-idest tunduvalt odavamad ja sobivad ideaalselt tõrketaluvusega rakenduste jaoks. Peale selle võib kohandatud poliitika rakendamine kasutamata kettasalvestusruumi ja hetktõmmiste kontrollimiseks ja nendega tegelemiseks veelgi suurendada kulutõhusust. Ressursieraldiste regulaarne analüüsimine ja ülevaatamine tagab, et ettevõtted maksavad ainult selle eest, mida nad tõeliselt vajavad, kasutades ära GCP pakutavate tööriistade kogu komplekti, et säilitada kulutõhusat pilvekeskkonda.

Korduma kippuvad küsimused VM-i haldamise kohta GCP-s

  1. küsimus: Mis on ennetav VM?
  2. Vastus: Ennetav VM on Google Cloudi VM-i eksemplar, mida saate osta tavalistest eksemplaridest palju madalama hinnaga. Google võib need juhtumid siiski lõpetada, kui ta vajab muude toimingute jaoks juurdepääsu neile ressurssidele.
  3. küsimus: Kuidas tuvastada GCP-s kasutamata virtuaalmasinaid?
  4. Vastus: Saate tuvastada kasutamata virtuaalmasinaid, jälgides sisselogimis- ja kasutusmustreid GCP-konsooli kaudu või seadistades kohandatud skripte, mis hoiatavad teid konkreetsete passiivsuslävede alusel.
  5. küsimus: Mis on GCP eelarvehoiatused?
  6. Vastus: GCP eelarvehoiatused on märguanded, mis on seadistatud kasutajate hoiatamiseks, kui nende kulutused ületavad eelmääratletud läve, aidates ära hoida ootamatuid kulusid.
  7. küsimus: Kas ressursside vähendamine võib kulusid kokku hoida?
  8. Vastus: Jah, ressursside dünaamiline vähendamine, kui neid ei kasutata, näiteks tipptundidel, võib pilvandmetöötluse kulusid märkimisväärselt vähendada.
  9. küsimus: Mida tuleks VM-i kustutamisel arvestada?
  10. Vastus: Enne VM-i kustutamist kaaluge andmete varundamist, juriidilisi andmete säilitamise nõudeid ja seda, kas eksemplari võib tulevikus uuesti vaja minna. See tagab, et andmed ei lähe kaduma ja vastavusstandardid on täidetud.

Pilvekulude haldamise kokkuvõte

Automatiseeritud teavitussüsteemide kasutuselevõtt mitteaktiivsete VM-ide jaoks Google Cloud Platformis on strateegiline samm tõhusa pilveressursside haldamise suunas. See mitte ainult ei aita kulusid vähendada, hoiatades kasutajaid alakasutatud ressurssidest, vaid suurendab ka üldist töötõhusust. Nende süsteemide integreerimisega saavad ettevõtted tagada, et nad investeerivad ainult vajalikesse ressurssidesse, optimeerides seeläbi oma pilvekulusid ja vähendades rahalisi raiskamisi.