О топорах и капусте

    Размышления о том, откуда берется желание сдать сертификацию AWS Solutions Architect Associate.


    Мотив первый: «Топоры»

    Один из самых полезных для любого профессионала принципов «Знай свои инструменты» (или в одной из вариаций «точи пилу»).

    Мы в облаках уже давно, но до поры до времени это были просто монолитные приложения с базами, развернутые на инстансах EC2 — дёшево и сердито.

    Но постепенно нам стало тесно в рамках монолита. Взяли курс на распил в хорошем смысле – на модуляризацию, а затем и модные нынче микросервисы. И очень быстро на этой почве «расцветают сто цветов».

    Да что там далеко ходить – проект логирования активности, который я сейчас веду, включает в себя:

    • Клиентов в виде разнообразных приложений нашего продукта – от глухих уголков дремучего легаси до ультрамодных микросервисов на .Net Core.
    • Очереди Amazon SQS, в которые складываются логи о том, что происходит с клиентами.
    • Микросервис на .Net Core, который достает сообщения из очереди и отправляет их в Amazon Kinesis Data Streams (KDS). Имеет также Web API интерфейс и swagger UI как дублирующий канал и для ручного тестирования. Оборачивается в докеровский linux-контейнер и хостится под управлением Amazon ECS. Предусмотрен autoscaling на случай большого потока логов.
    • Из KDS данные пожарными шлангами направляются в Amazon Redshift с промежуточными складами в Amazon S3.
    • Операционные логи для девелоперов (дебаг-информация, сообщения об ошибках и т.п.) форматируются в приятный глазу JSON и отправляются в Amazon CloudWatch Logs



    Работая с таким зоопарком сервисов AWS, хочется знать, что есть в арсенале и как это что-то лучше использовать.

    Вот представьте – у вас есть старый проверенный топор, который хорошо рубит деревья и неплохо забивает гвозди. За годы работы вы научились с ним хорошо обращаться, сколотили собачью будку, пару сараев и может быть даже избу. Иногда возникают сложности, допустим закрутить шуруп топором не всегда получается быстро, но обычно решаемо с помощью терпения и такой-то матери.

    И тут рядом появляется зажиточный сосед, у которого чёртова туча самых разных инструментов: электропилы, гвоздемёты, шуруповерты и бог знает что ещё. Всё это богатство он круглосуточно готов сдавать в аренду. Что делать? Вариант взять топор и раскулачить мы отметаем как политический безграмотный. Самым разумным будет изучить, что там за инструменты, как они друг друга могут дополнять на разных работах и на каких условиях сдаются.

    Поскольку для меня этот мотив был главным, подготовка была построена соответственно – найти фундаментальное руководство и тщательно его изучить. И такое руководство было найдено. Книга написана суховато, но вряд ли это может отпугнуть людей, учивших матан по Фихтенгольцу.

    Прочитал от корки до корки и считаю, что поставленной цели она полностью отвечает – дает хороший обзор как собственно сервисов, так и более общих концепций, которые могут встретиться на экзамене. Кроме того приятным бонусом идет возможность пройти несколько странноватую процедуру регистрации на Sybex и отвечать все проверочные вопросы и пробные экзамены из книги онлайн.

    Важный момент: я обучался по книге 2016 года издания, но в AWS всё меняется достаточно динамично, поэтому ищите самое свежее издание, которое будет на момент подготовки. К примеру, в пробных тестах часто появляются вопросы об availability и durability различных классов S3 и Glacier, но некоторые из чисел изменились по сравнению с 2016 годом. Кроме того, добавились новые (к примеру INTELLIGENT_TIERING или ONEZONE_IA).

    Мотив второй: «65 оттенков оранжевого»

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

    Думаю, это удовольствие во многом сродни игре в «Что? Где? Когда?» или, скажем, хорошей партии в шахматы.

    В этом смысле нынешний экзамен AWS Solutions Architect Associate очень хорош. Хотя во время подготовки среди проверочных вопросов время от времени встречались «зубрильные», типа «Сколько максимум elastic IP адресов можно иметь в VPC» или «Какова availability S3 IA?», на самом экзамене таких не попадалось. По сути, практически каждый из 65 вопросов представлял собой мини-задачку на проектирование. Вот достаточно типичный пример из официальной документации:
    A web application allows customers to upload orders to an S3 bucket. The resulting Amazon S3 events trigger a Lambda function that inserts a message to an SQS queue. A single EC2 instance reads messages from the queue, processes them, and stores them in an DynamoDB table partitioned by unique order ID. Next month traffic is expected to increase by a factor of 10 and a Solutions Architect is reviewing the architecture for possible scaling problems. Which component is MOST likely to need re-architecting to be able to scale to accommodate the new traffic?
    A. Lambda function B. SQS queue C. EC2 instance D. DynamoDB table

    Насколько я знаю, прошлый вариант экзамена содержал 55 вопросов и на него выделялось 80 минут. Судя по всему, над ним неплохо поработали: теперь там 65 вопросов и 130 минут на них. Время в пересчете на вопрос увеличилось, но при этом проходных вопросов практически нет. Над каждым приходилось думать, иногда и больше двух минут.

    Кстати, отсюда есть практический вывод. Обычно выигрышная тактика быстро пробежаться по всем вопросам и ответить то, что отвечается сразу. В случае SAA-C01 это в общем-то не работает, помечать флажками придется практически каждый вопрос, иначе есть риск не заметить какую-то детальку и ответить неправильно. В итоге я отвечал, тратя минуту-две на каждый вопрос, а потом вернулся к зафлажкованным и потратил на них оставшиеся 20 минут.

    Мотив третий: «Если бы молодость знала, если бы старость могла»

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

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

    Но ощущение может быть обманчивым, нужен объективный критерий. Подготовится к экзамену и сдать его – чем не вариант?

    Считаю, что проверка удалась. Готовился я самостоятельно и подготовка прошла достаточно гладко. Ну да, пару раз я уснул в гамаке читая мануал, – но такое может случиться с каждым.
    Теперь есть сертификат и приличные очки за экзамен как признак пороха в пороховницах.

    Ну и немного о том, что может быть мотивацией, но вряд ли было в моем случае.

    Не мотив первый: «Капуста»

    Существуют любопытные исследования “Forbes” о том, спецы с какими сертификатами являются самыми оплачиваемыми в мире, и AWS SAA там на почетном 4м месте



    Но, во-первых, что тут причина, а что следствие? Подозреваю, что ребята хорошо зарабатывают
    из-за определенных способностей, и эти же способности помогают сдать сертификацию. Во-вторых, терзают смутные сомнения, что кому-то будут платить $130 К в год вне США, хоть он обсертифицируйся с ног до головы.

    Да и в целом, как известно, после удовлетворения нижних уровней пирамиды зарплата перестает быть главным фактором.

    Не мотив второй: «Требования компании»

    Компании могут поощрять сертификации или даже требовать их (особенно если они нужны для партнерства, например для вхождения в AWS APN в случае Amazon).

    Но в нашем случае производится независимый продукт, кроме того, стараемся избежать vendor lock-in. Так что сертификатов никто не требует. Похвалят и оплатят экзамен в знак признания определенных усилий – вот и весь официоз.

    Не мотив третий: «Трудоустройство»

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

    Нет, конечно, случаи разные бывают: за 23 года в IT я менял работу раз 5. Не факт, что не придется поменять опять, если протяну еще лет 20. Но будут бить – будем плакать.

    Полезное

    В заключение упомяну еще несколько материалов, которые я использовал в процессе подготовки к экзамену и просто в качестве «точила для пилы»:

    • Видеокурсы pluralsight и cloud guru. Последние, говорят, особенно хороши если купить подписку с доступом ко всем пробным экзаменам. Но у меня в качестве одного из условий игры значилось не потратить на подготовку ни цента, покупка подписки с этим плохо сочеталась. Кроме того, я в целом считаю видеоформат менее плотным с точки зрения объема информации на единицу времени. Впрочем, когда будут готовиться на SA Professional, то скорее всего подписку оформлю.
    • Тонны амазоновской официальной документации, в том числе F.A.Q и WhitePapers.
    • Ну и последняя, но значимая штука – проверочные тесты. Нашел их за пару дней перед экзаменом и неплохо потренировался. Читать там нечего, но онлайн-интерфейс и комментарии к ответам хороши.
    Поделиться публикацией

    Комментарии 17

      +1

      Отлично! подскажите пожалуйста, как сертифицированный специалист, что такое Amazon RDS Provisioned Storage и почему за него берут деньги на бесплатном тарифном плане при том что бекапов нет, работает 1 инстанс полудохлый ( и половину лимита не тратится месячного), но по вышеназванной статье каждый день списывают 0.137 бакса :)

        0
        В рамках free tier бесплатно только то, что входит в предложение.
        В частности для RDS это
        750 Hours per month of db.t2.micro database usage (applicable DB engines)
        20 GB of General Purpose (SSD) database storage
        20 GB of storage for database backups and DB Snapshots

        Как только вы заказываете какие-то дополнительные навороты, за это берут деньги.
        К примеру если вы при создании DB-инстанса выбрали provisioned IOPS придется платить за повышенную скорость input-output, которая в этом варианте обеспечивается. А оно вам может и нужно вовсе, бесплатного предложения вполне достаточно для экспериментов и небольших пет-проектов.
        Вообще чтобы такого избежать лучше выбрать Free Tier в шаблонах при создании базы. Тогда платные опции будут просто недоступны.
        Ну и первым делом после создания аккаунта AWS имеет смысл настроить billing-нотификацию. Иначе есть риск незаметно попасть на деньги.
          0
          Так в том то и дело, что я не заказывал ничего дополнительного, брал все в минимальной конфигурации (postgre, ms sql server, mysql). Брал для нагрузочного тестирования API в варианте работы с удаленной БД. Через неделю снес все инстансы, так и не выбрав бесплатные лимиты. Автобекапы не отключал.
          Судя по итогам переписки с саппортом, там произошел типовой сбой. После удаления инстанса MS SQL, от нее остались автобекапы, которые в панели управления не видны, но где то там они есть. И они жрут место. AWS саппорт предлагает мне снести все инстансы RDS и потом создать их заново. И деньги готовы вернуть.
          Вот такая блин рапсодия.
            0
            Но ведь provisioned IOPS storage type это уже фича за рамками free tier, разве нет?
            Я сейчас посмотрел на создание MS SQL RDS, если изначально выбрать free tier template, то storage type General Purpose и задизейблен, чтобы не сменили случайно.
            С бекапами конечно интересно получилось. Я так понимаю, о компенсации за сбой саппорт не заикался? А в billing-репортах было видно, куда деньги уходят?

            Вообще в AWS очень аккуратно надо развлекаться. Одно неосторожное движение — и ты отец. Я, когда начинал экспериментировать, по неопытности несколько необязательных баксов потратил. А если бы нотификацию не настроил, то мог бы потратить гораздо больше.
              0
              Так я везде ставил галочку фритаер когда создавал удалял инстансы. Да и опять же из шаблонов их ставил.
              Обещают не брать денег, но сумма пока что растет потихоньку
              Amazon Relational Database Service Provisioned Storage $0.хх
              $0.00 per GB-month of provisioned GP2 storage under monthly free tier (20 GB-Mo):
              $0.00
              $0.137 per GB-month of provisioned GP2 storage (6.923 GB-Mo):
              $0.хх

              Плюс, я в S3 buckets создал букет для тестов, толком не пригодилось, а удалить не могу. Пишет 1) букет очищен — ок, 2) удаление — ошибка

              Вещь специфичная этот AWS, так как нет особой возможности, понять что там происходит. Может на планах с платным саппортом и получше дела обстоят, не знаю.
                0
                Темна вода во облацех.
                А бакет S3 создавался под тем же пользователем, под которым удалить пытаетесь?
                  0
                  да
                  0

                  А как вы удаляете и какая ошибка?

                    0
                    на экране списка букетов, ставлю галочку нажимаю delete, ввожу в окне имя букета для подтверждения, нажимаю confirm, внизу получаю
                    Delete bucket
                    View details
                    Operation failed Delete objects 100% Successful Delete bucket Failed

                    смотрю детали ошибки и вижу
                    Total objects 0
                    Successful 0 (100%)
                    Delete bucket Failed
                    Access Denied

                    Эккаунт у меня один, никаких юзеров в AIM не настраивал
          0
          Оставлю тут ссылку на то, что входит в free tier. Для подготовки к сертификациям и пет-проектов незаменимая вещь!
            0

            А действительно, «сколько максимум elastic IP адресов можно иметь в VPC»?

              0
              Ну EIP нынче нельзя иметь больше, чем 5 на регион. Так что и в VPC больше 5 не получится.
                0

                Во-первых, можно увеличить лимит, запросив через специальную форму.
                Во-вторых, EIP никак не привязан к VPC, так что вопрос о максимуме EIP в VPC просто некорректен.

                  0

                  Можно, надо запросить поднятие лимита

                    0
                    Запросить безусловно можно. Но в проверочных вопросах формулировки аккуратны, в отличие от моей памяти. Вот, я даже не поленился найти реальный тестовый вопрос, раз он вызвал такой интерес:
                    How many elastic IP addresses can you create per region by default in a new AWS
                    account?
                    A. 5
                    B. 10
                    C. 20
                    D. There is no preset limit.

                    Суть была в другом: показать как выглядят скучные вопросы в проверочных тестах. К счастью не на экзамене.
                    И конечно же из того, что подобные вопросы не попались в моем экзаменационном сете не следует что они не могут попасться в принципе. Я просто надеюсь, что это так.
                      0

                      Тут ключевое "by default", выше же написали что нельзя иметь больше 5, что не соответствует действительности.

                        0
                        Я его неявно подразумевал. Для многих ресурсов AWS можно повысить дефолтные лимиты путем обращения в саппорт. И во всех проверочных вопросах такого типа добавляется by default.
                        Еще раз повторюсь, я этих вопросов коснулся вскользь и в вольной формулировке потому что цель этой части статьи была не протестировать знания читателей, а показать вопросы какого типа, на мой взгляд, испортили бы экзамен. Если цель экзамена проверить не только память, конечно. С той же целью вопрос подобный экзаменационным я процитировал дословно.
                        Если же интересно именно проверить себя на тестовых вопросах (среди которых много близких к рельным), то рекомендую справочник, который я уже упоминал.

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

              Самое читаемое