Okiem JellyTech -> AWS (wybrane usługi)

Amazon Web Services - największa i najstarsza platforma, oferująca rozwiązania chmurowe. Przedstawiamy Wam subiektywny wybór kilkunastu usług, które naszym zdaniem dobrze poznać jeśli zarządzasz danymi, wdrażasz aplikacje czy wykonujesz testy. Zapraszamy do lektury.

Na początek kilka istotnych informacji.

AWS uważa się za aktualnego lidera wśród platform chmurowych. Na rynku nieprzerwanie od 2006 r. Na pozycji lidera plasuje się m.in. dlatego, że obecnie zajmuje 32% wszystkich rozwiązań chmurowych w ogóle i oferuje największy wachlarz dostępnych usług. Oferuje ponad 200 usług dotyczących przechowania i migracji danych, infrastruktury i bezpieczeństwa sieciowego, machine learningu, Internet of Things (IoT), monitoringu i innych. Czym on zatem jest? To kombajn narzędziowy całego IT. Pozwala na development, zarządzanie kontami i uprawnieniami w Cognito. Można AWS'em obsłużyć cały proces CI/CD.

Chmura Amazon Web Services obejmuje 99 stref dostępności (Availability Zones) w 31 regionach geograficznych na całym świecie, w tym 8 stref na terytorium Europy. W Polsce jeszcze nie doczekaliśmy się takiej strefy, choć słyszeliśmy zapowiedzi na ten temat.

Strefy dostępności (na czerwono - wkrótce uruchomienie). Źródło aws.amazon.com

Zarządzanie platformą jest możliwe za pomocą portalu webowego AWS Console. Infrastrukturą AWS wygodnie zarządza się też z poziomu command line.

No to teraz troszkę o zastosowaniu.

Chmura to narzędzie dedykowane dla administratorów. Rozwiązuje wiele bolączek związanych z infrastrukturą. Przez lata AWS wypracował pokaźną liczbę (jak pisaliśmy ponad 200-stu) usług i funkcjonalności, które pomagają administratorom i devopsom, choć nie tylko, na sprawne zarządzanie infrastrukturą właśnie.

My w  artykule skupimy się na wspominanych zastosowaniach: przechowywanie danych, wdrażanie aplikacji i testowanie aplikacji. Dlaczego? Dla nas to taka baza. Dodatkowo o AWS mogłaby powstać druga Britannica 😉 Trzeba się zatem skupić na określonych usługach. Przygotowaliśmy słownik związany z tymi trzema obszarami.

Jakie mamy zatem podstawowe usługi związane z przechowywaniem danych i jaka jest ich główna charakterystyka:

  •  Amazon Simple Storage Service (S3) - usługa, która umożliwia przechowywanie i pobieranie danych w postaci plików, a także w formie obiektów, które mogą być używane w aplikacjach.
  •  Amazon Elastic Block Store (EBS) - usługa, która umożliwia przechowywanie danych na dyskach twardych wirtualnych maszyn EC2 oraz tworzenie woluminów dyskowych, które można podłączyć do maszyn wirtualnych.
  •  Amazon Glacier - umożliwia przechowywanie danych w postaci archiwalnej czyli takich, które są rzadko używane, ale muszą być przechowywane przez długi czas.
  • Amazon RDS (Relational Database Service) - jest to usługa zarządzania relacyjnymi bazami danych, która umożliwia łatwe tworzenie i zarządzanie bazami danych, takimi jak MySQL, PostgreSQL, Oracle i wiele innych.

AWS oferuje też szereg usług, które pozwalają na wdrożenie aplikacji. Jakie?

  • Amazon Elastic Compute Cloud (EC2) - to usługa, która umożliwia wdrażanie maszyn wirtualnych, a także skalowanie aplikacji w górę lub w dół w zależności od potrzeb.
  • AWS Lambda - umożliwia uruchamianie kodu bez serwera, czyli w odpowiedzi na zdarzenia, takie jak żądania HTTP, zmiany w bazie danych, czy dodanie pliku do S3.
  • AWS Elastic Beanstalk - to usługa, która umożliwia wdrażanie i zarządzanie aplikacjami webowymi i usługami mikroserwisów. Automatyzuje wiele zadań związanych z wdrażaniem aplikacji, takich jak konfiguracja środowiska, skalowanie, monitorowanie i zarządzanie aplikacją.
  • Amazon ECS - umożliwia wdrożenie aplikacji w kontenerach, a także zarządzanie nimi w sposób skalowalny i elastyczny.
  • AWS CodeDeploy - umożliwia automatyczne wdrażanie kodu na maszyny wirtualne, kontenery lub serwery fizyczne. To narzędzie, zapewni automatyczny rollback w przypadku awarii.
  • Amazon Lightsail - oferuje prosty interfejs użytkownika oraz narzędzia do zarządzania aplikacjami, takimi jak bazy danych, kontenerami i urządzeniami sieciowymi.
  • Amazon CloudFormation - to usługa, która umożliwia wdrażanie infrastruktury AWS w sposób zautomatyzowany, umożliwia tworzenie i zarządzanie stosami, które zawierają wszystkie potrzebne zasoby, takie jak EC2, RDS, S3 i wiele innych.

