নিষ্ক্রিয় GCP মেশিনে ব্যবহারকারীদের কীভাবে সতর্ক করবেন

নিষ্ক্রিয় GCP মেশিনে ব্যবহারকারীদের কীভাবে সতর্ক করবেন
Python

Google ক্লাউড খরচ দক্ষতা বৃদ্ধি

আজকের ক্লাউড-কেন্দ্রিক পরিবেশে, খরচ কমানোর জন্য এবং উত্পাদনশীলতা সর্বাধিক করার জন্য দক্ষতার সাথে সম্পদ পরিচালনা করা গুরুত্বপূর্ণ। বিশেষ করে, Google ক্লাউড প্ল্যাটফর্ম (GCP) ব্যবহারকারীদের জন্য, রিসোর্স ম্যানেজমেন্টের একটি অপরিহার্য দিক হল মেশিনের কার্যকলাপ পর্যবেক্ষণ করা। GCP-তে অব্যবহৃত ভার্চুয়াল মেশিনগুলি কোনো অপারেশনাল সুবিধা প্রদান না করেই সময়ের সাথে সাথে উল্লেখযোগ্য খরচ সংগ্রহ করতে পারে।

এই সমস্যাটির সমাধান করার জন্য, একটি বর্ধিতকরণ প্রস্তাব করা হয়েছে যাতে ব্যবহারকারীরা যদি এক মাসেরও বেশি সময় ধরে তাদের মেশিনে লগ ইন না করে থাকে তবে তাদের ইমেলের মাধ্যমে অবহিত করা জড়িত। এই সক্রিয় পরিমাপ শুধুমাত্র সম্ভাব্য অদক্ষতা সম্পর্কে ব্যবহারকারীদের অবহিত করে না বরং তাদের মেশিনের দৃষ্টান্তগুলি অব্যাহত রাখা বা বন্ধ করার বিষয়ে সচেতন সিদ্ধান্ত নেওয়ার ক্ষমতা দেয়, যার ফলে সম্পদের ব্যবহার অপ্টিমাইজ করে এবং অপ্রয়োজনীয় ব্যয় হ্রাস করে।

আদেশ বর্ণনা
compute_v1.InstancesClient() দৃষ্টান্তগুলি পরিচালনার জন্য Google Compute Engine API ক্লায়েন্টকে সূচনা করে৷
instances().list() GCP থেকে একটি নির্দিষ্ট প্রকল্প এবং অঞ্চলের মধ্যে গণনা দৃষ্টান্তগুলির একটি তালিকা পুনরুদ্ধার করে।
datetime.strptime() নির্দিষ্ট বিন্যাস অনুসারে একটি তারিখের স্ট্রিংকে একটি datetime অবজেক্টে পার্স করে।
timedelta(days=30) তারিখ অফসেট গণনা করতে ব্যবহৃত 30 দিনের সময়ের পার্থক্য উপস্থাপন করে।
SendGridAPIClient() ইমেল পাঠানোর জন্য SendGrid API এর সাথে ইন্টারঅ্যাক্ট করার জন্য একটি ক্লায়েন্টকে শুরু করে।
Mail() একটি ইমেল বার্তা তৈরি করে যা SendGrid এর মাধ্যমে পাঠানো যেতে পারে।
compute.zone().getVMs() কম্পিউট লাইব্রেরি ব্যবহার করে Google ক্লাউড প্ল্যাটফর্মের একটি নির্দিষ্ট অঞ্চলের মধ্যে সমস্ত VM পুনরুদ্ধার করার জন্য Node.js পদ্ধতি।
sgMail.send() একটি Node.js পরিবেশে SendGrid এর ইমেল পরিষেবা ব্যবহার করে একটি ইমেল পাঠায়।

স্ক্রিপ্ট কার্যকারিতা ওভারভিউ

প্রদত্ত Python এবং Node.js স্ক্রিপ্টগুলি Google ক্লাউড প্ল্যাটফর্ম (GCP) ভার্চুয়াল মেশিনে (VMs) ব্যবহারকারীর কার্যকলাপ নিরীক্ষণের প্রক্রিয়া স্বয়ংক্রিয় করার জন্য ডিজাইন করা হয়েছে৷ তাদের মূল উদ্দেশ্য হল এক মাসেরও বেশি সময় ধরে অ্যাক্সেস করা হয়নি এমন VM শনাক্ত করে খরচ কমানো, সম্ভাব্য নিষ্ক্রিয় বা অপসারণের পরামর্শ দেওয়া। Python স্ক্রিপ্ট 'compute_v1.InstancesClient' ব্যবহার করে কার্যকরভাবে GCP দৃষ্টান্ত থেকে ডেটা পরিচালনা এবং পুনরুদ্ধার করে। এটি 'datetime.strptime' এবং 'timedelta' ব্যবহার করে বর্তমান তারিখের বিপরীতে প্রতিটি ইনস্ট্যান্সের শেষ লগইন মেটাডেটা পরীক্ষা করে যদি শেষ অ্যাক্সেসটি 30 দিনের বেশি আগে ছিল কিনা।

