поздравляю с прохождением первых нескольких уроков и успешным освоением собственного экземпляра EC2!Облако имеет много преимуществ, но оно все же имеет некоторые накладные расходы при начале работы, которые могут быть сложными для новичков, но именно такая обратная связь помогает нам улучшить опыт разработчиков.
1.Какие шаги следует предпринять, начиная с облачных вычислений (для запуска сценариев Python?)
Похоже, что вы уже промокли от SSHing к экземпляру EC2 (который будет наиболее тесно связан симитировать терминал в вашей системе), но я решил, что помогу вам предоставить несколько других вариантов запуска сценариев python в облаке в зависимости от вашего варианта использования.
AWS Cloud9 : облачная среда IDE, которая упрощает доступ к другим сервисам и ресурсам в облаке AWS.Если vim / emacs - это не ваша чашка чая, то возможность кодировать напрямую из этой IDE на основе браузера может иметь большое значение, вместо того, чтобы кодировать локально и постоянно передавать код в ваш экземпляр EC2.
Записные книжки Amazon SageMaker : это управляемые записные книжки Jupyter / JupyterLab, которые позволяют запускать Python (или ядро по вашему выбору) в ячейках, которые представляют собой модульные куски кода.Они чрезвычайно популярны среди людей, которые пишут код для обработки данных (исследователи данных, исследователи ML / AI и т. Д.), И его можно запустить и запустить менее чем за пять минут, и вам не придется беспокоиться о SSH.
2.Что важно знать, с чего начать (например, первые шаги: выбор EC2, какой тип экземпляра)?
Идеальным типом экземпляра будет тот, который будет иметь благоприятное пересечение цены и производительности для вашего конкретного случая.рабочая нагрузка и бюджет. Существует большое количество различных классов экземпляров EC2 , каждый из которых оптимизирован для различных рабочих нагрузок.
Чтобы выбрать экземпляр для ускорения вашей конкретной рабочей нагрузки, мне нужно было бы немного больше узнать о самом коде, чтобы выяснить, в чем заключается ваше вычислительное узкое место - увеличит ли объем ОЗУ большие партии, тем самым ускориввычисления, или это, возможно, неэффективный алгоритм со взрывной сложностью, который требует только больше вычислений?Является ли процесс распараллеливаемым, и, следовательно, выиграет ли он от использования графических процессоров?
3.Когда вы работаете с AWS, когда вы работаете с boto3 и когда напрямую через ssh?
boto3
- это AWS Python SDK, который обеспечивает программный доступ (создание, чтение, обновление или удаление) к другимРесурсы AWS во время выполнения из ваших скриптов.Это позволяет выполнять любые функции, которые вы можете выполнять с консоли, во время обработки рабочей нагрузки.Типичным примером может быть извлечение набора данных из S3 или перенос задания преобразования в EMR (Elastic Map Reduce).В качестве альтернативы вы можете использовать утилиту командной строки awscli
для выполнения тех же действий вне среды выполнения, непосредственно из bash.SSH используется для прямого доступа к серверу, либо для изменения содержимого, для запуска команд или для отладки.
4.На что обращать внимание при выборе экземпляра EC2 (особенно при работе с текстом через python)?
Самый большой вопрос здесь - это вопрос: каков вычислительный профиль вашей рабочей нагрузки?Как упоминалось в A2, выбор более мощного экземпляра во всех основных свойствах (оперативная память, ядра / скорость процессора, графический процессор, работа в сети и т. Д.) Практически гарантирует ускорение вашего процесса, и вы, скорее всего, будете переплачивать / недоиспользовать, как толькоПодмножество этих ресурсов будет истинным узким местом для вашей системы.Определение того, какой тип оборудования в настоящее время имеет максимальную емкость в текущей рабочей нагрузке, поможет вам определить, какой тип экземпляра необходимо подготовить.
Не обращая внимания, я бы порекомендовал экземпляр C-class
(оптимизированный для вычислений) или P-class
(оптимизированный для графического процессора / параллельных вычислений), в зависимости от того, можно ли распараллелить ваш процесс с графическим процессором.
5.Потому что я пытаюсь обработать CSV-файл: как лучше всего работать с существующими файлами / хранить новые файлы?Лучше хранить их в ведре S3?Как подключиться?
Хранение в S3, вероятно, будет идеальным, учитывая, что это позволит другим сервисам более легко получать доступ к файлам (будь то другие сервисы AWS в облаке или вы пытаетесьвытащите файл снаружи AWS).Кроме того, он позволяет вам завершить работу сервера после выполнения вычислений, и файл будет сохранен на S3 навсегда.
Надеюсь, что эти ответы помогут - ваши вопросы абсолютно естественны и правильные!Добро пожаловать в AWS и счастливого взлома!