Na koniec testowanie aplikacji.

I tutaj AWS przychodzi z pomocą. Ma do tego dedykowane narzędzia i moduły w ramach usług o szerszych zastosowaniach:

  • AWS Device Farm - usługa umożliwiająca testowanie aplikacji mobilnych na różnych urządzeniach i platformach, bez konieczności posiadania własnych urządzeń. Można przeprowadzać na niej testy automatyczne i manualne.
  • AWS CodeBuild - narzędzie umożliwiające automatyczne budowanie aplikacji i wykonywanie testów jednostkowych. Można łatwo skonfigurować budowanie i testowanie aplikacji na różnych środowiskach.
  • AWS Lambda – pisaliśmy już o niej, można łatwo przeprowadzać w niej testy jednostkowe kodu i monitorować wyniki.
  • Amazon EC2 – również wspomniana wyżej usługa, która umożliwia wirtualizację serwerów, co pozwala na łatwe testowanie aplikacji na różnych konfiguracjach sprzętowych i systemach operacyjnych.
  • I współpracujący zarówno z Lambdą jak i EC2 - AWS CodeDeploy - narzędzie umożliwiające automatyczne wdrażanie aplikacji na różnych środowiskach, można łatwo w nim skonfigurować proces wdrażania.

Zapewne interesujące byłoby jeszcze ile to może kosztować? 😉

AWS stosuje model płatności oparty na rzeczywistym użyciu zasobów, takich jak czas pracy maszyn wirtualnych, transfer danych, czy wywołania funkcji w usługach bezserwerowych. Naliczanie kosztów odbywa się zazwyczaj w konwencji Pay-as-You-Go, a koszty są naliczane za czas wykorzystania zasobów, przy czym niektóre usługi naliczają koszty co godzinę, a inne co minutę.

Popularną formą rozliczeń są także Reserved Instances, gdzie klienci mogą dokonać niskiej, jednorazowej płatności za zarezerwowaną pojemność i dedykowane hosty czyli uruchamianie swoich aplikacji na dedykowanych serwerach.

Można też po prostu podpisać jakby formę zobowiązania z tym dostawcą np. do stałej ilości wykorzystania mocy obliczeniowej. Ma to często swoje konsekwencje w postaci dwuletnich a nawet dłuższych umów o współpracę. Jak to jednak bywa przy takich umowach, możemy tu negocjować rabaty ;) 

Część zasobów AWS należy do Free Tier - są to zasoby bezpłatne, ale zazwyczaj nadają się jedynie do eksperymentów z infrastrukturą. Można też spróbować opcji Spot Instances. Wtedy można licytować wolną moc obliczeniową Amazon EC2 i uruchamiać aplikacje po niższych kosztach.

Czy warto? 😉

Usługi AWS nie są tanie. Ale jeśli ktoś zapyta czy warto zainwestować w chmurę - odpowiedź będzie pozytywna. Za wynegocjowany poziom zobowiązania finansowego, w zamian dostaniemy skalowalność, bezpieczeństwo i globalną architekturę.  Minusem zdaje się być swego typu uzależnienie od usług AWS. Po wybraniu tej chmury można napotkać trudności z późniejszym przeniesieniem danych. Dodatkowo AWS może być początkowo skomplikowany w obsłudze dla osób nieznających chmur obliczeniowych.

Subiektywne podsumowanie

Opisane wyżej usługi można wykorzystać w każdej organizacji oraz branży. AWS wywodzi się z e-commerce, ale dobrze sprawdza się również w finansach, medycynie, nauce. Wszędzie tam, gdzie potrzebujemy hostować stronę internetową lub aplikację, przechowywać dane, tworzyć kopie zapasowe, rozwiązania IoT i Big Data, zarządzać zasobami IT , zarządzać bazami, a nie chcecie wykorzystywać własnej infrastruktury, AWS przyjdzie z adekwatnym rozwiązaniem.

Wiemy, że nie wyczerpaliśmy jeszcze tematu. Sami w JellyTech pracujemy na wielu różnych usługach i weryfikujemy opłacalność użycia chmur dla Naszych klientów. Gdybyście mieli zatem jakieś pytania odnośnie AWS zapraszamy do kontaktu. Na koniec cytat z klasyka ;):

„Bądź uparty w wizji, ale elastyczny w szczegółach”.

Ave Jeff Bezos😉

Galeria zdjęć

Wideo

In JellyTech's view - AWS (selected services)

Amazon Web Services - the largest and oldest platform offering cloud solutions. We present to you a subjective selection of a dozen or so services that we think are good to know if you manage data, implement applications or perform tests. We invite you to read.

To begin with, a few more important in our opinion information about AWS.