যখন একটি VM নিষ্ক্রিয় হিসাবে চিহ্নিত করা হয়, তখন স্ক্রিপ্টটি 'SendGridAPIClient' এবং 'মেইল' কমান্ড ব্যবহার করে ব্যবহারকারীকে একটি ইমেল বিজ্ঞপ্তি তৈরি এবং পাঠাতে, নিষ্ক্রিয় VM অপসারণ বা বন্ধ করে সম্ভাব্য খরচ-সঞ্চয় ব্যবস্থার পরামর্শ দেয়। একইভাবে, Node.js স্ক্রিপ্ট VM বিবরণ আনতে Google ক্লাউড 'কম্পিউট' লাইব্রেরি ব্যবহার করে এবং ইমেল বিজ্ঞপ্তিগুলি পরিচালনা করতে 'sgMail.send' ব্যবহার করে। এই কমান্ডগুলি অত্যন্ত গুরুত্বপূর্ণ কারণ তারা ডেটা পুনরুদ্ধারের জন্য GCP এবং ইমেলগুলি পাঠানোর জন্য SendGrid উভয়ের সাথে মিথস্ক্রিয়া স্বয়ংক্রিয় করে, ক্লাউড সংস্থান দক্ষতা পরিচালনার প্রক্রিয়াটিকে উল্লেখযোগ্যভাবে সুগম করে৷

GCP VM-এর জন্য স্বয়ংক্রিয় নিষ্ক্রিয়তার বিজ্ঞপ্তি

গুগল ক্লাউড ফাংশন ব্যবহার করে পাইথন স্ক্রিপ্ট

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'])

ব্যবহারকারী বিজ্ঞপ্তির জন্য ব্যাকএন্ড ইন্টিগ্রেশন

Node.js Google ক্লাউড ফাংশন ব্যবহার করে

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

Google ক্লাউড প্ল্যাটফর্মে কৌশলগত খরচ ব্যবস্থাপনা

ক্লাউড কম্পিউটিং-এ কার্যকরী খরচ ব্যবস্থাপনা, বিশেষ করে Google ক্লাউড প্ল্যাটফর্ম (GCP) এর মতো প্ল্যাটফর্মের মধ্যে, অপারেশনাল বাজেট অপ্টিমাইজ করার জন্য গুরুত্বপূর্ণ। নিষ্ক্রিয় মেশিনগুলিকে চিহ্নিত করার বাইরে, ক্লাউড রিসোর্স ম্যানেজমেন্টের জন্য একটি সামগ্রিক পদ্ধতির বোঝা এবং প্রয়োগ করা উল্লেখযোগ্য খরচ সঞ্চয় করতে পারে। এর মধ্যে শুধু ভার্চুয়াল মেশিন (VM) ব্যবহার পর্যবেক্ষণ করাই নয়, চাহিদার উপর ভিত্তি করে গতিশীলভাবে সম্পদ স্কেল করা, সঠিক মূল্যের পরিকল্পনা বেছে নেওয়া এবং বাজেট সতর্কতা ব্যবহার করা জড়িত। খরচ অপ্টিমাইজেশান কৌশলগুলির মধ্যে কাস্টম অটোমেশন সেট আপ করা অন্তর্ভুক্ত থাকতে পারে যা অফ-পিক ঘন্টার সময় সংস্থানগুলিকে হ্রাস করে বা বন্ধ করে দেয়, যা নাটকীয়ভাবে অপ্রয়োজনীয় ব্যয় হ্রাস করতে পারে।

