১. ভূমিকা
সর্বশেষ হালনাগাদ: ২০২০-০৫-০৪
সংযোগটি নিয়ে চিন্তা করা
অনেক ধরনের অ্যাপ্লিকেশন এবং ফ্রেমওয়ার্ক রয়েছে। এই কোডল্যাবে, আমরা যেকোনো জায়গা থেকে ক্লাউড এসকিউএল-এ সংযোগ স্থাপন করা নিয়ে আলোচনা করব। সংযোগ করার ক্ষমতা সক্রিয় করা হয় সংযোগের জন্য অনুমোদিত আইপিগুলোকে স্পষ্টভাবে অনুমোদন দেওয়ার মাধ্যমে। ক্লাউড এসকিউএল ডেটাবেসে সংযোগ করার জন্য এটি সম্ভবত সবচেয়ে কম সুরক্ষিত বিকল্প, কিন্তু এটি সেটআপ করা এবং ব্যবহার শুরু করাও সবচেয়ে সহজ।
কখনও কখনও প্রোডাকশনে এটি করা প্রয়োজন হয়, কিন্তু যদি আপনি এটি এড়াতে পারেন, তবে আপনার আরও সুরক্ষিত বিকল্প বেছে নেওয়া উচিত (যেমন ক্লাউড এসকিউএল প্রক্সি ব্যবহার করা)। এই সেটআপটি ডেভেলপমেন্ট এবং টেস্টিংয়ের জন্য সবচেয়ে উপযুক্ত।
আপনি যা তৈরি করবেন
এই কোডল্যাবটি খুবই সংক্ষিপ্ত। এর মূল উদ্দেশ্য হলো অ্যাপ্লিকেশনটি নিয়ে খুব বেশি চিন্তা না করে, সংযোগ প্রক্রিয়ার খুঁটিনাটি বিষয়গুলো আপনাকে ধাপে ধাপে বুঝিয়ে দেওয়া। আদর্শগতভাবে, ক্লাউড এসকিউএল-এর সাথে সংযোগ স্থাপন করা অন্য যেকোনো এসকিউএল ডাটাবেসের সাথে সংযোগ স্থাপনের মতোই। তাই এই কোডল্যাবে আপনি যা তৈরি করবেন, তা যেকোনো প্রোডাকশন অ্যাপ্লিকেশনে প্রয়োগ করতে পারবেন।
নির্দেশাবলীতে GCP কনসোলে কাজ করার বিস্তারিত বিবরণের পাশাপাশি CLI বা অটোমেশনে ব্যবহারের জন্য gcloud কমান্ডের সমতুল্য শব্দগুলোও অন্তর্ভুক্ত থাকবে।
পৃথক ধাপগুলো হলো:
- একটি ক্লাউড SQL ইনস্ট্যান্স তৈরি করুন (এই টিউটোরিয়ালে Postgres ব্যবহার করা হয়েছে, তবে এটি MySQL বা SQL Server-এর ক্ষেত্রেও একইভাবে কাজ করে) এবং এতে সংযোগ করার জন্য নির্দিষ্ট IP-গুলিকে অনুমোদন দিন।
আপনার যা যা লাগবে
- একটি GCP অ্যাকাউন্ট, যেটিতে আপনার API সক্রিয় করার এবং পরিষেবা তৈরি করার অনুমতি রয়েছে।
- সংযোগ যাচাই করার জন্য পোস্টগ্রেস ক্লায়েন্ট ইনস্টল করা আছে (অথবা আপনি যদি পোস্টগ্রেসের পরিবর্তে মাইএসকিউএল ব্যবহার করতে চান তবে মাইএসকিউএল ক্লায়েন্ট)।
২. ক্লাউড SQL ইনস্ট্যান্স তৈরি করা
ক্লাউড এসকিউএল হলো আমাদের পরিচালিত রিলেশনাল ডেটাবেস পরিষেবা। এটি মাইএসকিউএল, পোস্টগ্রেসকিউএল এবং এসকিউএল সার্ভার সমর্থন করে। এই কোডল্যাবের জন্য, আমরা একটি পোস্টগ্রেস ডেটাবেস তৈরি করব, কিন্তু তিনটির জন্যই নির্দেশাবলী একই রকম।
কনসোলে
ক্লাউড এসকিউএল পৃষ্ঠায় যান এবং ক্লিক করুন
বোতাম।
যেমনটি আমি উল্লেখ করেছি, এই কোডল্যাবের বেশিরভাগই যেকোনো ধরনের SQL-এর জন্য প্রযোজ্য, কিন্তু এই কোডল্যাবের জন্য PostgreSQL বেছে নিন।
- আপনার ইনস্ট্যান্সকে একটি আইডি দিন
- আপনি যেখানে আছেন তার কাছাকাছি একটি অঞ্চল বেছে নিন।
- ডিফল্ট ব্যবহারকারীর জন্য একটি পাসওয়ার্ড দিন (ইউজারনেমটি নির্বাচিত ডিবি-র ডিফল্ট ইউজারনেম হবে, যেমন MySQL-এর জন্য
rootঅথবা PostgreSQL-এর জন্যpostgres)। - নিচে স্ক্রোল করুন এবং
show configuration options-এ ক্লিক করুন। -
Connectivityবিভাগটি প্রসারিত করুন -
Public IPচেক করা আছে এবংPrivate IPআনচেক করা আছে কিনা তা নিশ্চিত করুন। - ক্লিক করুন
বোতাম - আপনি যেখান থেকে সংযোগ করছেন সেখানকার আইপি অ্যাড্রেসটি নিন। সবচেয়ে সহজ উপায় হলো গুগলে "What's my IP" লিখে সার্চ করা, সার্চ রেজাল্টেই আপনার পাবলিক আইপি অ্যাড্রেসটি দেওয়া থাকবে।
- নেটওয়ার্ক ফিল্ডে আইপি স্পেসিফিকেশনটি প্রবেশ করান, চাইলে একটি নাম দিন এবং
New Networkবক্সে ডান (Done) ক্লিক করুন। - নিচে স্ক্রোল করুন এবং তৈরি করুন-এ ক্লিক করুন।
ইনস্ট্যান্সটি সাধারণত চালু হতে কয়েক মিনিট সময় নেয়।
ইনস্ট্যান্সটি তৈরি হয়ে গেলে, তালিকা থেকে সেটিতে ক্লিক করুন এবং ওভারভিউ পৃষ্ঠায়, Connect to this instance শিরোনামের নিচে তালিকাভুক্ত public IP address কপি করুন। ইনস্ট্যান্সটি সম্পূর্ণরূপে তৈরি না হওয়া পর্যন্ত এটি সেখানে থাকবে না, যদিও এটি পুরোপুরি ইনস্ট্যানশিয়েট হওয়ার আগেই আপনি এর বিস্তারিত তথ্যে ক্লিক করতে পারবেন।
gcloud ব্যবহার করে
প্রথমে, ক্লাউড এসকিউএল ইনস্ট্যান্সে সংযোগ করার জন্য আপনি যে আইপি অ্যাড্রেসটিকে অনুমোদন দিতে চান, সেটি সংগ্রহ করতে হবে। এটি করার সবচেয়ে সহজ উপায় হলো একটি ব্রাউজার খুলে "What's my IP" লিখে সার্চ করা; সার্চের ফলাফলেই আপনার পাবলিক আইপি অ্যাড্রেসটি পাওয়া যাবে। তবে, আপনি যেখান থেকে এটি করছেন সেখান থেকে যদি ব্রাউজার খোলার সুযোগ না থাকে, তাহলে আপনি dig মতো কোনো ইউটিলিটি ব্যবহার করতে পারেন।
dig @resolver1.opendns.com ANY myip.opendns.com +short -4
আপনার ক্লাউড এসকিউএল ইনস্ট্যান্সের জন্য আপনার অবস্থানের সবচেয়ে কাছের অঞ্চলটি নির্দিষ্ট করতে হবে। নিম্নলিখিত কমান্ডটি চালিয়ে আপনি অঞ্চলগুলির তালিকা দেখতে পারেন:
gcloud sql tiers list
প্রতিটি টিয়ার শুধুমাত্র নির্দিষ্ট কিছু অঞ্চলে উপলব্ধ। টিউটোরিয়ালের gcloud অংশের জন্য, আমরা শুধু একটি মাইক্রো ইনস্ট্যান্স তৈরি করছি, তাই আপনি এই টিয়ারের জন্য উপলব্ধ অঞ্চলগুলি খুঁজে পেতে পারেন নির্দিষ্টভাবে নিম্নলিখিত কমান্ডটি চালিয়ে:
gcloud sql tiers list | grep db-f1-micro
ইনস্ট্যান্সটি তৈরি করার কমান্ডটি তখন দেখতে এইরকম হবে (<AUTHORIZED_IP>-এর জায়গায় ব্রাউজার বা dig থেকে পাওয়া IP, <REGION>-এর জায়গায় আপনার কাছাকাছি কোনো একটি IP এবং রুট ইউজার 'postgres'-এর জন্য একটি পাসওয়ার্ড বসাতে ভুলবেন না):
gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>
এটি সম্পন্ন হতে কয়েক মিনিট সময় লাগে।
এটি সম্পন্ন হলে, CLI-এর আউটপুটে ইনস্ট্যান্সটির PRIMARY_ADDRESS তালিকাভুক্ত থাকবে। পরবর্তী ধাপের জন্য সেটি কপি করে নিন।
৩. সংযোগ পরীক্ষা করা এবং গুছিয়ে নেওয়া
ইনস্ট্যান্সটি সঠিকভাবে সেটআপ হয়েছে কিনা তা যাচাই করতে, আপনার প্রবেশ করানো মেশিনের আইপি অ্যাড্রেস থেকে আপনি কমান্ডলাইনে নিম্নলিখিত কমান্ডটি চালাতে পারেন:
psql "host=<পূর্ববর্তী ধাপ থেকে কপি করা আইপি> port=5432 sslmode=disable user=postgres"
এরপর, ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করার সময় আপনি যে ডিফল্ট ব্যবহারকারীর পাসওয়ার্ডটি সেট করেছিলেন, সেটি উল্লেখ করুন।
অভিনন্দন! সবকিছু ঠিকঠাক থাকলে, আপনি পোস্টগ্রেস প্রম্পট দেখতে পাবেন এবং আপনার ডাটাবেসে কমান্ড চালাতে পারবেন।
এরপর কী?
এই কোডল্যাবগুলো দেখে নিন...