It is considered to be the real leader among cloud platforms. On the market continuously since 2006. The leader is, among others because it currently occupies 32% of all cloud solutions in general and offers the largest range of available services. It offers over 200 services related to data storage and migration, network infrastructure and security, machine learning, Internet of Things (IoT), monitoring and others. So what is he? This is the tool combine of all IT. It allows you to develop, manage accounts and permissions in Cognito. You can AWS handle the entire CI/CD process.

The AWS cloud covers 99 Availability Zones in 31 geographical regions around the world, including 8 zones in Europe. In Poland, we have not yet seen such a zone, although we have heard announcements on this subject.

Availability Zones (in red launching soon). Source aws.amazon.com

Platform management is possible using the AWS Console web portal. The AWS infrastructure is also conveniently managed from the command line (AWS tool).

Well, now a little about the application.

Cloud is a tool dedicated to administrators. It solves many infrastructure problems. Over the years, AWS has developed a substantial number (over 200, as we wrote) of services and functionalities that help administrators and DevOps, but not only, to efficiently manage the infrastructure.

In the article, we will focus on the mentioned applications: data storage, application deployment and application testing . Why? It's a base for us. In addition, AWS could create a second Britannica 😉 So you need to focus on specific services. So we have prepared a glossary related to these three issues.

So let's start from the beginning. What are our basic services related to data storage and what are their main characteristics:

- Amazon Simple Storage Service (S3) - a service that allows you to store and download data in the form of files, as well as in the form of objects that can be used in applications.

- Amazon Elastic Block Store (EBS) - a service that allows you to store data on the hard drives of EC2 virtual machines and create disk volumes that can be connected to virtual machines.

- Amazon Glacier - allows you to store data in archival form, i.e. data that is rarely used, but must be stored for a long time.

- Amazon RDS (Relational Database Service) - is a relational database management service that allows you to easily create and manage databases such as MySQL, PostgreSQL, Oracle and many others.

AWS also offers a range of services that enable application deployment. What? HTTP, a change in data operation, or the use of a file for S3.

- AWS Elastic Beanstalk - is a service that enables the implementation and management of web applications and microservices. Automates many tasks related to application deployment, including environment configuration, scaling, deployment and application management.

- Amazon ECS - allows you to deploy applications in containers, as well as manage them in a scalable way and deploy.

- AWS CodeDeploy - allows automatic code deployment to a virtual machine , containers or physical servers.

- Amazon Lightsail - offers a simple user interface and tools for managing applications as a database, containers and network devices. like EC2, RDS, S3 and many others.

‍ Finally, testing the application.

And this is where AWS comes to the rescue. It has dedicated tools and modules for this within its broader application services:

- AWS Device Farm, a service that allows you to test mobile apps on a variety of devices and platforms, without having to own your own devices. You can run automated and manual tests on it.

- AWS CodeBuild - a tool that allows you to automatically build applications and run unit tests. You can easily configure building and testing your application on different environments. -

AWS Lambda - we have already written about it, you can easily run unit tests of your code in it and monitor the results. -

- Amazon EC2 - also the above-mentioned service that enables server virtualisation, which allows you to easily test your application on different hardware configurations and operating systems.

- And working with both Lambda and EC2 - AWS CodeDeploy - a tool that allows you to automatically deploy your application on different environments, you can easily configure the deployment process in it.

It would probably be interesting how much it can cost?😉

AWS uses a payment model based on the actual use of resources, such as virtual machines' working time, data transfer, or function calls in serverless services. Billing is usually Pay-as-You-Go, and costs are charged per resource usage, with some services charging hourly and others minute-by-minute. Reserved Instances are also a popular form of billing, where customers can low, one-time payment for the reserved capacity and dedicated hosts, i.e. running your applications on dedicated servers. You can also simply sign a form of commitment with this provider, e.g. for a fixed amount of computing power. This often has its consequences in the form of two-year or even longer cooperation agreements. However, as it happens with such contracts, we can negotiate discounts here ;) Some AWS resources belong to the Free Tier - these are free resources, but they are usually only suitable for infrastructure experiments. You can also try the Spot Instances option. Then you can bid on free Amazon EC2 computing power and run applications at a lower cost.

Is it worth it? 😉

AWS services are not cheap. But if someone asks if it is worth investing in the cloud - the answer will be positive. For the negotiated level of financial commitment, in return we will get scalability, security and global architecture. The downside seems to be a kind of dependence on AWS services. After selecting this cloud, you may encounter difficulties with the subsequent transfer of data. In addition, AWS can be initially complicated to use for people unfamiliar with cloud computing.

Subjective summary

The services described above can be used in any organization and industry. AWS comes from e-commerce, but it also works well in finance, medicine and science. Wherever we need to host a website or application, store data, create backups, IoT and Big Data solutions, manage IT resources, manage databases, and you do not want to use your own infrastructure, AWS will come with an adequate solution. theme.

At JellyTech, we work on many different services and verify the profitability of using clouds for our clients. If you have any questions about AWS, please contact us.

Finally, a quote from the classic ;) :

"Be stubborn in vision, but flexible in details."

Ave Jeff Bezos 😉

Gallery

Wideo