ИЗМЕНЕНИЕ РЕСУРСОВ AWS С TERRAFORM

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

у нас есть рабо­та­ю­щий сер­вер в ама­зоне, теперь нам необ­хо­ди­мо изме­нить его параметры

Допу­стим мы реши­ли, что нам одно­го сер­ве­ра недо­ста­точ­но и нам пона­до­бил­ся еще один сер­вер. Мы можем вне­сти изме­не­ние. Вме­сто count 1, под­ста­вим зна­че­ние 2.

Сохра­ня­ем изме­не­ние в фай­ле. Про­бу­ем запу­стить, коман­ду кото­рая пока­жет, что у нас про­изой­дет - terraform plan.

Мы видим, что в резуль­та­те наших дей­ствий, будет добав­лен еще один сер­вер. Запус­ка­ем на выпол­не­ние terraform apply. Не забы­ва­ем, что необ­хо­ди­мо под­твер­дить наше дей­ствие напе­ча­тав yes.

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

Сле­ду­ю­щий шаг. Давай­те попро­бу­ем изме­нить, раз­мер сер­ве­ра. У нас был t2.micro, возь­мем немно­го поболь­ше сер­вер t3.micro и убе­рем один лиш­ний сер­вер изме­нив пара­метр count c 2 на 1.

Вво­дим коман­ду terraform plan и видим, что один сер­вер будет уни­что­жен, а вто­рой будет изменен.

Ну и стан­дарт­ное уже terraform apply с под­твер­жде­ни­ем сво­их дей­ствий. Перей­дем в кон­соль ама­зон и посмот­рим, что происходит.

Ама­зон, в соот­вет­ствии с про­из­ве­дён­ны­ми изме­не­ни­я­ми меня­ет раз­мер вир­ту­аль­но­го сер­ве­ра и уни­что­жа­ет лиш­ний. Теперь, мож­но посмот­реть в офи­ци­аль­ной доку­мен­та­ции resource aws_instance, те пара­мет­ры, кото­рые мож­но изме­нять таким нехит­рым обра­зом в ама­зон с помо­щью Terraform.

Давай­те доба­вим так, что­бы обо­зна­чить, напри­мер, сер­вер. На ста­ри­це в офи­ци­аль­ной доку­мен­та­ции, было пока­за­но, что внутрь ресур­са надо добавить.

И отправ­ля­ем изме­не­ния в ама­зон terraform apply. На выхо­де мы получим.

Сер­вер с име­нем Vasya. По фак­ту мы не сде­ла­ли ниче­го ново­го, про­сто изме­ни­ли пустые пара­мет­ры, гру­бо гово­ря про­сто под­пи­са­ли, доба­ви­ли tagsTags име­ет смысл добав­лять к каж­до­му раз­вер­ты­ва­е­мо­му сер­ве­ру, пото­му что в круп­ных про­ек­тах, когда сер­ве­ров более 100, а то и пол тыся­чи, будет очень лег­ко запу­тать­ся и в пара­мет­рах и в запу­щен­ных сер­ве­рах. В этом слу­чае tag или по-дру­го­му мет­ки, нас выру­чат очень хорошо.

Обра­ти­те вни­ма­ние, когда мы вно­сим, какое-либо изме­не­ние в код, то при выво­де резуль­та­та коман­ды terraform plan, на про­тив пла­ни­ру­е­мых изме­не­ний мы видим знак + зеле­ный если добав­ля­ет­ся что-то или знак - крас­ный если мы, что-то убираем.

Еще не мало важ­ный фак­тор. Нель­зя вно­сить изме­не­ния в сер­ве­ра, в руч­ном режи­ме через кон­соль, кото­рые мы обслу­жи­ва­ем с помо­щью Terraform. Все, изме­не­ния, кото­рые вы вне­се­те в руч­ном режи­ме, будут уда­ле­ны при син­хро­ни­за­ции, пото­му что дан­ных пара­мет­ров нет в коде.

Сле­до­ва­тель­но, исхо­дя из это­го прин­ци­па, уда­лять ресур­сы тоже необ­хо­ди­мо через код. Дела­ет­ся это доста­точ­но про­сто, про­сто необ­хо­ди­мо уда­лить ресурс из кода или поста­вить пара­метр count = 0 внут­ри ресурса.

В нашем при­ме­ре я изме­нил пара­метр count = 0. И мож­но видеть, что Terraform сооб­щил нам о том, что сер­вер будет уни­что­жен в облаке.

И дей­стви­тель­но, если мы посмот­рим в кон­соль, то мы уви­дим, что все сер­ве­ра в обла­ке нахо­дят­ся в состо­я­нии terminated, в тече­нии полу­то­ра минут.

Это озна­ча­ет, что дан­ные сер­ве­ра выклю­че­ны и гото­вят­ся к уда­ле­нию. Если у нас несколь­ко сер­ве­ров пред­на­зна­чен для уда­ле­ния, то Terraform будет про­из­во­дить выклю­че­ние и после­ду­ю­щее уда­ле­ние дан­ных сер­ве­ров параллельно.