AWS वर्चुअल प्राइवेट क्लाउड का उपयोग करके मशीन लर्निंग के लिए एंड-यूज़र प्राइवेसी और डेटा सिक्योरिटी सुनिश्चित करना

करन - एनरिक गार्सिया पेरेज़ और टैसिलो क्लेन (एमएल रिसर्च बर्लिन)

कम्प्यूटेशनल प्रोसेसिंग पावर के लिए लगातार घटती लागत के साथ मिलकर बड़ी डेटा उपलब्धता आधुनिक दिन मशीन लर्निंग (एमएल) का आधार है। हाल के एल्गोरिदम सुधारों के साथ इस विकास ने कृत्रिम ज्ञान के एक नए युग की शुरुआत की है: गहन शिक्षा।

यद्यपि 60 के दशक में प्रौद्योगिकी की जड़ें वापस आ गई हैं, लेकिन हाल ही में इसने कंप्यूटर विज़न से लेकर प्राकृतिक भाषा प्रसंस्करण तक सभी प्रकार के डोमेन में अभूतपूर्व सफलताओं का अनुभव किया है। अप्रत्याशित रूप से, गहन शिक्षा अकादमिया और उद्योग दोनों के ध्यान के केंद्र में चली गई है। बड़े पैमाने पर विकसित होते हुए भी, यह डेटा वैज्ञानिकों के लिए एक वास्तविक वस्तु है।

गहरी सीखने की सफलता के साथ कभी बड़े डेटा सेट की भूख आती है। हालांकि, आवश्यक बड़े डेटा को ठीक से संभालना मुश्किल और दर्दनाक हो सकता है। कुछ जानकारी संवेदनशील हो सकती है और बाहरी दुनिया के सामने नहीं आ सकती है, क्योंकि हर समय डेटा गोपनीयता की गारंटी होनी चाहिए। इस संबंध में सबसे प्रमुख उदाहरण स्वास्थ्य देखभाल डेटा है जिसमें व्यक्तिगत पहचान योग्य जानकारी की संभावित बड़ी मात्रा में संग्रह और भंडारण की आवश्यकता होती है। सामान्य तौर पर, बड़े डेटा को संसाधित करने से कार्यों और डेटा में उतार-चढ़ाव के कारण बहुत गतिशील और स्केलेबल बुनियादी ढांचे की जरूरत होती है। इन हाल के घटनाक्रमों का एक संलयन मुश्किल हो सकता है और सुरक्षा उपायों के साथ-साथ जानबूझकर योजना की आवश्यकता होती है।

अब कल्पना कीजिए कि आप एक छोटे शैक्षणिक या उद्यम अनुसंधान समूह हैं और एक ही समय में डेटा की गोपनीयता की गारंटी देते हुए एमएल इन्फ्रास्ट्रक्चर का संचालन करना चाहते हैं। एसएपी एमएल रिसर्च में हमारी टीम इस समस्या को हल करने पर काम कर रही है ताकि अमेज़ॅन वर्चुअल प्राइवेट क्लाउड (वीपीसी) इन्फ्रास्ट्रक्चर का प्रस्ताव यह सुनिश्चित कर सके कि मशीन लर्निंग समाधान डेटा गोपनीयता के साथ हाथ में जाए। यह लेख एमएल विकास और तैनाती के लिए एक बुनियादी VPC टोपोलॉजी आदर्श को परिभाषित करता है। संक्षेप में, क्लाउड में VPCs आपको बहुत ही स्केलेबल वातावरण में विभिन्न एक्सेस आवश्यकताओं को परिभाषित करने और विनियमित करने की अनुमति देते हैं। हालांकि इस VPC के घटकों को स्वाभाविक रूप से AWS कंसोल का उपयोग करके कॉन्फ़िगर किया जा सकता है, ऐसा मैन्युअल रूप से करना न तो वास्तव में सुविधाजनक है और न ही प्रतिलिपि प्रस्तुत करने योग्य है। इसलिए इस तरह के इन्फ्रास्ट्रक्चर नेटवर्क की स्थापना करते समय इस कदम को स्वचालित करना महत्वपूर्ण है।

यहाँ एक शक्तिशाली ओपन-सोर्स ऑटोमेशन इंजन चलन में आता है: Ansible। इस ट्यूटोरियल के अंत में एक सरल कमांड चल रही है, जो एक ऐन्सिबल प्लेबुक (जो एक कॉन्फ़िगरेशन, परिनियोजन स्क्रिप्ट है) निष्पादित करता है, और आप सभी सेट कर रहे हैं! विशेष रूप से, इस बुनियादी ढांचे को एक बार स्थापित करने की आवश्यकता नहीं है। हालांकि, आप वीपीसी के लिए अतिरिक्त उदाहरण संलग्न करना चाह सकते हैं, उदा। नए छात्रों या कर्मचारियों को एक व्यक्तिगत कंप्यूटिंग नोड्स देना।

