Рубрики
Без рубрики

Сен, 20 #cloudguruchallenge

Обзор в этом месяце я видел, что Acloud.guru собирался начать делать проблемы для продвижения … Теги от AWS, Cloudguruchallenge, Python.

Обзор

В этом месяце я видел, что Acloud.Guru собирался начать делать проблемы для продвижения обучения. Задача этого месяца стала приложением Python, управляемое событиями вокруг COVID-19. Вы можете прочитать об этом здесь: https://acloudguru.com/blog/engineering/cloudguruchallenge-python-aws-etl.

Мой проект не пошел так хорошо, как я наденулся, но я думаю, что это способствовало лучшему опыту обучения из-за моих подводных камней.

Ресурсы

Код GitHub: https://github.com/wheleers-websites/CloudguruChallenge_0920.

Диаграмма архитектуры:

Quicksight Dashboard:

Подход

Я прочитал заявление о проблеме и быстро пошел на работу. Это была огромная ошибка, и я глубоко сожалею об этом. Я решил пойти на безсетевой подход и начал кодировать низкоуровневые шаги в Python.

Я думал, что буду использовать DynamOdb, чтобы построить приложение без сердца. Если бы я провел больше времени планирования, может быть, я бы избел возникли проблемы.

Выпуск 1.

Был попросить сделать дополнительную нагрузку. Это разумно. Если ваши исходные данные являются большими, вы не хотите обновлять его снова и снова. Это звучит достаточно просто, но это на самом деле довольно сложно сделать с NoSQL DB, как Dynamodb.

Единственный способ предоставить инкрементную функциональность нагрузки будет сканировать всю таблицу перед каждой нагрузкой. Это дорогое и много времени. Затем я обнаружил, что метод Putitem I использовал, перезаписывает данные, если она уже существовала для раздела ключа и поняла, что быстрее и дешевле перезагрузите весь набор данных каждый день. Так что я продолжил …

Выпуск 2.

Я решил использовать Quicksight для моего слова визуализации, пытаясь придерживаться AWS-принадлежащих услугам. К тому же Quicksight было намного дешевле, чем на первый взгляд.

К сожалению, QuickSight не поддерживает DynamOdb в качестве собственного источника данных. Это означает, что мне придется снова перемещать свои данные, прежде чем я смогу его визуализировать.

Я изначально посмотрел на использование потоков DynamOdb и Kinetica Firehose, чтобы накормить данные в S3, но я решил, что это будет намного проще и проще, если я просто обновил свою функцию лямбда, чтобы написать файл json на S3 после обновления dynamodb.

https://aws.amazon.com/blogs/database/automatically-archive-items-to-s3-using-dynamodb-time-to-live-with-aws-lambda-and-amazon-kinesis-firehose/

Конечно, это решит все!

Выпуск 3.

Больше боли с Quicksight вскоре последовали, когда я обнаружил, что Quicksight не позволяет публичным приборными панелями. Если бы я хотел сделать мою приборную панель видимой другим, мне нужно:

  • Написать приложение
  • Настройте аутентификацию для этого приложения с некоторой службой, такими как Cognito
  • Встроить мою приборную панель Quicksight в это приложение

Все эти задачи казались слишком много для этой простой проблемы. Таким образом, вы получаете статическое изображение приборной панели только я наслаждаюсь.

Лучший путь

Чем дальше я попал в мое приложение, тем больше я начал думать о том, что я бы сделал, если бы я провел больше времени планирования.

  • Я бы заметил эти проблемы, прежде чем начал?
  • Я бы пошел в другое направление?

Я хотел бы подумать, что ответ на оба эти вопросы – да, но я никогда не узнаю.

Я думал об использовании Aurora Serverless вместо DynamOdb, за исключением того, что он должен быть в VPC, несомненно, усложняет вещи.

  • Лямбда должен быть в VPC
  • Я должен создать VPC
  • Я должен создать подсеть (ы)
  • Я должен создать группу безопасности (ы)
  • Я должен создать список (ы) контроля доступа к сети
  • Я должен перейти на Castsight Enterprise для доступа к ресурсам VPC

https://docs.aws.amazon.com/quicksight/latest/user/working-with-aws-vpc.html

Вывод

Я действительно не уверен, почему я пошел так, как я сделал, хотя это был веселый опыт, независимо от. Я очень заинтересовался, чтобы увидеть, что другие люди делают для своей проблемы и даже более заинтересованы, чтобы увидеть, что повлечет за собой октябрь #cloudguchallenge.

Однако одна вещь, однако, что я обязательно потрачу достаточно времени, планируя все, прежде чем начать на моем следующем проекте. Неважно, что это может быть.

Оригинал: “https://dev.to/wheelerswebsites/my-september-cloud-guru-challenge-experience-l2j”