База данных в облаке AWS

Thank you for reading this post, don't forget to subscribe!

Облач­ные сер­ви­сы Amazon AWS дают шикар­ные вари­ан­ты по исполь­зо­ва­нию как реля­ци­он­ных, так и не реля­ци­он­ных СУБД.

Сер­вис, кото­рый поз­во­ля­ет исполь­зо­вать дан­ный облач­ный сер­вис, у AWS назы­ва­ет­ся — RDS (Relational Database Service). С помо­щью него мож­но создать и исполь­зо­вать MySQL, MariaDB, PostgreSQL, Oracle SQL, Microsoft SQL Server. Так­же есть вари­ант SQL СУБД от Amazon — Aurora. Он пред­став­ля­ет собой про­ка­чан­ный ана­лог пол­но­стью сов­ме­сти­мый как с MySQL, так и с PostgreSQL. Amazon заяв­ля­ет о чуть ли не 5 крат­ном уве­ли­че­нии про­из­во­ди­тель­но­сти базы дан­ных при исполь­зо­ва­нии ее вер­сии про­дук­та. Как бы то ни было, воз­мож­ность выбо­ра облач­ной СУБД у Amazon, я думаю, удо­вле­тво­рит боль­шин­ство поль­зо­ва­те­лей. В слу­чае же исполь­зо­ва­ния спе­ци­фич­ных вари­ан­тов и нали­чия соот­вет­ству­ю­щих зна­ний, все­гда мож­но раз­вер­нуть СУБД на сво­ей соб­ствен­ной инфраструктуре.

Пример работы с облачной СУБД

Даль­ше по тек­сту будем пред­по­ла­гать, что у Вас уже есть доступ к кон­со­ли Amazon AWS и сосре­до­то­чим­ся на вза­и­мо­дей­ствии с сер­ви­сом облач­ной SQL СУБД. Итак перей­дем в пане­ли управ­ле­ния AWS в Services -> Database -> RDS. Здесь выби­ра­ем сра­зу Create Database. Откро­ет­ся стра­нич­ка с масте­ром по созда­нию нуж­но­го нам сер­ве­ра с SQL базой дан­ных. Скрин­шот экра­на с верх­ней частью стра­ни­цы пред­став­лен ниже.

Как види­те, мож­но выбрать несколь­ко типов СУБД. В нашем кон­крет­ном при­ме­ре мы оста­но­вим­ся на MySQL. При этом даль­ше в виза­рде мы можем ука­зать нуж­ную вер­сию MySQL, объ­ем дис­ко­во­го про­стан­ства, логин и пароль, а так­же воз­мож­ность досту­па из Интер­не­та и дру­гие базо­вые настрой­ки. Запол­нив нуж­ные пара­мет­ры, нажи­ма­ем вни­зу на кно­поч­ку Create Database. Через несколь­ко минут полу­чим гото­вую СУБД. Скрин­шот из кон­со­ли AWS при­во­жу ниже.

Итак, мы созда­ли СУБД MySQL в обла­ке, давай­те попро­бу­ем под­клю­чить­ся к ней и поиг­рать­ся с ней. Для это­го узна­ем в свой­ствах создан­ной СУБД DNS имя хоста, куда надо под­клю­чать­ся. И в команд­ной стро­ке нашей рабо­чей систе­мы вос­поль­зу­ем­ся стан­дарт­ной ути­ли­той mysql для под­клю­че­ния к СУБД.

Все про­изой­дет так, как будет мы рабо­та­ем с обыч­но базой, уста­нов­лен­ной локаль­но или на сосед­ней вир­ту­ал­ке. Попро­бу­ем создать поль­зо­ва­те­ля и отдель­ную базу для наших экс­пе­ри­мен­тов. Выпол­ним сле­ду­ю­щие коман­ды в открыв­шем­ся mysql клиенте.

После того как база будет созда­на, созда­дим тесто­вую таб­ли­цу, кото­рую будем исполь­зо­вать для экс­пе­ри­мен­тов по запи­си и чте­нию из нее. Это дела­ет­ся абсо­лют­но теми же коман­да­ми, кото­рые исполь­зу­ют­ся и при рабо­те с локаль­ной MySQL. При­мер коман­ды ниже.

После того как наша база и таб­лич­ка в ней созда­ны, давай­те попро­бу­ем с помо­щью скрип­тов на язы­ке Python запи­сать в них что-то, а после это­го счи­тать из базы инфор­ма­цию. Ниже содер­жа­ние про­стень­ко скрип­та mysql_insert_db.py, кото­рый запи­шет в нашу БД несколь­ко записей.

Наши скрип­ты для обра­ще­ния к MySQL будут исполь­зо­вать модуль mysql-connector. Что­бы все рабо­та­ло необ­хо­ди­мо его уста­но­вить в систе­му с помо­щью коман­ды pip.

# pip install mysql-connector-python

Далее при­ве­ден скрипт mysql_query_db.py, кото­рый будет счи­ты­вать дан­ные из нашей базы. При этом так же будет исполь­зо­вать­ся биб­лио­те­ка mysql-connector.

Попро­бу­ем запу­стить наши скрип­ты и посмот­реть, что из это­го получится.

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