हमने जो VPC बनाई है उसमें दो सबनेट शामिल हैं: सार्वजनिक और निजी।

सार्वजनिक सबनेट में घटक होते हैं, जैसे कि गढ़ होस्ट, जो एक समर्पित उदाहरण है जो एसएसएच कनेक्शन की एक श्रृंखला बनाकर निजी नेटवर्क तक पहुंच को नियंत्रित करता है, उदाहरण के लिए नोड को गणना करने के लिए एक गढ़।

निजी सबनेट के भीतर, ऐसे घटक होते हैं जो संभावित (गोपनीय) डेटा को होस्ट या संचालित करते हैं। इसमें प्रशिक्षण मॉडल या डेटाबेस सर्वर के लिए नियोजित कंप्यूटिंग उदाहरण शामिल हो सकते हैं। जैसा कि सभी इनबाउंड ट्रैफ़िक गढ़ होस्ट के माध्यम से बहती है, यह ट्रैफ़िक नियंत्रण के लिए अनुमति देता है। सिद्धांत रूप में, आप उच्च सुरक्षा के लिए कई गढ़ मेजबानों की श्रृंखला कर सकते हैं। हालाँकि, सादगी के लिए हमने एक एकल, फिर भी पर्याप्त, उदाहरण का उपयोग किया। अंत में, घटकों को इंटरनेट तक पहुंच देने के लिए, उदाहरण के लिए सॉफ़्टवेयर पैकेज स्थापित करने के लिए, एक और घटक आवश्यक है। यह वह जगह है जहाँ NAT गेटवे खेल में आता है। हमारे उदाहरण में इसे एक लोचदार सार्वजनिक आईपी पते के साथ लागू किया गया है।

VPC टोपोलॉजी: अवयव कैसे बातचीत करते हैं

चित्रा 1 निजी और सार्वजनिक सबनेट से मिलकर VPC बुनियादी ढांचे के स्कीमा को दर्शाता है।

चित्र 1: वीपीसी इन्फ्रास्ट्रक्चर चित्रण

उत्तर देने योग्य स्वचालन

मॉड्यूलर प्लेबुक विन्यास सामग्री को मॉड्यूलर घटकों में संरचना करने के लिए तथाकथित भूमिकाओं और कार्यों का उपयोग करते हैं। हमारी परियोजना में playbook.yml शामिल है, जिसमें VPC बनाने की एकल भूमिका है। मुख्य.आईएमएल फ़ाइल कार्यों की एक सूची में भूमिका को और उपविभाजित करती है, जो कि एक बुनियादी स्तर पर हैं, जो एक अन्सिबल मॉड्यूल के लिए कॉल से अधिक कुछ नहीं है। हमारे मामले में कार्यों में VPC, सार्वजनिक और निजी सबनेट, NAT गेटवे, इंटरनेट गेटवे और सुरक्षा समूह बनाना शामिल है। कृपया विशिष्ट कार्य विवरण के लिए github भंडार में फाइलों को देखें।

उपर्युक्त फाइलों के अलावा, दूसरों के विपरीत, vars.yml, आप से कुछ मामूली अनुकूलन की आवश्यकता है। इसमें सभी आवश्यक पर्यावरण चर की परिभाषा शामिल है, जैसे कि सबनेट एड्रेस स्पेस और एक्सेस कुंजी।

अंजीर। 2 vars.yml फ़ाइल में सभी प्रमुख चर की रूपरेखा और स्पष्टीकरण प्रदान करता है। आप फ़ाइल स्निपेट में संशोधित किए जा सकने वाले चर पा सकते हैं

नोट: कृपया var.yml फ़ाइल में परिवर्तन करें, जैसे आपकी पहुंच कुंजी और VPC नाम, आपकी आवश्यकताओं के अनुसार।

VPC की स्थापना के लिए Ansible playbook स्निपेट (vars.yml)