কার্যকরভাবে খরচ পরিচালনার একটি গুরুত্বপূর্ণ দিক হল পূর্বনির্ধারিত ভিএম ব্যবহার করা, যা স্ট্যান্ডার্ড ভিএমের তুলনায় যথেষ্ট সস্তা এবং ত্রুটি-সহনশীল অ্যাপ্লিকেশনের জন্য আদর্শ। অধিকন্তু, অব্যবহৃত ডিস্ক স্টোরেজ এবং স্ন্যাপশটগুলি পরীক্ষা করতে এবং মোকাবেলা করার জন্য কাস্টম নীতিগুলি প্রয়োগ করা খরচ দক্ষতা আরও বাড়িয়ে তুলতে পারে। নিয়মিতভাবে সম্পদ বরাদ্দ বিশ্লেষণ এবং সংশোধন করা নিশ্চিত করে যে এন্টারপ্রাইজগুলি কেবলমাত্র তাদের প্রকৃত প্রয়োজনের জন্য অর্থ প্রদান করে, একটি ব্যয়-কার্যকর ক্লাউড পরিবেশ বজায় রাখার জন্য GCP দ্বারা প্রদত্ত সরঞ্জামগুলির সম্পূর্ণ স্যুট ব্যবহার করে।

জিসিপিতে ভিএম ম্যানেজমেন্ট সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্ন

  1. প্রশ্নঃ একটি preemptible VM কি?
  2. উত্তর: একটি অগ্রিম VM হল একটি Google ক্লাউড VM দৃষ্টান্ত যা আপনি সাধারণ দৃষ্টান্তের তুলনায় অনেক কম দামে কিনতে পারেন। যাইহোক, Google যদি অন্যান্য কাজের জন্য সেই সংস্থানগুলিতে অ্যাক্সেসের প্রয়োজন হয় তবে এই উদাহরণগুলি বন্ধ করতে পারে৷
  3. প্রশ্নঃ আমি কিভাবে জিসিপিতে অব্যবহৃত ভিএম সনাক্ত করতে পারি?
  4. উত্তর: আপনি GCP কনসোলের মাধ্যমে লগইন এবং ব্যবহারের ধরণ পর্যবেক্ষণ করে বা নির্দিষ্ট নিষ্ক্রিয়তা থ্রেশহোল্ডের উপর ভিত্তি করে আপনাকে সতর্ক করার জন্য কাস্টম স্ক্রিপ্ট সেট আপ করে অব্যবহৃত VM সনাক্ত করতে পারেন।
  5. প্রশ্নঃ GCP বাজেট সতর্কতা কি?
  6. উত্তর: GCP বাজেট সতর্কতা হল ব্যবহারকারীদের সতর্ক করার জন্য সেট আপ করা বিজ্ঞপ্তিগুলি যখন তাদের খরচ পূর্বনির্ধারিত থ্রেশহোল্ড অতিক্রম করে, যা অপ্রত্যাশিত খরচ প্রতিরোধে সহায়তা করে।
  7. প্রশ্নঃ সম্পদ কমানো খরচ বাঁচাতে পারে?
  8. উত্তর: হ্যাঁ, যখন সম্পদগুলি ব্যবহার করা হয় না, যেমন অফ-পিক আওয়ারে, গতিশীলভাবে স্কেল করা ক্লাউড কম্পিউটিং খরচ উল্লেখযোগ্যভাবে হ্রাস করতে পারে।
  9. প্রশ্নঃ একটি VM মুছে ফেলার সময় কি বিবেচনা করা উচিত?
  10. উত্তর: একটি VM মুছে ফেলার আগে, ডেটা ব্যাকআপ, আইনি ডেটা ধরে রাখার প্রয়োজনীয়তা এবং ভবিষ্যতে আবার উদাহরণের প্রয়োজন হতে পারে কিনা তা বিবেচনা করুন। এটি নিশ্চিত করে যে ডেটা হারিয়ে যায় না এবং সম্মতির মান পূরণ হয়।

ক্লাউড খরচ ব্যবস্থাপনা মোড়ানো

Google ক্লাউড প্ল্যাটফর্মে নিষ্ক্রিয় VM-এর জন্য স্বয়ংক্রিয় বিজ্ঞপ্তি ব্যবস্থা গ্রহণ করা দক্ষ ক্লাউড সম্পদ ব্যবস্থাপনার দিকে একটি কৌশলগত পদক্ষেপ। এটি শুধুমাত্র ব্যবহারকারীদের অব্যবহৃত সংস্থান সম্পর্কে সতর্ক করে খরচ কমাতে সাহায্য করে না বরং সামগ্রিক কর্মক্ষমতাও বাড়ায়। এই সিস্টেমগুলিকে একীভূত করার মাধ্যমে, কোম্পানিগুলি নিশ্চিত করতে পারে যে তারা শুধুমাত্র প্রয়োজনীয় সংস্থানগুলিতে বিনিয়োগ করছে, যার ফলে তাদের ক্লাউড ব্যয় অপ্টিমাইজ করা এবং আর্থিক অপচয় কমানো যায়।