개발일지/스파르타코딩클럽

AWS의 모든 것(2) - 예산 설정, EC2

마이구미+ 2023. 5. 8. 00:43

<예산 설정>

  • AWS 홈페이지에 접속 후 루트사용자로 로그인한다

  • 오른쪽 위에 있는 아이디를 누르면 보이는 Billing Dashboard를 클릭한다

  • 왼쪽 카테고리에서 Bills를 누르면 청구될 금액을 볼 수 있다

  • 예산을 설정하기 위해 왼쪽 카테고리에서 Budgets을 누른 후 오른쪽 위에 보이는 Create budget을 클릭한다

  • 한 달 예산을 설정하기 위해 Monthly cost budget 상자를 누른다
  • 알람을 받을 기준이 되는 금액을 입력하고 알람을 받을 메일을 적은 후 Create budget을 누른다

  • 예산이 잘 설정됐고, 빨간 네모 부분을 누르면 해당 예산에 대한 상세 정보를 볼 수 있다

  • 알람메일은 3가지 경우에 온다
    • 실제 요금이 설정한 금액의 85%를 넘었을 때
    • 한 달 예상 요금이 설정한 금액을 넘었을 때
    • 실제 요금이 설정한 금액을 넘었을 때

<EC2>

  • EC2는 Elastic Compute Clolud의 약자로, 탄력적인 성능을 제공하는 클라우드임
  • 요금을 cloud를 많이 쓸 때는 조금 내고 많이 쓸 때는 많이 낼 수 있게 함
  • 클라우드 서비스의 종류로 IaaS(Infrastructure as a Service), PaaS(Platfrom as a Service), SaaS(Software as a Service)가 있는데 그 중 EC2는 IaaS에 해당함
  • IaaS는 하드웨어 인프라를 인터넷을 통해 제공하는 서비스로 쉽게 말하면 서버를 제공하는 서비스다
  • AWS는 물리서버를 가지고 있는데 물리서버가 가상의 서버를 만들어서 사용자에게 제공하며 그 각각을 인스턴스라고 함

- 인스턴스 띄워보기

  • EC2를 검색해서 들어간다

  • Launch instance를 누른다

  • 빨간 네모칸대로 해준다
  • 중간에 create keypair를 누르면 아래와 같은 창이 뜨는데 네모칸대로 하면 된다

  • 인스턴스를 만들고 instances를 클릭해서 보면 아래와 같이 나온다

  • 방금 만든 my tutorial의 instance ID를 눌러 상세정보창으로 들어간다

  • open address를 누르면 무한로딩창이 뜨는 걸 확인할 수 있다
  • 무슨 권한을 줘야 한다고 한다 아래의 Security를 눌러보자

  • 인바운드는 다 막혀있고 아웃바운드는 다 열려있다고 한다
  • 아까 open address를 눌렀을 때 뜨는 창에 접속하는 건 막혀있고, 그 창에서 다른 페이지로 이동하는 건 가능하다는 뜻인 것 같다
  • Security groups 아래의 글자들을 누른다

  • 그럼 이런 창이 뜨는데 빨간네모 표시한 부분을 누른다

  • 그럼 이런 창이 뜨는데 Add rule을 2번 누른다

  • 그럼 rule이 2개 생기는데 Type을 HTTP, HTTPS로 설정하고 검색 부분을 누르면 0.0.0.0/0을 선택할 수 있다
  • 0.0.0.0/0은 모든 IP를 허용한다는 뜻이다
  • Save rules를 눌러 저장한다
  • 그러고 다시 open address를 누르면 이번에도 연결은 안 되는데 이번에는 무한 로딩이 아닌 아래와 같은 에러메시지가 뜰 것이다
ERR_CONNECTION_REFUSED
  • 인스턴스는 열렸는데 외부에서 오는 것을 처리하기 위한 것이 안 켜져 있는 것이다
  • 다시 instance 상세정보창으로 와서 오른쪽 위에 Connect를 누른다

  • 그럼 이 창이 뜨는데 또 Connect를 누른다
  • 그럼 AWS 서울 데이터센터의 서버 컴퓨터로 접속된다

아래와 같은 명령어를 쓴 후에 엔터를 친다

sudo apt-get update
  • 그럼 뭐 이것저것 업데이트가 되어서 사용할 수 있는 상태가 된다
  • 서버를 여는데(?) 필요한 nginx라는 서버프로그램을 설치한다
sudo apt-get install nginx

설치 중간에 나오는 질문인데 y를 눌러주면 된다

  • 설치가 다 되었으면 프로그램을 실행한다
sudo systemctl start nginx

  • 프로그램을 시작하면 아무것도 안 뜨는데 상태를 보기 위해 아래 명령어를 쓴다

sudo systemctl status nginx

  • 이렇게 active라고 돼있으면 프로그램이 잘 돌아가고 있다는 뜻이다
  • 이제 아까 그 주소를 새로고침 해보면 Welcome to nginx! 라고 뜨는 것을 확인할 수 ....있을까?
  • 일단 난 안 된다...하라는대로 했는데 왜 안 되지....후
  • 캐시 문제일 수도 있대서 다른 인터넷이나 시크릿모드로 접속했는데도 안 된다.....아놩..

  • 아까 rule 추가한 후랑 같은 메시지..
  • 컴퓨터 명령어를 잘못 친 걸까.....
  • connect부터 다시 해도 안 된다~

- 인스턴스 끄기

  • 페이지는 접속이 안 되지만..인스턴스가 켜져 있기 때문에 끄도록 하겠다
  • 켜두면 과금이 발생할 수 있다

  • 위 이미지대로 끄고 싶은 인스턴스를 체크한 후 오른쪽 위에 Instance state 눌러서 Stop instance를 눌러주면 끝이다
  • 참고로 인스턴스를 껐다가 다시 Start instance를 누르면 Public IP가 바뀐다(Private IP는 안 바뀐다)
  • 이전 주소로는 접속이 안 되고 바뀐 주소로 접속해야 된다고 한다 난 어차피 접속 안 되지만..

- IP 고정하기

  • 왼쪽 카테고리에서 Elastic IPs - Allocate Elastic IP address 클릭

  • 위 창이 뜨면 Allocate 클릭

  • 만들어진 고정 IP 체크 후 Actions - Associate Elastic IP address 클릭

  • 연결할 인스턴스 클릭 후 Associate 클릭
  • 인스턴스로 가서 확인해보자

  • 인스턴스를 껐다가 다시 켜도 Public IP가 그대로인 것을 확인할 수 있음
  • 근데 고정IP를 계속 두면 요금이 청구됨
  • 사용 후에는 꼭 release 해줘야 함

  • 다시 Elastic IP로 가서 해당 IP 체크 후 Actions - Disassociate Elastic IP address - Release Elastic IP address 순으로 클릭해서 고정 IP를 삭제해줌