# AWS के लिए प्राधिकरण चर
aws_access_key: "अपनी पहुंच कुंजी प्रदान करें"
aws_secret_key: "अपनी गुप्त कुंजी प्रदान करें"
aws_region: "यूरोप-पश्चिम -1"
# VPC के बारे में जानकारी
vpc_name: "ML_Research_VPC"
vpc_cidr_block: "10.0.0.0/16"
# सुरक्षा समूह नियम के लिए - वैकल्पिक (लचीला और बाद में संशोधित करने के लिए आसान)
my_ip: "X.X.X.X"
# सार्वजनिक सबनेट को परिभाषित करना
public_subnet_1_cidr: "10.0.0.0/24"
# निजी सबनेट को परिभाषित करना
Private_subnet_1_cidr: "10.0.1.0/24"

एक बार जब आप प्लेबुक से सभी फाइलों को डाउनलोड कर लेते हैं, तो आपको एडब्ल्यूएस के भीतर वीपीसी कॉन्फ़िगरेशन सेट करने के लिए आपको बस इतना करना होता है कि मुख्य प्लेबुक स्क्रिप्ट का उपयोग करना है:

ansible-playbook "आपकी playbook file.yml" -i इन्वेंट्री-e @ vars.yml

VPC कॉन्फ़िगरेशन को सफलतापूर्वक बनाते हुए, आपके टर्मिनल को चित्र 3 में दिखना चाहिए:

चित्र 3: वीपीसी क्रिएशन के लिए प्लेबुक का सफल निष्पादन

पूर्व चरणों का पालन करने के बाद, आप अपने AWS कंसोल पर जा सकते हैं और अपने हाल ही में बनाए गए VPC कॉन्फ़िगरेशन की जाँच कर सकते हैं (हमारे मामले में यह ML_RESEARCH_VPC है):

अब जब आपने आधारभूत संरचना की स्थापना कर ली है, तो आप उदाहरण प्रस्तुत करना शुरू कर सकते हैं। पहला उदाहरण जिसे आप तत्काल करना चाह सकते हैं वह है गढ़ होस्ट। जैसा कि पहले बताया गया है, यह केवल एक पुल के रूप में कार्य करता है, जो केवल निजी उपनल के भीतर इंस्टेंसेस की पहुंच की अनुमति देता है।

गढ़ मेजबान का विन्यास

जैसा कि गढ़ मेज़बान हमलों का सामना करने के लिए एक एप्लिकेशन या सेवा चलाने के एकल कार्य को पूरा करता है, यह छोटे प्रकार के EC2 उदाहरण (अमेज़ॅन वेब सेवा शब्दावली में वर्चुअल सर्वर) को चुनने के लिए पर्याप्त है, जैसे कि t2.micro। यह महत्वपूर्ण है कि उदाहरण सार्वजनिक सबनेट के साथ जुड़ा हुआ है, क्योंकि इसे एसएसएच के लिए पोर्ट 22 पर इंटरनेट से एक्सेस करने की आवश्यकता है। हमारे मामले में, सुरक्षा समूहों द्वारा कार्यान्वित किए जाने के तरीके से सभी आवश्यकताओं को पूरा किया जाता है (केवल डिफ़ॉल्ट रूप से SSH सुलभ), केवल निजी उदाहरणों के लिए उपयोग की अनुमति देता है, जो कि गढ़ होस्ट से होकर गुजरता है। इस प्रकार, गढ़ मेजबान सार्वजनिक सबनेट में एक चौकी के रूप में कार्य करता है।

यहाँ एक त्वरित संवादात्मक प्रदर्शन है कि कैसे एक गढ़ को लॉन्च किया जाए: इस मामले में अनुमत आईपी रेंज वैश्विक है, लेकिन आप इसे अपने उपयोग के मामले के आधार पर एंज़िबल प्लेबुक के माध्यम से सुरक्षा कारणों से रोकना चाहते हैं।

एक बार जब गढ़ मेजबान ऊपर और चल रहा है, तो आप अपने निजी इंस्टेंस का उपयोग केवल एसएसएच का उपयोग करके कर सकते हैं, क्योंकि वे निजी नेटवर्क के भीतर रहते हैं। SSH सुलभ होने के लिए, आपको गढ़ और उदाहरण दोनों में अधिकृत उपयोगकर्ताओं की सार्वजनिक कुंजियों को .sh / अधिकृत_की फ़ाइल में जोड़ना सुनिश्चित करना होगा। अधिक जानकारी के लिए कृपया इस ट्यूटोरियल को देखें।

VPC के निजी सबनेट में EC2 उदाहरण लॉन्च करना

