EC2인스턴스 생성 & ssh연결 & 웹서버로 동작확인 & 업그레이드
# 개요
EC2는 ECC의 약자이고, 이건 elacstic compute cloud의 약자이다.
인스턴스라는건 우리가 aws의 컴퓨터를 한대 빌리는거다. 가장 근본적인 클라우드 서비스의 형태라고 봐도 된다.
이걸 빌려서 웹사이트를 띄울수도 있고 원하는 작업을 시킬수 있는 등 근본적인 클라우드서비스의 '컴퓨터를 빌린다'라는 개념을 EC2를 다루면서 이해할 수 있다.
# EC2인스턴스 생성
aws콘솔에서 EC2를 검색해서 EC2콘솔에 들어가자.
왼쪽탭에 인스턴스를 들어가자.
인스턴스를 하나 대여할거다. 인스턴스 시작 버튼을 누르자.
먼저 인스턴스 이름을 정해주자. 난 muzzi instance로 정해줬다.
그다음 이 인스턴스의 이미지를 선택해줄 수 있다.
실제로 우리가 온프레미스로 VM을 만들게되면, VMware생성해본 사람들은 알겠지만 os설치하고 하는 시간이 많이든다.
나도 자주쓰는 VM을 만들고 이 VM을 copy해서 쓰곤 했다.
aws를 사용하면 이런짓을 할필요가 없다. 왜냐하면 os가 다 깔려서 사용할수 있기 때문이다.
참고로 난 프리티어로 ubuntu os로 20.04 LTS버전으로 사용했다. 당연히 64비트 쓰는게좋음.
그다음 이 인스턴스의 유형을 정해줘야하는데, cpu가 몇, 메모리는 어떤거 등등을 정하는거다.
t2마이크로는 1코어 cpu, 1기가 메모리를 가진 인스턴스다.
난 cs지식이 없기에 이런게 제일 어렵다 ㅠㅠ
그리고 밑에 '온디맨드'이렇게 써있는데 이게 요금이다.
EC2는 요금이 시간당으로 청구되는데 우린 ubuntu linux로 깔아줬기때문에 저위에 적힌것처럼 시간당 0.0144달러가 청구될거다.
24시간 돌아가는 웹사이트를 이 인스턴스로 하려고 한다면, 하루가 24시간, 한달은 30일로 할때,
0.0144 x 24 x 30 = 10.368달러
약 한달에 13000원정도 청구될거다. 참고로 t2마이크로는 프리티어다. 때문에 간단한 웹사이트가아니라 어느정도 접속이있는 인스턴스로 쓸거면 서버가 자주 터질 수 있으니 인스턴스 종류를 잘 비교해서 선택하자.
인스턴스 종류를 자세하게 보려면 옆에 '인스턴스 유형 비교'링크를 클릭해라
뭐 여러개 뜨는데 cpu는 몇코어이고 메모리가 몇기가인지 뜬다. 본인에게 맞는걸 선택해주자.
그다음 키페어를 선택해야하는데 난 아무 키페어가 없으므로 생성해줄거다.
일종의 보안? 같은거다. ssh로 이 인스턴스에 접속할 예정인데, 키페어가 없다면 퍼블릭 ip만 알고 바로 접속가능하기 때문에 필수적으로 만들어주는게 좋다. 암튼 저 '새 키 페어 생성' 링크를 눌러주면,
이런 창이 뜨게되는데 키페어 이름을 대충 지어주고 ( 난 muzzi-keypair로 만들어줌 ) 키페어는 RSA, pem형식으로 만들어주자. 만들게되면,
이렇게 이 muzzi fem키가 다운받아진다.
pem키를 아주 잘 바탕화면에 저장해두었다. 기업단위에선 이 pem키를 잘안쓰고 aws의 다른걸 쓴다는데 그건 잘모르겠고.. usb나 이런데 넣어두고 집안에 금고에 잘 보관해두샘.
만약 이 pem키와 퍼블릭아이피가 털리면 이 인스턴스는 이제부터 내꺼가 아니다.
이제 네트워크 설정을 해줘야하는데, VPC를 만들고 좀더 구조적으로 만들고 싶으면 편집을 눌러서 서브넷을 선택해야하는데 난 그거까지는 안할거고.. 보안그룹만 생성해주자.
보안그룹은 말그대로 포트이다.
위 사진에선 ssh traffic(22번포트)을 모든 접속에서부터 허용한다는건데 인스턴스에 접속해야하니까 쓰는거다.
그다음 좀따가 이인스턴스에 nginx로 웹사이트를 띄워서 테스트해볼거라 http접속(80포트)을 허용해주자.
다른건 다 제끼고 맨아래로 가서 인스턴스 시작을 누르자!
그럼 파란색 뭐 게이지가 차고 최종적으로 인스턴스가 생성되었다고 뜬다.
자주쓰는 프리티어알림(이전포스팅에서 함) 인스턴스연결, rds로 db연결 등등이 뜨는데 난 그냥 웹서버만 테스트할거니까 아래 '모든 인스턴스 보기' 버튼을 클릭해라.
그러면 이제 다시 ec2콘솔의 인스턴스로 돌아가는데, 방금 만든 muzzi instance가 잘 생성된걸 볼 수 있다.
안보이면 새로고침 해보샘
# ssh로 인스턴스 접속
방금 만든 muzzi instance에서 저 인스턴스 ID컬럼에 저길 클릭하면 이 인스턴스의 정보를 볼 수 있다.
그럼 muzzi instance에 대한 자세한 정보가 나오는데, 우리가 볼것은
퍼블릭아이피 주소, 퍼블릭 dns를 보면 된다.
둘중 하나를 켜고 ssh 접속 프로그램을 켜주자. 난 moba x term을 사용했다.
저기 호스트에다가 위에서 봤던 public ip주소나, dns주소 아무거나 써주면된다.
그리고 중요한게 아까 키페어에서 만들어놨던 pem키!
이 파일을 불러와서 접속할때 써줘야한다.
난 muzzi-keypair.pem라는 파일로 만들어줬었다. 그리고 생성해보면,
연결이 잘되었고 로그인을 하라고 한다.
aws에서 만들어지는 모든 인스턴스는 비밀번호 없이 ubuntu로 접속하면 다 된다.
엔터치면,
잘 접속 되었다~
# 웹사이트를 띄워보자
아래 명령어를 따라 치샘.
sudo su
관리자 권한으로 명령실행
apt update
apt업데이트
apt install nginx
nginx 웹엔진 다운로드
cd /var/www/html
nginx index.html위치 경로로 이동
vi index.html
index.html파일에 난 'hello muzzi world'라는 텍스트를 넣어줬다.
기본적인 웹서버 테스트용 설정을 마쳤다.
이제 아까 눈여겨보라고 했던 public ip나 dns주소를 복사해서 웹브라우저에 복붙해서 드가보자.
난 이번엔 dns주소로 해보겠다.
이 인스턴스로 만든 ec2인스턴스가 웹서버로 잘 동작하게 되었다
# EC2유형 변경하기
맨처음 개요에서 EC2의 의미가 elastic compute cloud라고 했었다.
탄력적인 컴퓨팅 클라우드라는건데.. 뭐가 탄력적이라는거지?
바로 EC2유형을 변경하는걸로 알 수 있다.
우리는 위에 muzzi instance를 만들때 t2마이크로로 cpu 1코어, 메모리 1기가짜리로 만들었다.
근데 이걸 cpu 2코어, 메모리 2기가로 변경등이 가능하다는거다.
vmware쓸때도 vm성능 잘못선택하면 새로만들었었는데 존나 신박한 기능인건 팩트다.
이걸 해보려고 한다.
아까 만든 muzzi instance를 바꿀거다.
인스턴스 유형을 보면 t2마이크로로 만들어졌다.
인스턴스 유형을 바꾸려면 일단 중지해야한다.
이 인스턴스 왼쪽 체크박스를 클릭하고 우측상단에서 인스턴스 상태에서 인스턴스 중지를 클릭하자.
확인버튼을 누르면,
이렇게 인스턴스 상태가 중지중으로 중지될때까지 좀 기다려줘야한다.
이렇게 상태가 중지됨으로 바뀌면, 우측상단에서 작업-인스턴스설정-인스턴스유형변경을 클릭한다.
그럼 인스턴스 유형변경 페이지가 뜨는데, 여기서 인스턴스유형이 t2마이크로인걸 t2미디엄으로 바꾸고 적용을 눌러준다.
다시 인스턴스목록페이지로 돌아가는데
인스턴스 유형이 t2미디엄으로 잘 바뀌었다.
이제 이 인스턴스를 다시 재시작해주면,
저렇게 시작해주고 인스턴스 상태가 대기중이었다가 시간이 좀 지나면 다시 인스턴스 상태가 실행중으로 바뀌고 정상작동된다.
# 인스턴스 끄기
EC2인스턴스는 인스턴스뿐 아니라 이 인스턴스의 필요한 프로그램들이 있는 스토리지도 잡아먹는다
위에 인스턴스 유형을 바꾸면서 잠깐 인스턴스를 중지했는데 이렇게되면 인스턴스 비용은 청구가 안되지만 위에말한 스토리지 비용, EBS비용이 청구가 된다.
따라서 실습하고나선 인스턴스를 삭제를 해주는게 좋다.
EC2인스턴스 콘솔에서 muzzi instance의 옆에 체크박스 체크해주고 우측상단 인스턴스 상태에서 인스턴스 종료를 해주면 인스턴스가 삭제된다. 번역문제인지 왜 종료라고 해놨는지 이해안되지만.. 삭제로 좀 바꿔줬음 좋겠따.
이렇게 복구불가능하니 진짜 삭제할꺼야? 한번 더 물어보는데 걍 삭제하면된다.
그럼 인스턴스 상태가 종료중이었다가 종료됨으로 바뀐다.
이 muzzi instance가 인스턴스 목록에 계속 남아있는데 걱정안해도된다. 몇시간 지나면 걍 없어진다.
사실 계속 보였던 test instance도 이거 포스팅하기전에 만들어놨던건데 목록에 남아있어서 사진에 계속 보이는거다.
암튼 끗