라벨이 EC2인 게시물 표시

[AWS] 시작탬플릿을 사용하여 인스턴스 생성하기

이미지
AWS 인프라 운영 중 기존에 생성한 Instance와 유사한 인스턴스를 추가로 생성하려고 하는 경우기존에는 AMI (이미지) 백업을 통한 Instance 생성작업을 사용했습니다.

하지만 지난 11월 부터   AWS 에서 추가로 Template 기반의 인스턴스 생성 기능을 지원하고 있습니다.

Template 기능을 활용하면

AMI Image
VPC
Subnet
Storage
Security Group
UserData

등의 정보를 Template 으로 관리하여 인스턴스를 생성할 수 있게 됩니다.

이렇게 Template 기능을 활용하면 인프라 구성에서 설정적용에 소요되는 시간을 절약할 수 있습니다.

Template 기는 사용을 위해

EC2 대시보니 – 인스턴스 – Launch Templates   메뉴로 이동합니다.

Create Launch template 버튼을 클릭합니다.





Template  이름과 버전을 선택 할 수 있습니다.

Source Template 을 사용하면 기존의 Template 구성을 수정하여 사용할 수 있습니다.

AMI ID , Instance Type , Key Pair 를 선택 할 수 있으며 입력하지 않으면 Template 에 포함하지 않습니다.



네트워크 인터페이스 추가 및 Storage 추가 Security Group 을 설정할 수 있습니다



Advanced details 항목에서

IAM Role , 종료방법, User Data 등 상세설정이 가능하며

마찬가지로 입력하지 않으면 미반영 상태로 저장 됩니다.




Create Launch Template 버튼을 선택하면

아래와 같이 탬플릿 생성완료 메시지가 표출됩니다.

Close 를 선택하여 종료합니다.




탬플릿이 생성되었습니다.



테스트를 위해 Template 선택 후

작업  - Launch instance from template 을 선택합니다.




Template 버전을 선택하면 Detail 설정을 확인할 수있습니다.

Template 생성시 설정했던 값들이 그대로 출력되는 것을 확인할 수 있습니다…

[AWS] 사용중인 EC2 인스터스의 Type 변경하기

이미지
AWS Free Tier 사용목적으로 계정을 생성하고
Amazon EC2 인스턴스를 생성하게 되면
일반적으로 Free Tier 지원이 가능한
t2.micro Type 의 인스턴스 를 구성하게 됩니다.

하지만 서버구성후 개발 프로그램 테스트를 진행하다 보면
리소스 부족으로 인해 인스턴스 Type 변경이 필요한 경우가 생기게 됩니다.

이때 인스턴스 Type 을  변경하기 위한 두가지 방법이 존재 합니다.

첫번째 방법은
AMI 이미지 생성 후 해당 이미지를 복원하여 신규 EC2 인스턴스를 생성하는 방법입니다.
이 방법은 서버 절체 시간을 최소화 할수 있는 장점이 있지만
VPC,  Subnet, Securety Group 등 설정 작업이 필요합니다.


두번째 방법은 
현재 인스턴스  형상 그대로 Type 만 변경하는 방법으로
매우 편리하게 Type 변경이 가능하지만
서버 운영을 잠시 중단했다가 다시 시작해 주어야 합니다.

24시간 운영되는 서비스가 아닌 테스트용 서버의 경우에는 번거로움을 최소화 하는
두번째 방법으로 인스턴스 타입 변경이 가능합니다.

두번째 방법을 통해 EC2 인스턴스의 타입 변경방법을 확인해 보도록 하겠습니다.


1. 인스턴스 중지
EC2 대시보드에서 변경하고자 하는 인스턴스를 선택 후
작업 > 인스턴스 상태 > 중지 를 선택합니다.




2. 변경 유형 선택
인스턴스 중지가 완료 되면
작업 > 인스턴스 설정 > 인스턴스 유형변경을 선택 합니다.



인스턴스 유형변경 팝업이 노출되면
변경 하고자 하는 인스턴스 타입을 선택하고 “적용” 합니다.

m4.large 를 선택해 보겠습니다.























타입 변경 후 인스턴스 유형을 확인해 보면 m4.large 로 변경된 것을 확인할 수 있습니다.





3. 인스턴스 재실행
이제 인스턴스 실행을 위해
작업  > 인스턴스 상태 > 시작을 선택 합니다.


해당 인스턴스 부팅이 완료되면 변경 적용이 완료 됩니다.

이상 간단한 3단계 작업만으로 인스턴스 타입 변경을 완료 하였습니다.…

[AWS] 운영중인 EC2 Instance의 EBS 볼륨 확장하기

이미지
EC2 인스턴스는 실행중인 서버의 스토리지 볼륨을 확장 할 수 있습니다.
콘솔에서 EBS의 볼륨 크기를 수정하고
인스턴스에 접속하여 파티션을 확장해 주면 됩니다.

1. AWS 콘솔에서 EBS 볼륨 확장하기

EC2 대시보드 에서 확장하고 싶은 EBS 선택한 후
작업 > 볼륨수정 을 선택합니다.


볼륨수정 팝업이 표출되면 크기를 원하는 사이즈로 변경한 후  “수정” 버튼을 선택합니다.


확인 메시지가 출력되면 “예” 를 선택합니다.





대시보드에서 확인해 보면 크기가 8GB 에서 10GB 로 변경된 것을 확인할 수 있습니다.
변경작업이 완료될 때 까지 상태가 “Optimizing” 으로 표시됩니다.



확장이 완료 되었습니다.




2. 인스턴스의 볼륨 파티션 확장하기