अब जैसा कि हमने पूरा वातावरण तैयार कर लिया है, हम लगभग पूरी हो चुकी हैं और अभी एक और कदम बाकी है - मशीन लर्निंग के लिए EC2 उदाहरण लॉन्च करना। आइए हम एक उदाहरण प्रदर्शित करें कि आप अपने VPC में GPU उदाहरणों को कैसे लॉन्च कर सकते हैं और इस पर अपने गहन शिक्षण समाधान विकसित या चला सकते हैं। आपको बस यह चुनना है कि आप अपने उद्देश्य के आधार पर किस प्रकार का उदाहरण लॉन्च करना चाहते हैं, और फिर इसे बनाए गए VPC में संलग्न करें।

आपके उदाहरण तक पहुँचने के लिए SSH कॉन्फ़िगरेशन

अब जब आपका उदाहरण चल रहा है, तो अगला कदम इसके लिए कनेक्शन बनाना है। आप अपने निजी उदाहरण को सीधे एसएसएच-अग्रेषण को गढ़ होस्ट के माध्यम से सक्षम करके एक्सेस कर सकते हैं। इसके लिए बस अपने स्थानीय मशीन पर संपादन /। Ssh/config फ़ाइल की आवश्यकता होती है। इसके द्वारा आप मैन्युअल रूप से अपने गढ़ और फिर मेजबान से जुड़ने की थकाऊ प्रक्रिया से बच सकते हैं। आपको बस बोल्ड घटकों को अनुकूलित करने की आवश्यकता है।

10.0.1 होस्ट करें। *
    IdentityFile /path-to-your-pStreet-key.pem
    उपयोगकर्ता ec2-user
    ProxyCommand ssh ec2-user @ bastion -W% h:% p
    UseKeychain हाँ
मेजबान गढ़
    होस्टनाम [गढ़ का आईपी पता]
    उपयोगकर्ता ec2-user
    IdentityFile /path-to-your-pStreet-key.pem
    फॉरवर्डएजेंट हाँ

यह आपको अनिवार्य रूप से आपके स्थानीय मशीन से एक निजी इंस्टेंस को मैन्युअल रूप से एक्सेस करने के लिए बिना आपके गढ़ और फिर आपके निजी इंस्टेंस पर जाने देगा। हालाँकि, आप अभी भी एसएसएच कीज़ लगाने जैसे कार्यों के लिए गढ़ से जुड़ना चाह सकते हैं।

अपना आईपी कोड डालने के बाद आप अपने निजी उदाहरण से जुड़ते हैं:

                    ssh [उदाहरण के निजी-आईपी]

हालाँकि, आप अभी भी एसएसएच कुंजी सहित प्रशासनिक कार्यों के लिए गढ़ से जुड़ना चाह सकते हैं। गढ़ मेजबान से कनेक्ट करने के लिए, सभी करना है:

                            ssh गढ़

यहां बताया गया है कि आप निम्न आदेशों का उपयोग करते हुए किस प्रकार गढ़ होस्ट तक पहुंचते हैं: (लॉन्च किए गए निजी उदाहरण का पता 10.0.1.99 है)

ध्यान में रखना महत्वपूर्ण है: आम तौर पर दो अलग-अलग कुंजियों की सिफारिश की जाती है, एक गढ़ होस्ट के लिए और एक आपके निजी उदाहरण के लिए। गढ़ होस्ट पर अपनी निजी कुंजी को कभी भी संग्रहीत न करें, क्योंकि यह वांछित गोपनीयता से समझौता करता है।

अंत में, वर्णित बुनियादी ढांचा एमएल समाधान विकसित करने और डेटा बनाए रखने के लिए एक सुरक्षित नेटवर्क सुनिश्चित करता है। हालाँकि, आपके उपलब्धता क्षेत्र के विफल होने की स्थिति में इसे और अधिक मजबूत और कम समय के लिए बनाने के लिए, इस ट्यूटोरियल से परे टोपोलॉजी को बढ़ाया जा सकता है। इस तरह के आगे के कदम में कई उपलब्धता क्षेत्रों में फैले वीपीसी के डिजाइन को शामिल किया जा सकता है, ताकि सभी संसाधन एक विशिष्ट भौतिक स्थान पर न हों और अनावश्यक देरी या डाउनटाइम से बचें।

अब आप अपने उपयोग के मामले के अनुसार अपनी खुद की VPC का निर्माण शुरू कर सकते हैं। कृपया किसी भी प्रश्न या विचारों के लिए टिप्पणी करने के लिए स्वतंत्र महसूस करें!

निम्नलिखित गीथॉ रिपॉजिटरी का उपयोग करके पूरी प्लेबुक तक पहुंचें।

करण, एक एम.एससी। टीयू बर्लिन के छात्र इस पोस्ट में उल्लिखित एमएल इन्फ्रास्ट्रक्चर पर अपना ध्यान केंद्रित कर रहे हैं।