जब मैं ईसी 2 पर उबंटू का एक उदाहरण लॉन्च करना चाहता हूं, तो मुझे सही कैसे मिलेगा? कर रहे हैं हजारों उनके नाम में "Ubuntu" है कि सार्वजनिक छवियों की। मुझे केवल आधिकारिक उबंटू चित्र चलाने में दिलचस्पी है। अब मैं किस एएमआई को सही मानूं?
जब मैं ईसी 2 पर उबंटू का एक उदाहरण लॉन्च करना चाहता हूं, तो मुझे सही कैसे मिलेगा? कर रहे हैं हजारों उनके नाम में "Ubuntu" है कि सार्वजनिक छवियों की। मुझे केवल आधिकारिक उबंटू चित्र चलाने में दिलचस्पी है। अब मैं किस एएमआई को सही मानूं?
जवाबों:
एक मंच के रूप में उबंटू की सफलता और एएमआई को ताज़ा करने के लिए उबंटू की प्रतिबद्धता का मतलब है कि अमेज़ॅन ईसी 2 पर उनके नाम के साथ "उबंटू" के साथ शाब्दिक हजारों छवियां हैं। "क्विक स्टार्ट" मेनू पर उबंटू की कमी के साथ संयुक्त, सही एएमआई को एक गैर-तुच्छ कार्य का चयन करता है।
कुछ सामान्य उबंटू जानकारी
आप पहले से ही इन वस्तुओं के बारे में जानते होंगे, लेकिन मैं उन्हें उन लोगों के लिए इंगित करना चाहता हूं जो अभी उबंटू या ईसी 2 से शुरू कर रहे हैं।
सबसे आसान: अपने वेब ब्राउज़र से एएमआई खोजें
आप छवियों का चयन करने के लिए अपना इंटरफ़ेस चुन सकते हैं। या तो जाओ:
इस पृष्ठ के निचले भाग में, आप क्षेत्र, रिलीज़, आर्च या रूट-स्टोर का चयन कर सकते हैं। आपको केवल यहां सबसे हालिया रिलीज़ दिखाया गया है। जब आपने अपना चयन कर लिया है, तो आप एएमआई नंबर को कॉपी और पेस्ट कर सकते हैं, या उस एएमआई के लिए EC2 कंसोल लॉन्च पेज पर दाईं ओर जाने के लिए उस पर क्लिक कर सकते हैं।
या
अमेज़न EC2 कंसोल के माध्यम से खोजें
EC2 कंसोल एएमआई के माध्यम से सॉर्ट करने और लॉन्च करने के लिए एक का चयन करने के लिए एक ग्राफिकल तरीका है। यहां एक आधिकारिक उबंटू छवि लॉन्च करने के लिए, नीचे दिए गए चरणों का पालन करें।
Ubuntu-images / टाइप करके उबंटू स्थिर रिलीज़ छवियों के परिणामों को सीमित करें
आपको 'एएमआई नाम' फ़ील्ड को जितना संभव हो उतना विस्तृत करना चाहिए (शायद दूसरों को सिकोड़ें)।
परिणामों को एक विशेष रिलीज़ पर सीमित करके '*।'
उदाहरण के लिए: ubuntu-images /.* 10.04
परिणामों को दिए गए आर्च को ''। * I386 'या' *। Amd64 'द्वारा सीमित करें।
नोट : यदि आप m1.small या c1.medium चलाना चाहते हैं, तो आपको 'i386' चाहिए। यदि आप t1.micro चलाना चाहते हैं, तो आपको एक 'ebs' छवि का चयन करना होगा।
AMI नाम से अपना परिणाम क्रमबद्ध करें और चयन करें
एएमआई नाम से छाँटकर, आप किसी दिए गए सेट के लिए नवीनतम एएमआई को आसानी से देख सकते हैं। प्रत्येक एएमआई प्रारूप YYYYMMDD (वर्ष, माह, दिन) में एक संख्या के साथ समाप्त होता है। आप सबसे हाल का चाहते हैं।
स्वामी सत्यापित करें 099720109477 है!
कोई भी उपयोगकर्ता किसी भी नाम के तहत एएमआई दर्ज कर सकता है। कोई भी दुर्भावनापूर्ण उपयोगकर्ता को एएमआई दर्ज करने से रोकता है जो ऊपर की खोज से मेल खाता हो। इसलिए, सुरक्षित होने के लिए, आपको यह सत्यापित करने की आवश्यकता है कि अमी का मालिक ' 099720109477 ' है।
टिप्पणियाँ
HTTPS Access : ऊपर दिए गए विकल्पों में से, अभी https://cloud-images.ubuntu.com/server/releases/ केवल एक है जो https पर डेटा प्रदान करता है। यह आपके लिए महत्वपूर्ण हो सकता है यदि आप एएमआई आईडी ढूंढते समय संभावित "मैन इन द मिडल" हमलों के बारे में चिंतित हैं। मैंने https://cloud.ubuntu.com/ami को https एक्सेस का समर्थन करने के लिए अहमद [im0 को irc में] का अनुरोध किया है ।
वेब कंसोल 'लॉन्च इंस्टेंस' संवाद : मैंने ओनर आईडी को देखने के लिए 'लॉन्च इंस्टेंस' संवाद में कोई रास्ता नहीं देखा। क्योंकि अगर ऐसा है, तो मैं सुझाव देता हूं कि "कम्युनिटी एएमआई" खोजने के लिए उस डायलॉग का उपयोग न करें। कोई तरीका नहीं है कि आप मज़बूती से जान सकें कि छवि का स्वामी कंसोल के भीतर से कौन है। उन्नत उपयोगकर्ताओं के लिए, मैं एएमआई को प्रोग्रामेटिकली [हिंट] खोजने के तरीके पर जल्द ही कुछ समय के लिए ब्लॉग करूंगा।
hvm-instance
और के बीच अंतर सटीक कर सकते हैं hvm-ssd
? मुझे डर है "उदाहरण" का अर्थ है "असाधारण", लेकिन मुझे यकीन नहीं है, और इसके बारे में जानकारी नहीं मिल सकती है। इसके अलावा, यह नोट करने के लिए उपयोगी हो सकता है कि https://cloud-images.ubuntu.com/locator/
फ़िल्टर की पेशकश करें ... पृष्ठ के नीचे
नया और बेहतर संस्करण।
# needed as json list returned by ubuntu site is mal-formed
remove_last_comma() { sed '
$x;$G;/\(.*\),/!H;//!{$!d
}; $!x;$s//\1/;s/^\n//'
}
curl -s "https://cloud-images.ubuntu.com/locator/ec2/releasesTable" \
| remove_last_comma \
| jq -c '.aaData[] | select(contains(["16.04", "us-west-2", "hvm:ebs"]))' \
| grep -o 'ami-[a-z0-9]\+' | head -1
मूल रूप से ubuntu के अमी खोज पृष्ठ के लिए उपयोग किए गए कच्चे डेटा को पकड़ता है, और जब मैं चाहता हूं कि पंक्ति को बाहर निकालने के लिए jq का उपयोग करता है तो मूल्य निकालने के लिए एक grep। पुराने संस्करण की तुलना में बहुत तेज।
-- मूल संस्करण
यहाँ एक और उदाहरण है। मैंने यह सिर्फ नवीनतम भरोसेमंद एएमआई आईडी लाने के लिए लिखा है। यह एपीआई को क्वेरी करने के लिए aws cli टूल का उपयोग करता है, इस तथ्य का उपयोग करके कि नाम नवीनतम प्राप्त करने के लिए क्रम में क्रमबद्ध होते हैं।
name=$(\
aws --region us-west-2 ec2 describe-images --owners 099720109477 \
--filters Name=root-device-type,Values=ebs \
Name=architecture,Values=x86_64 \
Name=name,Values='*hvm-ssd/ubuntu-trusty-14.04*' \
| awk -F ': ' '/"Name"/ { print $2 | "sort" }' \
| tr -d '",' | tail -1)
ami_id=$(\
aws --region us-west-2 ec2 describe-images --owners 099720109477 \
--filters Name=name,Values="$name" \
| awk -F ': ' '/"ImageId"/ { print $2 }' | tr -d '",')
यह 2 भागों में काम करता है। पहला भाग ubuntu ट्रस्टी के लिए सभी एएमआई प्राप्त करता है जो विभिन्न मानदंडों (ईबीएस, x86_64, और नाम पैटर्न) को पूरा करते हैं। यह इसके द्वारा नाम और प्रकार को खींचता है। नामों को स्वरूपित किया जाता है ताकि उन्हें क्रमबद्ध रूप से क्रमबद्ध किया जा सके ताकि अंतिम सबसे नया हो। यह नाम तब 'नाम' चर को सौंपा गया है।
दूसरा हिस्सा उस नाम का उपयोग करता है जो उस नाम के साथ एएमआई के लिए एएमआई आईडी का अनुरोध करता है। यह केवल आईडी को पार्स करता है और इसे 'ami_id' को असाइन करता है।
aws --region us-west-2 ec2 describe-images --owners 099720109477 --filters Name=root-device-type,Values=ebs Name=architecture,Values=x86_64 Name=name,Values='*hvm-ssd/ubuntu-trusty-14.04*' --query 'sort_by(Images, &Name)[-1].ImageId'
रूबी aws-sdk का उपयोग करके, आप इस तरह नवीनतम Ubuntu AMI की खोज कर सकते हैं
ec2 = AWS::EC2.new
root_device_type = "ebs"
ami_owner = '099720109477'
ami_name = "*ubuntu/images/#{root_device_type}/ubuntu-precise-12.04*" # hardcoded to ubuntu 12.04. You can apply your own criteria here.
AWS.memoize do
linux_ami = ec2.images.with_owner(ami_owner).
filter("root-device-type", root_device_type).
filter("architecture", "x86_64"). # use 'i386' for 32 bit and 'x86_64' for 64 bit
filter("name", ami_name)
# this only makes one request due to memoization
begin
return linux_ami.to_a.sort_by(&:name).last
rescue
abort red "Error discovering latest AMI. Terminating."
end
end
आप https://cloud-images.ubuntu.com/locator/ec2/ का उपयोग कर सकते हैं, जो संस्करण, रिलीज़ रिलीज़ आदि के आधार पर एक व्यापक तुलना प्रदान करते हैं।
संस्करण के लिए खोजें, आप जिस क्षेत्र को चाहते हैं और नवीनतम संस्करण प्राप्त करने के लिए रिलीज़ की तारीख के आधार पर छाँटें।
उबंटू क्लाउड पोर्टल पर उपलब्ध आधिकारिक एएमआई की एक व्यापक सूची है । आप उबंटू सहायता में कैननिकल के आधिकारिक EC2 AMI रिलीज़ के बारे में अतिरिक्त संसाधन पाते हैं : EC2 ने गाइड शुरू किया और उबंटू के EC2 छवियों में Canonical द्वारा जारी सभी AMI की एक कच्ची निर्देशिका
मुझे लगा कि यह प्रदर्शित करने के लिए उपयोगी होगा कि यह कैसे एक्सेलेबल के साथ ec2_ami_find मॉड्यूल का उपयोग करके किया जाए ।
Ap-southeast-2 क्षेत्र में लेखन (2017-06-07) के समय AWS इन Ubuntu LTS छवियों का सुझाव देगा यदि आप कंसोल से मैन्युअल रूप से EC2 उदाहरण शुरू करते हैं:
यह एचवीएम वर्चुअलाइजेशन और ईबीएस समर्थित एसएसडी वॉल्यूम का उपयोग करने के लिए उनकी सिफारिशों के अनुरूप है ।
सर्वश्रेष्ठ प्रदर्शन के लिए, हम अनुशंसा करते हैं कि जब आप अपने इंस्टेंस लॉन्च करें तो आप वर्तमान पीढ़ी के प्रकारों और एचवीएम एएमआई का उपयोग करें।
समान एएमआई प्राप्त करने के लिए जो एडब्ल्यूएस की सिफारिश करते हैं, आप निम्नलिखित कार्यों का उपयोग कर सकते हैं:
- name: Find the most recent xenial AMI
ec2_ami_find:
aws_access_key: "{{ vault_aws_access_key }}"
aws_secret_key: "{{ vault_aws_secret_key }}"
region: "{{ config_region }}"
name: "ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"
owner: 099720109477 # canonical ownerid
virtualization_type: hvm
sort: name
sort_order: descending
sort_end: 2
register: ami_find_xenial
- name: Newest Xenial AMI
debug:
msg: "{{ ami_find_xenial.results[0].ami_id }}"
- name: AWS recommend Xenial AMI
debug:
msg: "{{ ami_find_xenial.results[1].ami_id }}"
- name: Find the most recent trusty AMI
ec2_ami_find:
aws_access_key: "{{ vault_aws_access_key }}"
aws_secret_key: "{{ vault_aws_secret_key }}"
region: "{{ config_region }}"
name: "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"
owner: 099720109477 # canonical ownerid
virtualization_type: hvm
architecture: x86_64
sort: name
sort_order: descending
sort_end: 3
register: ami_find_trusty
- name: Newest Trusty AMI
debug:
msg: "{{ ami_find_trusty.results[0].ami_id }}"
- name: AWS recommend Trusty AMI
debug:
msg: "{{ ami_find_trusty.results[2].ami_id }}"
जो निम्न आउटपुट देता है:
TASK [Load secrets from Vault] *****************************************************************************************************************************************************************************
ok: [localhost]
TASK [Find the most recent xenial AMI] *********************************************************************************************************************************************************************
ok: [localhost]
TASK [Newest Xenial AMI] ***********************************************************************************************************************************************************************************
ok: [localhost] => {
"changed": false,
"msg": "ami-1e01147d"
}
TASK [AWS recommended Xenial AMI] **************************************************************************************************************************************************************************
ok: [localhost] => {
"changed": false,
"msg": "ami-96666ff5"
}
TASK [Find the most recent trusty AMI] *********************************************************************************************************************************************************************
ok: [localhost]
TASK [Newest Trusty AMI] ***********************************************************************************************************************************************************************************
ok: [localhost] => {
"changed": false,
"msg": "ami-993e2bfa"
}
TASK [AWS recommended Trusty AMI] **************************************************************************************************************************************************************************
ok: [localhost] => {
"changed": false,
"msg": "ami-807876e3"
}
यदि आप प्लेबुक द्वारा लौटी एएमआई आईडी की तुलना करते हैं तो आप देख सकते हैं कि एडब्ल्यूएस नवीनतम उपलब्ध छवि की सिफारिश नहीं करता है, बल्कि दूसरा या तीसरा नवीनतम है। मुझे नहीं पता कि वे यहाँ क्या मापदंड / अनुमान लगा रहे हैं।