AWS 콘솔을 통한 볼륨 확장이 완료되면 인스턴스에 접속하여 파티션을 확장해 주어야 합니다.
인스턴스에 SSH 접속 후

$ lsblk

명령어를 통해 파티션 영역을 확인합니다.
디스크는 10GB 로 확장되었지만
파티션 영역은 8GB 만 사용되고 있는걸 확인할 수 있습니다.




파티션 확장을 위하여
$ sudo growpart /dev/xvda 1
명령어를 입력합니다.




$ lsblk
명령을 실행해 파티션이 확장 되었는지 확인합니다.

파티션이 10G 로 변경된 것을 확인할 수 있습니다.


$ df –h
명령어를 통해 마운트 영역을 확인해 보면
/dev/xvda1  은
여전히 8GB의 디스크 공간만 사용되고 있음을 확인 할 수 있습니다.




디스크공간을 확장하기 위해 
$ sudo resize2fs /dev/xvda1
명령을 실행합니다.



$ df –h
명령을 실행해 디스크 공간을  확인 합니다.


AWS 콘솔을 통해 확장한 만큼 10GB 영역이 마운트 되어 있는 것을 확인할 수 있습니다.





[AWS] Bastion Host 를 활용한 SSH 접근통제 #2

이미지
지난 포스팅에서 Bastion Host 를 구성하여 WebServer SSH 에 접근권한을 제어하는 방법에 대하여 알아 보았습니다.

지난포스팅 보러가기 -> [AWS] Bastion Host 를 활용한 SSH 접근통제 #1 


하지만 지난시간에 적용한 구성은 보안상으로 문제점이 발생합니다.

BastionHost 와 WebServer 가 동일한 인스턴스 접속Key를 사용하기 때문에
BastionHost 가 보안 취약점에 의해 외부에 노출 되는경우  WebServer 도 동시에 영향을 미치게 됩니다.

< 동일한 Instance 접속키 사용에 따라 보안 취약점 발생>

이러한 보안 취약점 해결을 위하여 이번 포스팅에서는
아래 구성과 같이 instance 접속키를 별도로 구성해 보도록 하겠습니다.

<instance 접속키 분리를 통해 보약취약점 제거>

우선 AWS 콘솔로 이동해서 신규 적용할 Key 를 생성하도록 하겠습니다.
EC2 메뉴 좌측에서 Key Pairs 를 선택합니다.

기존에 생성한 인스턴스 키 목록이 표출 됩니다.

Create Key Pair 를 클릭하여 신규 Key 를 생성 하겠습니다.

Web Server 에 사용할 Key 이름을 설정하고 Create 를 선택 합니다.
“web” 이라는 명칭으로 키를 생성해 보겠습니다.

키가 생성되면 자동으로 web.pem 파일이 다운로드 됩니다.

이제 생성된 key 파일을 이용해 Instance 를 새로 생성 하도록 하겠습니다.
기존 서비스가 운영 중인 경우 동일한 instance 를 활용하기 위해서는 AMI 백업을 진행하고
해다 이미지를 활용해 신규 Instance 를 생성 합니다.

생성 하고자 하는 인스턴스를 선택한 후  image > Create image 메뉴를 선택합니다.


생성할 image 이름을 등록합니다.
운영중인 서버라면 “No reboot” 옵션에 체크해야 인스턴스가 재부팅 되지 않습니다.



이제 생성된 이미지를 활용해서 새로운 인스턴스를 생성하도록 하…

[AWS] Cloudwatch 와 SNS를 이용한 Email 알림기능 설정

이미지
AWS EC2 인스턴스를 사용하여 서비스를 운영중이라면 인스턴스의 상태관리가 매우 중요합니다.

AWS 콘솔 접속을 통해 인스턴스 상태를 확인 할 수도 있지만

CloudWatch의 이벤트 생성기능과 Simple Notification Service기능을 조합하면
EC2 인스턴스의 상태가 변경되는 것을 자동으로 감지하고
이메일로 상태정보를 전송받을 수 있는 알림기능을 구현할 수 있습니다.

우선 AWS Console에 접속하여  SNS  메뉴로 이동합니다.




Create Topic 메뉴를 선택합니다.




Topic Name 과 Display Name 을 입력합니다.
SendEmail 이라는 제목으로Topic을 생성하겠습니다.
여기서 입력한 Display Name 은 실제 이메일이 전송될 때 제목으로 사용됩니다.



Create Topic 버튼 을 클릭하면 생성된 Topic 의 상세화면으로 진입합니다.




이제 구독을 설정하겠습니다.
Create Subscription 을 클릭합니다.



TopicARN은 자동으로 입력되어 있습니다
이메일 알림을 받는게 목적이므로
Protocol 을 Email로 설정하고 Endpoint 에 알림을 받을 메일주소를 입력하고
Create Subscription 버튼을 클릭 합니다.

구독메일이 생성 되었습니다.



최초 생성시 Pending Confirmation 상태입니다.
생성된 Subscription 을 선택하고 Request Confirmations 을 클릭하면 Endpoint 에 입력한 메일 주소로 인증메일이 발송 됩니다.




Confirm subscription 을 선택하여 메일인증을 완료합니다.

다시 AWS 콘솔화면으로 돌아오면 해당 계정에 SubscriptionID 가 정상적으로 생성된 것을 확인할 수 있습니다.  

메일 구독을 위한 준비가 마무리 되었습니다.

이제 EC2 인스턴스의 상태가 변경되는 시점에 이벤트가 발생하도록  CloudWatch 이벤트 규칙 설정을 진행해 보도록 하겠습니다.


CloudWatch 메뉴 로 이동합니다.
신규 규칙을 생…