اذهب إلى المحتوى

Lujain

الأعضاء
  • المساهمات

    344
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    27

كل منشورات العضو Lujain

  1. HDFS هي اختصار لـ Hadoop Distributed File System وتعني نظام الملفات الموزّع وهو نظام موزّع، محمول وقابل للتطوير مكتوب بلغة جافا لإطار Hadoop حيث يتم تشكيل كتلة نظام ملفات Hadoop الموزّع عن طريق كتلة cluster من عقد البيانات dataNodes. يقوم نظام HDFS بتوزيع البيانات المخزّنة عبر الخوادم في الكتلة cluster وتخزين نسخ متعددة من البيانات على خوادم مختلفة لضمان عدم ضياع أي من البيانات في حال فشل أحد الخوادم (يوفّر نظام ملفات Hadoop قدرات توافر عالية). يعتبر نظام ملفات Hadoop نظام تخزين سريع الزوال حيث يتم استصلاحه عند إنتهاء الـ cluster. يعتبر HDFS نظام ملفات مفيد للتخزين المؤقت caching والنتائج الفورية أثناء معالجة MapReduce أو كأساس لمستودع البيانات للكتل طويلة الأمد long-running clusters. ما هو نظام ملفات HDFS؟
  2. عند تشغيل الـ cluster الخاص بك على أمازون EMR سيكون لديك عدة خيارات لكيفية تحديد العمل الذي يتعين على الـ cluster القيام به: - إنشاء cluster مؤقت: وهي clusters تعالج مجموعة من البيانات ثم تنتهي عند إنتهاء عملية المعالجة. حيث يتم تقديم تعريف كامل من العمل الذي سيتم تنفيذه في وظائف Map and Reduce . - إنشاء cluster طويل الأمد: ويتم ذلك إما عن طريق وحدة التحكم console ، أمازون Amazon EMR API أو واجهة سطر الأوامر CLI . - إنشاء cluster باستخدام تطبيقات Hadoop مثل تطبيقات Hive، Pig أو تثبيت HBase واستخدام الواجهة التي يوفّرها التطبيق. - إنشاء cluster طويل الأمد وإرسال وظائف Hadoop باستخدام Hadoop API.
  3. توّفر ويندوز Azure سهولة ربط مركز البيانات الخاص بك إلى السحابة: على عكس خدمات أمازون Amazon AWS يتيح لك ويندوز آجر Azure سهولة بناء تطبيقات هجينة hybrid applications التي تعمل على زيادة الموارد في مركز البيانات الخاصة بك وذلك في مزودي الخدمات أو ضمن خدمة Windows Azure نفسها. يمكن أيضًا استخدام مجموعة واسعة من الاتصالات الهجينة بما في ذلك الشبكات الافتراضية الخاصة (VPN) وشبكات توصيل المحتوى (CDNs)، التخزين المؤقت chasing كذلك استخدام اتصالات ExpressRoute لضمان الأداء وسهولة الاستخدام. يعمل Windows Azure على شبكة عالمية متنامية من مراكز بيانات مايكروسوفت عبر 19 منطقة وهو أول مزود سحابة متعدد الجنسيات في الصين القارية mainland China. استخدام Windows Azure لا يحتاج لجهد كبير في التعلم على عكس Amazon AWS. يتيح لك Windows Azure الوصول إلى نفس التقنيات التي تستخدمها ملايين الشركات الثقة اليوم. بما فيها ويندوز، لينكس، الأجهزة الافتراضية، الحاويات containers والـ Active Directory...الخ ما الفرق بين Azure و AWS؟
  4. تُعرّف Amazon EMR ثلاثة أدوار للخوادم في الكتلة cluster وهذه الأدوار المختلفة تُعرف بأنواع العقد Node Types. تعمل العقد Nodes في Amazon EMR بمثابة أدوار للخوادم كل دور مسؤول عن مهمة في الكتلة cluster. أنواع العقد Nodes في EMR: 1- Master Node أو العقدة الرئيسية تقوم بإدارة الـ cluster من خلال تنسيق توزيع MapReduce والمجموعات الفرعية وتحويلها من البيانات الخام إلى مجموعات أساسية وبيانات لمهمات Tasks بالاضافة لمتابعة حالة أداء كل مهمة ومراقبة صحة نسخ المجموعات instance group. ملاحظة: يوجد عقدة رئيسية وحدة في الكتلة cluster. 2- Core nodes أو العقد الأساسية: تُشغّل وتدير المهام ومخازن البيانات باستخدام نظام الملفات الموزعة (HDFS) في Hadoop 3- Task nodes عقد المهام أو العمل (اختيارية) تعرف بـ slave node أو العقدة الرقيقة تقوم بتشغيل المهمات. ماذا تعني Nodes في EMR؟
  5. تطبيقات Hadoop وتعرف بـ Apache Hadoop هو إطار برنامج جافا مفتوحة المصدر تدعم معالجة البيانات الضخمة عبر مجموعة من الخواديم. حيث يمكنك تشغيل خادوم واحد او حتى الآلاف من الخواديم. يستخدم Hadoop نموذج برمجة يسمى MapReduce لتوزيع معالجة البيانات عبر خواديم متعددة كما أنها تنفذ نظام الملفات الموزعة والتي تدعى HDFS التي تقوم بتخزين البيانات عبر عدّة خواديم. تقوم Hadoop بمراقبة صحة الخواديم على الـ cluster وتستطيع استدراك واسترجاع أي فشل أو خطأ لواحدة أو أكثر من العقد Nodes وبهذه الطريقة يوفّر Hadoop زيادة في المعالج وسعة التخزين مع وجود توافر عالي high availability. ما هي تطبيقات Hadoop؟
  6. يوفّر تشغيل تطبيقات Hadoop باستخدام Amazon Elastic MapReduce ميزات عديدة منها: يمكن تغيير حجم الكتلة Cluster (مرونة): عند تشغيل Hadoop cluster الخاص بك على Amazon EMR يمكنك بسهولة توسيع أو تقليص عدد الخوادم الافتراضية في الكتلة cluster اعتمادًا على احتياجات المعالجة الخاصة بك.الدفع على قدر الاستخدام فقط: على سبيل المثال إذا كان مقدار البيانات التي تُعالَج تبلغ ذروتها يوم الاثنين فيمكنك مثلًا زيادة عدد الخوادم الافتراضية لـ 50 في الكتلة cluster في هذا اليوم وتقليص عددها إلى 10 خوادم في بقية أيام الأسبوع.سهولة الاستخدام.استخدام Amazon S3: يمكنك تخزين بيانات المدخلات والمخرجات الخاصة بك على أمازون S3.استخدام المجموعات أو الكتل المتوازية Parallel Clusters يمكن أن يكون لديك مجموعة متعددة من الكتل clusters تستطيع الوصول لنفس البيانات في وقت واحد.تدعم تطبيقات Hadoop.تحقيق التكامل مع خدمات AWSتدعم ذكاء الأعمال Business Intelligence.توفير تحكم كامل للمستخدمين.وجود طبقة حماية وأمان عالية.
  7. تُستخدم Amazon EMR لتشغيل وإدارة Hadoop clusters على خدمات أمازون حيث تعمل Hadoop clusters وهي مجموعة من الخوادم على أداء المهام المحوسبة من خلال توزيع العمل والبيانات بين الخوادم. من المهام التي تؤديها Hadoop clusters تحليل البيانات، تخزين البيانات أو نقل وتحويل البيانات ويتم ذلك باستخدام عدّة أجهزة حاسوب مرتبطة مع بعضها في الكتلة Cluster. حيث تقوم Amazon EMR بتشغيل Hadoop cluster على خواديم افتراضية تقدّمها Amazon EC2. كيف تعمل Amazon EMR في AWS؟
  8. Amazon EMR هي اختصار لـ Elastic MapReduce تمكّنك هذه الخدمة من تحليل ومعالجة كمية هائلة من البيانات وذلك من خلال توزيع العمل الحسابي عبر مجموعة من الخوادم الافتراضية cluster of virtual servers تعمل في سحابة أمازون. تتم إدارة الكتلة أو المجموعة cluster باستخدام منصة مفتوحة المصدر تدعى Hadoop، حيث تستخدم Hadoop هندسة المعالجة الموزعة MapReduce (يتم تعيين المهام لمجموعة من خوادم المعالجة) حيث يتم تقليل النتائج المحوسبة التي تؤديها تلك الخوادم إلى مجموعة واحدة من الخرج output تسمى عقدة Node. يوضح الرسم البياني التالي ارتباط Hadoop cluster مع العقدة الرئيسية التي تصل مجموعة من العقد slave nodes لمعالجة البيانات.
  9. يمكنك استخدام واجهة سطر الأوامر CLI لتحديد Linux AMI لنسختك كذلك استعراض أنواع AMI المتاحة لتختار منها ما يناسبك. مثلًا لإيجاد public AMIs الخاصة بـ Amazon استخدم الامر describe-images $ aws ec2 describe-images --owners self amazonلإيجاد AMIs المدعومة من قبل Amazon EBS قم بإضافة الفلتر التالي إلى الأمر أعلاه: --filters "Name=root-device-type,Values=ebs"بعد تحديد AMI المناسبة والتي تلبي احتياجاتك قم بكتابة المعرّف ID الخاص بها (ami-xxxxxxxx) يمكنك استخدام AMI لتشغيل وإطلاق النسخة instance الخاصّة بك
  10. CloudFront هي خدمة ويب تسرع من عملية توزيع محتوى الويب الثابت والديناميكي على سبيل المثال: .html, .css, .php وملفات الصور. حيث تقوم CloudFront بتقديم المحتوى الخاص بك عبر شبكة عالمية من مراكز البيانات تسمى edge locations. فعندما يقوم مستخدم بطلب محتوى مُخدّم بـ CloudFront يتم توجيه وتحويل المستخدم إلى edge locations التي توفّر أدنى تأخير time dekay إذ يتم تسليم المحتوى مع أفضل أداء ممكن. إذا كان المحتوى موجود مسبقًا في edge locations فتقوم خدمة CloudFront بتسليمه فورًا وبشكل مباشر أما في حال لم يكن المحتوى موجودًا في edge locations فستقوم CloudFront باسترجاعه من محفظة التخزين Bucket في Amazon S3 أو من HTTP Server والذي كنت قد حددته كمصدر للنسخة النهائية للمحتوى الخاص بك. ما هي Amazon CloudFront؟
  11. تدعم واجهة سطر الأوامر High-level AWS S3 استخدام عمليات محفظة التخزين Bucket كإنشاء محفظة تخزين والحذف.. الخ. لإنشاء محفظة تخزين باستخدام CLI اكتب الأمر التالي: $ aws s3 mb s3://bucket-nameيجب أن يكون اسم محفظة التخزين فريد unique ويمكن أن يحوي على حروف صغيرة أو كبيرة وكذلك أرقام. لحذف محفظة تخزين Bucket اكتب الأمر التالي: $ aws s3 rb s3://bucket-nameيقوم الأمر اعلاه بحذف محفظة تخزين فارغة أما في حال رغبتك بحذف Bucket تحوي على عناصر فاستخدام الخيار force-- كما في المثال التالي: $ aws s3 rb s3://bucket-name --forceسيقوم الأمر أعلاه بحذف جميع العناصر الموجودة في محفظة التخزين بما في ذلك المحفظة نفسها. لاستعراض محتوى محفظة تخزين اكتب الأمر التالي: $ aws s3 ls CreationTime Bucket ------------ ------ 2013-07-11 17:08:50 my-bucket 2013-07-24 14:55:44 my-bucket2
  12. لإنشاء IAM Group وإضافة مستخدمين للمجموعة باستخدام واجهة سطر الأوامر CLI أولًا استخدم الأمر create-group لإنشاء مجموعة: $ aws iam create-group --group-name MyIamGroup { "Group": { "GroupName": "MyIamGroup", "CreateDate": "2012-12-20T03:03:52.834Z", "GroupId": "AKIAI44QH8DHBEXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyIamGroup", "Path": "/" } }2- استخدم الأمر create-user لإنشاء مستخدم $ aws iam create-user --user-name MyUser { "User": { "UserName": "MyUser", "Path": "/", "CreateDate": "2012-12-20T03:13:02.581Z", "UserId": "AKIAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/MyUser" } }3- استخدم الأمر add-user-to-group لإضافة مستخدم إلى مجموعة $ aws iam add-user-to-group --user-name MyUser --group-name MyIamGroup4- للتحقق من وجود مستخدم في مجموعة استخدم الأمر get-group لعرض معلومات المجموعة $ aws iam get-group --group-name MyIamGroup { "Group": { "GroupName": "MyIamGroup", "CreateDate": "2012-12-20T03:03:52Z", "GroupId": "AKIAI44QH8DHBEXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyIamGroup", "Path": "/" }, "Users": [ { "UserName": "MyUser", "Path": "/", "CreateDate": "2012-12-20T03:13:02Z", "UserId": "AKIAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/MyUser" } ], "IsTruncated": "false"يمكنك أيضًا استعراض المستخدمين IAM users والمجموعات groups باستخدام AWS Management Console كيف أنشئ IAM Group باستخدام CLI؟
  13. لإيجاد Linux AMI باستخدام Amazon EC2 Console: 1- افتح Amazon EC2 console 2- اختر المنطقة region من قائمة الخيارات (يمكنك اختيار أي منطقة متاحة لك) هذه المنطقة تحدد أين ستقوم بإطلاق وتشغيل نسختك. 3- اختر AMIs من navigation pane. 4- (اختياريًا) استخدم خيار التصفية filter لفلترة النتائج. مثلًا لرؤية جميع AMIs التي تقدّمها AWS اختر public images. ستظهر لك القائمة على الشكل التالي: 5- انقر فوق شريط البحث واختر Owner من القائمة. ثم حدد Amazon images. 6- انقر فوق شريط البحث مرة أخرى واختر platform ثم حدد نظام التشغيل الخاص بك. قبل تحديد AMI من المهم أن تتحقق فيما إذا كانت مدعومة من قبل instance store أو Amazon EBS أم لا. Storage for the Root Device 7- لتشغيل النسخة instance من AMI قم بتحديدها ثم انقر فوق تشغيل Launch. كيف أحدّد Linux AMI مناسبة لتشغيل النسخة باستخدام Amazon EC2 Console؟
  14. يمكنك استخدام AWS CLI لتشغيل النسخ instances الخاصّة بك على AWS. عليك أولًا أن تحصل على زوج المفاتيح key pairs ومجموعة الأمان Security Group للحصول على معلومات عن كيفية إنشاءها باستخدام واجهة سطر الأوامر CLI راجع الرابطين أدناه: كيف أنشئ Security Group باستخدام واجهة سطر الأوامر AWS CLI؟ كيف أنشئ Key Pairs باستخدام واجهة سطر الأوامر AWS CLI؟ ستحتاج أيضًا لتحديد Amazon Machine Image أو AMI ID للحصول على معلومات عن كيفية إنشاءها راجع الرابطين أدناه: كيف أستخدم CLI لتحديد Linux AMI مناسبة لتشغيل النسخة؟ كيف أحدّد Linux AMI مناسبة لتشغيل النسخة باستخدام Amazon EC2 Console؟ الآن لتشغيل نسخة Amazon EC2 instance باستخدام AMI التي قمت بتحديدها استخدم الأمر run-instance. يمكنك تشغيل النسخة اعتمادًا على المنصات التي يدعمها حسابك على EC2-Classic أو EC2-VPC في البداية تكون النسخة instance الخاصّة بك في حالة انتظار Pending. يقوم الأمر التالي بتشغيل t1.micro instance في EC2-Classic $ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t1.micro --key-name MyKeyPair --security-groups my-sg { "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "ProductCodes": [], "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": null, "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "InstanceType": "t1.micro", "NetworkInterfaces": [], "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ] }لتشغيل t1.micro instance في EC2-VPC $ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t1.micro --key-name MyKeyPair --security-group-ids sg-xxxxxxxx --subnet-id subnet-xxxxxxxx { "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "PrivateIpAddress": "10.0.1.114", "ProductCodes": [], "VpcId": "vpc-1a2b3c4d", "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": ip-10-0-1-114.ec2.internal, "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "SubnetId": "subnet-6e7f829e", "InstanceType": "t1.micro", "NetworkInterfaces": [ { "Status": "in-use", "SourceDestCheck": true, "VpcId": "vpc-1a2b3c4d", "Description": "Primary network interface", "NetworkInterfaceId": "eni-a7edb1c9", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Primary": true, "PrivateIpAddress": "10.0.1.114" } ], "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-52193138", "AttachTime": "2013-07-19T02:42:39.000Z" }, "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "SubnetId": "subnet-6e7f829e", "OwnerId": "123456789012", "PrivateIpAddress": "10.0.1.114" } ], "SourceDestCheck": true, "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ] }كيف أشغّل نسخة t1.micro باستخدام واجهة سطر الأوامر؟
  15. يمكن إنشاء مجموعة أمان Security Group باستخدام واجهة سطر الأوامر CLI ويتم ذلك باستخدام الأمر create-security-group لإنشاء مجموعة أمان في EC2-VPC اكتب الأمر التالي: $ aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-id vpc-1a2b3c4d { "GroupId": "sg-903004f8" }لعرض المعلومات الأولية للمجموعة my-sg استخدم الأمر describe-security-group: $ aws ec2 describe-security-groups --group-ids sg-903004f8 { "SecurityGroups": [ { "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "UserIdGroupPairs": [] } ], "Description": "My security group" "IpPermissions": [], "GroupName": "my-sg", "VpcId": "vpc-1a2b3c4d", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }لإضافة قواعد لمجموعة الأمان الخاصة بك في EC2-VPC: الأمر التالي يضيف قاعدة لمجموعة أمان لها معرّف ID sg-903004f8 $ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 3389 --cidr 203.0.113.0/24لإضافة قاعدة لـ SSH إلى مجموعة أمان لها معرّف ID sg-903004f8 اكتب الأمر التالي: $ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 22 --cidr 203.0.113.0/24لعرض التغييرات في مجموعة استخدم الأمر describe-security-group على النحو التالي: $ aws ec2 describe-security-groups --group-ids sg-903004f8 { "SecurityGroups": [ { "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "UserIdGroupPairs": [] } ], "Description": "My security group" "IpPermissions": [ { "ToPort": 22, "IpProtocol": "tcp", "IpRanges": [ { "CidrIp": "203.0.113.0/24" } ] "UserIdGroupPairs": [], "FromPort": 22 } ], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }يمكنك حذف مجموعة أمان باستخدام الأمر delete-security-group. الأمر التالي يقوم بحذف مجموعة أمان لها معرّف ID sg-903004f8 في EC2-VPC $ aws ec2 delete-security-group --group-id sg-903004f8ملاحظة: لا يمكنك حذف مجموعة أمان مرتبطة ببيئة في AWS
  16. الخطوة الأولى لتشغيل EC2 instance بواسطة CLI هي عمل تكوين Configuration لواجهة سطر الاوامر AWS CLI: 1- تكوين واجهة سطر الأوامر: شغّل aws configure لإنشاء الشهادات credentials والاعدادات الخاصّة بك: $ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: jsonسوف تطالبك AWS CLI بالمعلومات التالية: AWS Access Key ID and AWS Secret Access Key وهي أوراق اعتماد الحساب الخاص بك إن لم يكن لديك مفاتيح keys عليك إنشاء مفتاح خاص. Default region name وهو اسم المنطقة. استخدم us-west-2 في هذه الحالة (يمكنك تغيير المنطقة لاحقًا عن طريق تشغيل تكوين AWS مرة أخرى) Default output format تحدد الشكل الذي سيظهر به الخرج output إما json أو نص text أو جدول table إن لم تحدد صيغة للخرج فسيتم استخدام json. 2- إنشاء key pairs و مجموعة أمان Security Group لـ EC2 instance 3- التشغيل والاتصال بالنسخة: قم بتشغيل الأمر التالي: $ aws ec2 run-instances --image-id ami-29ebb519 --security-group-ids sg-b018ced5 --count 1 --instance-type t2.micro --key-name devenv-key --query 'Instances[0].InstanceId' "i-ec3e1e2k"ستأخذ النسخة لحظات ليتم تشغيلها وعندها سيقوم الأمر التالي باسترجاع عنوان IP عام الذي سوف تستخدمه للاتصال بالنسخة instance: $ aws ec2 describe-instances --instance-ids i-ec3e1e2k --query 'Reservations[0].Instances[0].PublicIpAddress' "54.183.22.255"للاتصال بالنسخة instance استخدم عنوان الـ IP العام والمفتاح الخاص private key باستخدام الأمر التالي: $ ssh -i devenv-key.pem ubuntu@54.183.22.255سيتم مطالبتك بقبول المفتاح العام للخادوم اكتب yes واضغط Enter لاتمام الاتصال. كيف أنشر بيئة التطوير في Amazon EC2 تعمل على أبونتو 14.04 باستخدام AWS CLI ؟
  17. يعالج bundled Installer كل التفاصيل في إنشاء بيئة لواجهة AWS CLI. المتطلبات الأساسية لتثبيت واجهة سطر الأوامر CLI باستخدام bundled Installe: نظام تشغيل Linux, OS X, or UnixPython 2 version 2.6.5+ or Python 3 version 3.3+1- تحقق فيما إذا كان لديك بايثون مثبتة: $ python --version2- إذا لم يكن لديك بايثون مثبتة فقم بتثبيت الإصدار 2.7 أو 3.4 باستخدام أحد الطرق التالية: على ويندوز أو OS X حمّل حزمة بايثون لنظام التشغيل الخاص بك من python.orgعلى لينكس أو يونكس ثبّت بايثون باستخدام distribution's package manager.لتثبيت بايثون 2.7 على لينكس اتبع الاجراءات في Install Paythonلتثبيت واجهة سطر الأوامر CLI باستخدام bundled Installe على نظام تشغيل ماك OS X: 1- قم بتحميل AWS CLI Bundled Installer $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" 2- قم بفك الضغط عن الحزمة $ unzip awscli-bundle.zip3- شغّل التثبيت القابل للتنفيذ install executable $ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/awsملاحظة: افتراضيًا يعمل install script على الاصدار الافتراضي لبايثون إن كنت قد قمت بتثبيت نسخة بديلة من بايثون وتريد استخدامها لتثبيت AWS CLI شغّل install script بذلك الإصدار عن طريق مسار مطلق لملف تنفيذ بايثون على سبيل المثال: $ sudo /usr/local/bin/python2.7 awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws كيف أثبت AWS CLI على ماك OS X باستخدام Bundled Installer؟
  18. لإنشاء زوج مفاتيح Key Pairs باستخدام واجهة سطر الأوامر AWS CLI استخدم الأمر create-key-pair والخيار query-- و output text-- لوضع المفتاح الخاص private key الخاص بك مباشرة إلى الملف $ aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pemلاحظ أنه يتم إعادة توجيه الملف إلى الترميز UTF-8 في Windows PowerShell والتي لا يمكن استخدامها مع بعض عملاء SSH لذا يجب تحديدها صراحةً في الأمر: > aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text | out-file -encoding ascii -filepath MyKeyPair.pemسيكون ناتج ملف MyKeyPair.pem يبدو على الشكل التالي: -----BEGIN RSA PRIVATE KEY----- EXAMPLEKEYKCAQEAy7WZhaDsrA1W3mRlQtvhwyORRX8gnxgDAfRt/gx42kWXsT4rXE/b5CpSgie/ vBoU7jLxx92pNHoFnByP+Dc21eyyz6CvjTmWA0JwfWiW5/akH7iO5dSrvC7dQkW2duV5QuUdE0QW Z/aNxMniGQE6XAgfwlnXVBwrerrQo+ZWQeqiUwwMkuEbLeJFLhMCvYURpUMSC1oehm449ilx9X1F G50TCFeOzfl8dqqCP6GzbPaIjiU19xX/azOR9V+tpUOzEL+wmXnZt3/nHPQ5xvD2OJH67km6SuPW oPzev/D8V+x4+bHthfSjR9Y7DvQFjfBVwHXigBdtZcU2/wei8D/HYwIDAQABAoIBAGZ1kaEvnrqu /uler7vgIn5m7lN5LKw4hJLAIW6tUT/fzvtcHK0SkbQCQXuriHmQ2MQyJX/0kn2NfjLV/ufGxbL1 mb5qwMGUnEpJaZD6QSSs3kICLwWUYUiGfc0uiSbmJoap/GTLU0W5Mfcv36PaBUNy5p53V6G7hXb2 bahyWyJNfjLe4M86yd2YK3V2CmK+X/BOsShnJ36+hjrXPPWmV3N9zEmCdJjA+K15DYmhm/tJWSD9 81oGk9TopEp7CkIfatEATyyZiVqoRq6k64iuM9JkA3OzdXzMQexXVJ1TLZVEH0E7bhlY9d8O1ozR oQs/FiZNAx2iijCWyv0lpjE73+kCgYEA9mZtyhkHkFDpwrSM1APaL8oNAbbjwEy7Z5Mqfql+lIp1 YkriL0DbLXlvRAH+yHPRit2hHOjtUNZh4Axv+cpg09qbUI3+43eEy24B7G/Uh+GTfbjsXsOxQx/x p9otyVwc7hsQ5TA5PZb+mvkJ5OBEKzet9XcKwONBYELGhnEPe7cCgYEA06Vgov6YHleHui9kHuws ayav0elc5zkxjF9nfHFJRry21R1trw2Vdpn+9g481URrpzWVOEihvm+xTtmaZlSp//lkq75XDwnU WA8gkn6O3QE3fq2yN98BURsAKdJfJ5RL1HvGQvTe10HLYYXpJnEkHv+Unl2ajLivWUt5pbBrKbUC gYBjbO+OZk0sCcpZ29sbzjYjpIddErySIyRX5gV2uNQwAjLdp9PfN295yQ+BxMBXiIycWVQiw0bH oMo7yykABY7Ozd5wQewBQ4AdSlWSX4nGDtsiFxWiI5sKuAAeOCbTosy1s8w8fxoJ5Tz1sdoxNeGs Arq6Wv/G16zQuAE9zK9vvwKBgF+09VI/1wJBirsDGz9whVWfFPrTkJNvJZzYt69qezxlsjgFKshy WBhd4xHZtmCqpBPlAymEjr/TOlbxyARmXMnIOWIAnNXMGB4KGSyl1mzSVAoQ+fqR+cJ3d0dyPl1j jjb0Ed/NY8frlNDxAVHE8BSkdsx2f6ELEyBKJSRr9snRAoGAMrTwYneXzvTskF/S5Fyu0iOegLDa NWUH38v/nDCgEpIXD5Hn3qAEcju1IjmbwlvtW+nY2jVhv7UGd8MjwUTNGItdb6nsYqM2asrnF3qS VRkAKKKYeGjkpUfVTrW0YFjXkfcrR/V+QFL5OndHAKJXjW7a4ejJLncTzmZSpYzwApc= -----END RSA PRIVATE KEY-----لا يتم تخزين المفتاح الخاص private key الخاص بك في AWS ولا يمكن استرجاعه عن إنشاءه. إذا كنت تستخدم SSH client على جهاز لينكس للاتصال بالنسخة instance الخاصّة بك استخدم الامر التالي لتعيين أذونات ملف المفتاح الخاص private key بحيث يمكنك وحدك قراءته. $ chmod 400 MyKeyPair.pem كيف أنشئ Key Pairs باستخدام واجهة سطر الأوامر AWS CLI؟
  19. Pip هي أداة Python-based توفّر وسيلة لتثبيت، تحديث (ترقية) حزم بايثون والتبعيات الخاصة بها وهي طريقة يوصى بها لتثبيت واجهة سطر الأوامر CLI على لينكس أو ماك. المتطلبات الأساسية لتثبيت واجهة CLI باستخدام pip: نظام تشغيل Windows, Linux, OS X, or UnixPython 2 version 2.6.5+ or Python 3 version 3.3+Pip1- أولًا تحقق فيما إذا كان لديك بايثون مثبتة $ python --version2- إذا لم يكن لديك بايثون مثبتة فقم بتثبيت الإصدار 2.7 أو 3.4 باستخدام أحد الطرق التالية: على ويندوز أو OS X حمّل حزمة بايثون لنظام التشغيل الخاص بك من python.org ثم شغّل المثبّت (يحوي المثبّت على pip)على لينكس أو يونكس ثبّت بايثون باستخدام distribution's package manager.لتثبيت بايثون 2.7 على لينكس اتبع الاجراءات في Install Paython3- تحقق فيما إذا كان لديك pip مثبتة $ pip --help4- إذا لم يكن لديك pip مثبتة فقم بتحميل برنامج التثبيت من pypa.io $ curl -O https://bootstrap.pypa.io/get-pip.pyسيتم تحميل وتثبيت الاصدار الأحدث من pip والحزم الاخرى المطلوبة setuptoolsشغّل السكربت مع بايثون:$ sudo python27 get-pip.py Collecting pip Downloading pip-6.1.1-py2.py3-none-any.whl (1.1MB) Collecting setuptools Downloading setuptools-15.0-py2.py3-none-any.whl (501kB) Installing collected packages: pip, setuptools Successfully installed pip-6.1.1 setuptools-15.0 الآن لتثبيت AWS CLI باستخدام pip على لينكس: اكتب الأمر التالي لتثبيت awscli باستخدام pip: $ sudo pip install awscliلتحديث وترقية AWS CLI استخدم خيار --upgrade: $ sudo pip install --upgrade awscli
  20. تدعم أنظمة تشغيل ويندوز واجهة الأوامر CLI ابتداءً من إصدار Windows XP فما فوق. لتثبيت واجهة سطر الأوامر CLI توفّر حزمة MSI installation وسيلة مألوفة ومريحة لتثبيت الواجهة دون الحاجة لتنصيب أي متطلبات أخرى: 1- عليك أولًا تحميل نسخة MSI installer الملائمة لنظام التشغيل الخاص بك: (Download the AWS CLI MSI installer for Windows (64-bit(Download the AWS CLI MSI installer for Windows (32-bitملاحظة: لا يعمل MSI installer حاليًا على ويندوز سيرفر 2008 إصدار 6.0.6002 لذا استخدم pip لتثبيت CLI على هذا الاصدار من ويندوز. 2- بعد تحميل MSI installer شغل النسخة واتبع تعليمات تنصيب MSI. 3- تُثبّت وجهة سطر الأوامر CLI في C:\Program Files\Amazon\AWSCLI (64-bit) أو في C:\Program Files (x86)\Amazon\AWSCLI(32-bit) لتأكيد التثبيت استخدم موجه أوامر aws --version command (افتح قائمة ابدأ وابحث عن cmd) ملاحظة: إذا كان موجه الأوامر مفتوحًا عندما قمت بتشغيل المثبت installer فقم بإغلاقه وفتحه من جديد لالتقاط معلومات المسار المحدّثة. > aws --version aws-cli/1.7.36 Python/2.7.9 Windows/7تحديث تثبيت MSI: يتم تحديث واجهة AWS CLI بانتظام. تحقق من صفحة البيانات على GitHub لمعرفة متى تم الإعلان عن آخر إصدار. عند تحميلك لإصدار MSI installer جديد قم بتشغيله وتنصيبه كما في الخطوات أعلاه.
  21. واجهة سطر الأوامر Command Line Interface في AWS هي أداة موّحدة لإدارة خدمات أمازون الخاصة بك، حيث يمكنك التحكم بخدمات AWS العديدة من خلال واجهة واحدة. قبل أن تبدأ باستخدام واجهة سطر الأوامر AWS Command Line Interface عليك إنشاء حساب AWS (إن كنت لا تملك واحدًا). ثم إنشاء بيئة CLI خاصة بك اعتمادًا على نظام التشغيل الذي تستخدمه. يوجد عدّة طرق لتثبيت AWS CLI: MSI installerbundled installeأو باستخدام pipاختيار طريقة تثبيت AWS CLI: على مايكروسفت ويندوز: استخدم MSI installerعلى لينكس، ماك أو يونكس: استخدم pip وهي عبارة عن مدير حزم لبرامج بايثون أو يمكنك تثبيتها يدويًا باستخدام bundled installer
  22. لإنشاء Docker images لتطبيق PHP ثم رفعها إلى Docker Hub: 1- قم بتنصيب git وذلك لاستنساخ تطبيق PHP بسيط من Amazon GitHub repository إلى نظام التشغيل الخاص بك. a- تثبيت git: [ec2-user ~]$ sudo yum install -y git b- استنساخ تطبيق PHP إلى نظام التشغيل الخاص بك: [ec2-user ~]$ git clone https://github.com/awslabs/ecs-demo-php-simple-app2- تغيير الـ directories إلى المجلد ecs-demo-php-simple-app [ec2-user ~]$ cd ecs-demo-php-simple-app3- اختبر الملف Dockerfile في هذا المجلد (ملف Dockerfile هو عبارة عن manifest يصف ما هي الصورة image التي تريدها وما الذي تريد تنصيبه وتشغيله عليها). تستخدم ECS task definition صور الحاويات Doker images لتشغيل الحاويات Containers على الحاويات الافتراضية في الكتلة Cluster الخاصة بك. [ec2-user ecs-demo-php-simple-app]$ cat Dockerfile FROM ubuntu:12.04 # Install dependencies RUN apt-get update -y RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql # Install app RUN rm -rf /var/www/* ADD src /var/www # Configure apache RUN a2enmod rewrite RUN chown -R www-data:www-data /var/www ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_LOG_DIR /var/log/apache2 EXPOSE 80 CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]4- قم بعمل Build لـ Docker image من DockerFile واستبدل الاسم my-dockerhub-username باسم مستخدم Docker Hub الخاص بك. [ec2-user ecs-demo-php-simple-app]$ docker build -t my-dockerhub-username/amazon-ecs-sample .5- شغّل docker images للتحقّق من أنه تم إنشاء الصورة بشكل صحيح وأن اسم الصورة يحتوى على المستودع repository الذي يمكنك إضافة اسم مستخدم Docker Hub الخاص بك. [ec2-user ecs-demo-php-simple-app]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE my-dockerhub-username/amazon-ecs-sample latest 43c52559a0a1 12 minutes ago 258.1 MB ubuntu 12.04 78cef618c77e 3 weeks ago 133.7 MB6- قم بتشغيل الصورة التي بنيت حديثًا: [ec2-user ecs-demo-php-simple-app]$ docker run -p 80:80 my-dockerhub-username/amazon-ecs-sample7- افتح المتصفح وقم بالإشارة إلى الخادوم الذي يشغّل Docker ويستضيف الحاوية الخاصة بك. إن كنت تستخدم EC2 instance ستكون هذه قيمة DNS العامة للخادوم. والذي هو العنوان نفسه الذي تستخدمه للاتصال بالنسخة instance مع SSH. تأكد من أن مجموعة الأمان لديك تسمح بحركة المرور الواردة على المنفذ 80.إن كنت تقوم بتشغيل Docker محليًا على جهاز لينكس أشر متصفحك إلى http://localhost/إن كنت تستخدم boot2docker على جهاز ويندوز أو ماك فقم بإيجاد عنوان IP لـ VirtualBox VM التي تستضيف Docker.$ boot2docker ip 192.168.59.103 8- قم بإيقاف حاوية Docker بكتابة Ctrl + C 9- لرفع Docker image إلى حساب Docker Hub الخاص بك: a- سجل الدخول إلى حساب Docker الخاص بك. [ec2-user ecs-demo-php-simple-app]$ docker loginb- تحقق من أنك قد قمت بتسجيل الدخول بشكل صحيح. [ec2-user ecs-demo-php-simple-app]$ docker infoيجب أن يظهر لك "Username: my-dockerhub-username" في الخرج output c- عمل push للصورة image [ec2-user ecs-demo-php-simple-app]$ docker push my-dockerhub-username/amazon-ecs-sampleملاحظة: إن تلقيت خطأ "FATA[0012] Error pushing to registry: Authentication is required" تحقق من أنك تستخدم المستودع الذي يملك صلاحيات أو أذونات تسمح لك بعمل Push. كيف أنشئ Docker images وأرفعها إلى Docker Hub؟
  23. لحذف كائن object في Amazon S3: 1- سجل الدخول إلى Amazon S3 Console https://console.aws.amazon.com/s3/ 2- اختر الملف الذي تريد حذفه من القائمة في محفظة التخزين Bucket وانقر عليه بالزر اليميني ثم اختر Delete ملاحظة: يمكنك استخدام Shift+ Ctrl لتحديد أكثر من ملف وتطبيق عملية الحذف على عدّة ملفات في وقت واحد. 3- ستظهر لك رسالة تأكيد اضغط على OK يمكنك تفريغ محفظة تخزين Bucket أي حذف كافة العناصر التي تحتويها دون حذف محفظة التخزين. 1- اختر محفظة التخزين التي تريد تفريغها وانقر عليها بالزر اليميني ثم اختر Empty Bucket أو يمكنك اختيار Empty Bucket من قائمة Actions 2- عندما تظهر لك رسالة تأكيد اكتب اسم محفظة التخزين التي ترغب بإفراغها ثم اضغط على Empty bucket لحذف محفظة تخزين مع كل العناصر التي تحتويها: 1- اختر محفظة التخزين التي تريد حذفها وانقر عليها بالزر اليميني ثم اختر Delete Bucket أو يمكنك اختيار حذف محفظة التخزين من القائمة Actions 2- عندما تظهر لك رسالة تأكيد اكتب اسم محفظة التخزين التي تريد حذفها ثم اضغط على Delete:
  24. يمكنك نقل الملفات في أمازون S3 من محفظة تخزين Bucket إلى محفظة تخزين أخرى أو إلى مجلد آخر. كما يمكنك نقل مجموعة من الملفات أو مجلد إلى محفظة تخزين أو مجلد آخر. نقل ملف: 1- في Amazon S3 Console اختر محفظة التخزين التي تريد نقل الملف منها ثم اختر الملف الذي تريد نقله وانقر بالزر اليميني واختر قص Cut ملاحظة: يمكنك استخدام Shift+ Ctrl لتحديد أكثر من ملف وتطبيق العملية على عدّة ملفات في وقت واحد. 2- اذهب إلى محفظة التخزين أو المجلد الذي تريد نقل الملفات إليه ثم اختر Paste into بالنقر بالزر اليميني على المحفظة أو المجلد.
  25. إن كنت تستخدم amazon EC2 فأنت لست بحاجة إلى نظام تطوير محلي لاستخدام Docker يمكنك إطلاق وتشغيل Linux instance وتنصيب Docker للبدء بالعمل. خطوات تنصيب Docker على Amazon Linux instance: 1- عليك أولًا تشغيل نسخة instance على Amazon Linux AMI. انظر الرابط Launching an Instance 2- الاتصال بالنسخة Linux Instance الخاصة بك في أمازون EC2 انظر الرابط Connect to Your Linux Instance 3- تحديث الحزم المثبتة على النسخة لخاصة بك: [ec2-user ~]$ sudo yum update -y4- تنصيب الحاوية Docker. يتطلب Amazon ECS حد أدنى من إصدار Docker وهو 1.5.0 (يستحسن إصدار 1.7.1). حيث أن الإصدار الافتراضي للحاوية Docker في العديد من إدارة حزم النظام لا تلبي الحد الأدنى المطلوب لإصدار Docker. لمعرفة كيفية تنصيب الإصدار الأخير لـ Docker على توزيعة لينكس https://docs.docker.com/installation/. [ec2-user ~]$ sudo yum install -y docker5- بدء تشغيل Docker Service: [ec2-user ~]$ sudo service docker start Starting cgconfig service: [ OK ] Starting docker:6- قم بإضافة ec2-user إلى docker group لتتمكّن من تشغيل أوامر Docker دون الحاجة إلى استخدام sudo: [ec2-user ~]$ sudo usermod -a -G docker ec2-user7- قم بتسجيل الخروج ثم تسجيل الدخول مرة أخرى للحصول على أذونات docker group الجديدة. 8- تحقق من أن ec2-user يمكنه تشغيل أوامر Docker دون استخدام sudo: [ec2-user ~]$ docker info Containers: 2 Images: 24 Storage Driver: devicemapper Pool Name: docker-202:1-263460-pool Pool Blocksize: 65.54 kB Data file: /var/lib/docker/devicemapper/devicemapper/data Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 702.3 MB Data Space Total: 107.4 GB Metadata Space Used: 1.864 MB Metadata Space Total: 2.147 GB Library Version: 1.02.89-RHEL6 (2014-09-01) Execution Driver: native-0.2 Kernel Version: 3.14.27-25.47.amzn1.x86_64 Operating System: Amazon Linux AMI 2014.09
×
×
  • أضف...