일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- API
- crashlog
- 설치제거
- ClickOnce
- 블루투스 헤드셋
- 크래시로그
- C/C++
- plcrashreporter
- 기념일관리
- 데이터 전달
- Font
- protobuf-c
- docker
- M8200
- phpmailer
- MFC
- EUC-KR
- self-signed ssl
- php
- JavaScript
- Antialiasing
- 한 번만 실행
- VS2008
- .net
- PDA
- C#
- 와이브로
- net
- GDI
- 자바스크립트
- Today
- Total
~☆~ 우하하!!~ 개발블로그
AWS 계정 가입하여 12개월 프리 티어 사용해보기 본문
일단 AWS 계정에 가입하기 위해서는 이메일 주소가 필수이다.
AWS 전용으로 gmail 계정을 새로 하나 만들려고 했더니 이미 전화번호를 많이 사용했다고 계정 생성 과정이 진행되지 않는다.
인터넷을 검색해보니 모바일 gmail 앱에서는 된다고 하길래, 해봤더니 정말 된다. 모바일 gmail 앱에서의 신규 계정 생성 과정에서 전화번호를 확인하는 과정이 없다.
어쨌거나 룰루랄라~ 신규로 gmail 계정을 생성했다.
모바일 gmail 앱에서 계정생성에는 성공했지만,
시간이 얼마 지나지 않아 인증절차가 시작되면서 전화번호에 의한 인증코드 확인 작업이 진행되면서
해당 계정을 사용할 수가 없게 되었다. ㅠㅠ
그래서 제 3의 번호를 변경하여 새로운 전화번호로 인증을 해보기 위해서 전화번호 변경 신청하여 대기중...
전화번호 변경이 완료될 때까지 시간이 꽤 걸리는 이유로 이메일 계정에 + 를 사용해서 가입해보기로 결정.
그러나 AWS 에 계정 가입시 이메일 계정명에 + 기호 사용이 불가능해졌다. ㅠㅠ
이제 AWS 사이트에 들어가서 신규로 생성한 gmail 계정을 이용해서 가입해보자.
https://aws.amazon.com/ko/ 주소로 이동한 후 오른쪽 위의 "콘솔에 로그인" 버튼을 클릭한다.
이동한 페이지를 아래로 스크롤해보면 "루트 사용자 이메일을 사용하여 로그인" 링크가 보인다.
이 링크를 클릭한 후에 이동하는 페이지에서 아래쪽으로 스크롤하여 "AWS 계정 새로 만들기" 버튼을 찾는다.
가입을 위한 루트 사용자의 이메일 계정과 계정이름을 입력해서 이메일 주소를 검증하자.
그런데, AWS 에 계정생성을 위한 이메일 주소에 + 기호가 더 이상 허락되지 않는다.
어쩔 수 없이 내가 가지고 있는 여러 구글 계정 중 하나를 사용할 수 밖에 없었다. ㅠㅠ
가입 과정에서 내 주소와 결제정보를 입력하는 과정이 있다. (필수 과정이라 생략이 불가능하다)
마지막 단계에서 요금정책을 설정할 수 있는데, 프리 티어를 선택했다.
보안상 MFA (멀티 팩터 인증) 를 설정하였다.
나의 Region 을 아시아 태평양 (서울) - ap-northeast-2 로 설정한 다음에 EC2(Elastic Compute Cloud) 인스턴스를 생성해본다.
EC2 에서 2 는 Elastic Compute Cloud 의 이니셜 중에서 C 가 연속으로 2번 나온다는 의미에서 명명된 것이다(누가 나에게 설명해주지는 않았지만, 그렇게 짐작되고, 이 짐작이 맞다고 확신한다). Elastic 은 탄력 있는 이라는 뜻이다.
EC2 인스턴스 생성하기
초기 상태이므로 등록된 인스턴스가 아무것도 없으므로 인스턴스 유형 메뉴에서 등록할 유형을 선택한다.
12개월 프리티어 혜택에서는 t2.micro 유형을 선택해야 과금이 되지 않는다. 물론 사용용량을 초과시에는 과금이 된다.
위 이미지처럼 t2.micro 유형에 체크를 한 뒤에 오른쪽 위의 작업 버튼을 눌러서 인스턴스 시작 메뉴를 선택한다.
왼쪽 영역은 스크롤이 되면서 새로 만들 EC2 인스턴스의 다양한 속성을 설정할 수 있는 영역이다.
인스턴스의 이름으로 web 을 입력하고,
애플리케이션 및 OS 이미지(Amazon Machine Image) 항목에서는 Ubuntu 를 선택하였다.
Ubuntu 서버의 버전은 24.04 LTS 라고 안내가 된다.
Ubuntu 를 선택했을 때 오른쪽에 프리 티어 사용 가능 이라고 표시되는 것에 주의해야 한다.
키 페어(로그인) 항목은 비어 있는 상태인데, 로그인 보안을 위해서는 새 키 페어를 생성해서 할당해주는 것이 좋다.
키 페어 생성 버튼을 클릭하면 생성된 키 페어 파일이 즉시 다운로드되며, 이 파일은 다시 다운로드할 수 없으므로 잘 보관해 두어야 한다.
네트워크 설정의 기본값은 다음 이미지와 같다.
인스턴스에 SSH 연결로 접속해야 관리할 수 있으므로 위치 무관하게 SSH 트래픽 허용으로 설정하여야 한다(기본값 수정 없음).
스토리지 용량은 프리 티어 사용자에게 최대 30GB 를 할당할 수 있게 해준다고 한다.
초기값은 8GB 로 설정되어 있는데, 메모리가 1GB 로 여러모로 부족할 상황이 될 수 밖에 없기 때문에 디스크에 스왑공간을 할당해서 성능을 조금이라도 높여보고자 16GB 로 조정한다.
디스크에 스왑공간 생성하는 방법 참조 : https://ittrue.tistory.com/297
나머지 속성값은 기본값대로 그냥 받아들인 후에 오른쪽의 인스턴스 시작 버튼을 클릭하면 새로운 인스턴스가 생성된다.
성공적으로 인스턴스가 시작되었다는 결과 화면에서는 다음 단계에 대한 중요한 안내가 보인다.
만약 프리 티어 사용에 대한 임계값이 넘는 상황이 발생하면 과금이 되기 때문에 그에 대한 알림을 받도록 설정해 두는 것이 좋겠다.
현재는 비활성화, 전송되지 않음으로 되어 있다.
우선 오른쪽의 알림 기본 설정을 편집하는 화면으로 이동한다.
AWS 프리 티어 알림 수신과 CloudWatch 결제 알림 수신을 모두 체크하여 "업데이트"한다.
CloudWatch 결제 알림은 요금 변화를 이메일로 알림 받을 수 있는데, 무료 한도 내에서 사용이 가능하다. 물론 일정 한도를 넘어서면 요금이 부과된다.
참고 : https://velog.io/@khyup0629/AWS-CloudWatch-%EC%9A%94%EA%B8%88-%EC%A0%95%EB%B3%B4
세부 결제 보고서(레거시) 항목은 S3로 레거시 보고서가 전송되게 할 수 있는데, 현재는 S3 인스턴스를 구성하지 않았으므로 나중에 추가하기로 하자.
여기까지 진행한 상태에서 인스턴스 목록을 새로고침 해보면 아래와 같이 web 이라는 이름의 인스턴스가 실행중인 것을 확인할 수 있다.
인스턴스 ID 항목의 링크를 클릭하면 해당 인스턴스에 연결할 수 있는 "연결" 버튼이 보인다.
인스턴스 연결 방법으로 아래 4가지를 제공한다.
이 중에서 SSH 클라이언트를 통해서 연결하려면 앞에서 생성해 둔 키 페어 파일을 사용해야 한다.
다운로드받은 키 페어 파일의 속성을 아래 명령어로 수정해야 사용할 수 있다.
sudo chmod 400 "key.dev.pem"
외부 컴퓨터에서 EC2 인스턴스로 ssh 로 접근하려면 22번 포트에 대한 허용 규칙을 추가해야 한다.
보안 그룹에서 EC2 에 적용된 보안 그룹 항목의 인바운드 규칙에 22번 포트에 대한 허용 규칙을 추가해주어야 한다.
연결 방법중 EC2 인스턴스 연결의 방법에서 EC2 Instance Connect 유형을 사용해서 연결되면 성공한 것이다.
이번에는 SSH 클라이언트를 이용한 연결을 테스트해보자.
ssh 연결 포트의 디폴트값이 22인데, 보안을 이유로 2222로 변경해본다.(사실 회사의 내 컴퓨터에서는 22번 포트가 막혔는지 접속이 되질 않는다)
sudo vi /etc/ssh/sshd_config
파일의 내용을 저장하고 아래 명령어로 ssh 데몬을 재시작한다.
sudo systemctl restart ssh
보안 그룹에서 인바운드 규칙에 넣어둔 22번 포트 허용 규칙을 2222번 포트 허용 규칙으로 수정해준다.
사용자 컴퓨터 터미널에 연결 명령 ssh -i "key.dev.pem" -p 2222 ubuntu@<PUBLICIPv4> 을 실행시킨다.
퍼블릭 IPv4 DNS 로 접속되지 않을 경우에는 퍼블릭 IPv4 주소를 사용한다.
인스턴스에는 퍼블릭 IPv4 주소가 부여되는데, 이 주소는 인스턴스가 재시동되면 변경이 된다.
따라서 고정된 IP 주소를 할당해야 할 필요가 있다. 하지만, 고정IP 를 사용하게 되면 요금이 발생한다. 무조건.
참고 : https://assaeunji.github.io/aws/2020-03-30-elastic-ip/
EC2 관리 메뉴 중 "네트워크 및 보안" 그룹에 "탄력적 IP" 메뉴가 있다.
오른쪽 위의 "탄력적 IP 주소 할당" 버튼을 클릭하여 이동하는 페이지에서 기본값을 그대로 수용하여 "할당" 버튼을 클릭하면 고정 IP 주소가 발급된다.
발급된 IP 주소를 인스턴스와 연결하기 위해서는 발급된 항목을 체크하고 "작업" 메뉴 아래에서 "탄력적 IP 주소 연결" 을 선택하면 된다.
이제 나의 웹서버는 재부팅이 되더라도 고정IP(탄력적IP)주소 가 할당되며 외부에서는 이 주소에 접속할 수가 있게 되었다.
방금 만든 인스턴스를 웹서버로 사용할 것이므로 접속시 웹페이지가 표시될 수 있도록 Apache 를 설치해보자.
sudo apt install apache2
일단 웹서버는 80 포트 통신이 필요하기 때문에 보안그룹에서 80 포트에 대한 인바운드 허용 규칙을 추가해 준다.
그런 다음에 public IP 로 웹브라우저에서 접속해보면 아파치 초기 페이지가 표시될 것이다.
주의할 것은 http://<publicIP> 로 접속해야 한다는 것이다. 웹브라우저에서 https 가 자동으로 붙을 수 있으므로 주의해야 한다.
이번에는 톰캣을 설치해본다.
톰캣 설치를 위한 파일은 https://tomcat.apache.org/ 주소로 이동하여 왼쪽의 Download 메뉴에서 버전을 선택할 수 있다.
최신버전이 아닌 버전을 다운받아야 하는 경우에는 Archives 링크로 이동하면 된다.
이 포스트에서는 v10.1.20 버전을 설치해보겠다.
다운로드받을 파일의 URL 을 아래 명령문에 사용한다.
cd /tmp
wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
/tmp 디렉토리에 다운로드된 apache-tomcat-10.1.20-src.tar.gz 파일의 압축을 아래 명령어를 이용해서 /opt/tomcat 디렉토리에 풀어준다.
sudo tar xzvf apache-tomcat-10.1.20.tar.gz
위 명령어가 수행되면 /tmp 디렉토리 하위에 apache-tomcat-10.1.20 이름의 디렉토리가 생성되고 그 안에 톰캣 서버 파일들이 압축 해제된다.
일반적으로 /opt/tomcat 을 톰캣 디렉토리로 사용하므로 아래 명령어를 실행한다.
sudo mv apache-tomcat-10.1.20 /opt/tomcat
톰캣 동작은 tomcat 이라는 계정으로 실행되도록 해주는 것이 좋겠다 싶어서 아래 명령어로 tomcat 계정을 생성해준다.
sudo useradd -m -d /home/tomcat -U -s /bin/false tomcat
tomcat 계정의 권한으로 톰캣이 동작해야 하므로 /opt/tomcat 디렉토리에 대한 권한을 수정한다.
sudo chown -R tomcat:tomcat /opt/tomcat/ && sudo chmod -R u+x /opt/tomcat/bin
/opt/tomcat/bin 디렉토리에 톰캣 시작과 종료에 대한 스크립트 파일이 존재하는데, 이를 실행하려면 tomcat 계정으로 전환할 수 있어야만 한다. 그런데 tomcat 계정을 생성할 때 로그인이 불가능하게 만들었으므로 아래 명령어를 이용하여 로그인이 가능하게 변경한다.
sudo usermod -s /bin/bash tomcat
이제 tomcat 계정으로 전환해서 톰캣을 실행시켜보자.
sudo su -
su tomcat
/opt/tomcat/bin/startup.sh
톰캣이 제대로 실행중인지는 /opt/tomcat/logs/catalina.out 파일의 내용으로 확인할 수 있다.
톰캣 기본 설정에 따르면 동작 포트값은 8080 이다. 톰캣이 동작되는 것은 확인했지만, 외부에서 8080 포트 접근이 허용된 상태가 아니므로 <PublicIP>:8080 를 통해서 톰캣 화면을 확인할 수는 없다.
보안그룹에 8080 포트 규칙을 추가해 넣으면 웹브라우저를 통해서 톰캣 페이지를 볼 수 있게 된다.
개발서버를 구성하는 단계에서는 이것저것 실험적으로 설치를 하다가 망치는 경우도 있고, 설치하다가 마음대로 잘 안되어 실패하는 경우 원복을 시키고 싶은 경우도 있다.
이럴 경우를 대비해서 잘 구성된 초기 상태를 이미지로 박제해놓았다가 원복해야 할 때 사용할 수도 있다.
일단 스냅샷을 뜨기 위해서는 해당 인스턴스가 중지된 상태여야 한다.
왼쪽의 Elastic Block Store 아래의 스냅샷 메뉴로 이동한다.
스냅샷 생성 버튼을 클릭하면
리소스 유형으로 볼륨과 인스턴스 중 한 가지를 선택할 수 있다.
백업할 대상이 볼륨이면 볼륨을, 인스턴스면 인스턴스를 선택하면 되는데, 프리티어 EC2 를 사용하는 상황에서는 어느 것을 선택해도 결과가 동일할 수 밖에 없을 것 같다.
그러나 스냅샷을 생성해 두었다가 이것을 이용해서 복원하고자 할 때에는 인스턴스 스냅샷을 선택하는 것이 맞겠다.
이 스냅샷을 새로운 인스턴스 생성에 사용할 수 있도록 AMI 화하는 단계는 아래와 같다.
스냅샷을 선택한 상태에서 "작업" - "스냅샷에서 이미지 생성" 메뉴를 선택한다.
이미지 이름에 적절한 이름을 입력하고(나는 dev라고 입력했다), 설명에 이 이미지에 대한 설명을 입력한 뒤에 "이미지 생성" 버튼을 클릭한다.
생성된 이미지는 왼쪽의 "이미지" - "AMI" 메뉴 화면에서 확인할 수 있다.
지금 사용중인 EC2 인스턴스에 문제가 생겨서 새로운 인스턴스를 만들어야 하는 상황이 발생하면, 방금 생성한 인스턴스 이미지를 사용해서 새로운 EC2 인스턴스를 생성함으로써 초기 설정에 소요되는 시간과 노력을 save 할 수 있다.
현재 사용중인 EC2 인스턴스를 종료(삭제) 한 후 AMI 메뉴 화면의 "AMI로 인스턴스 시작" 버튼을 클릭하면 초기 구성이 완료된 상태로 EC2 인스턴스를 구성할 수 있게 된다.
'개발환경' 카테고리의 다른 글
오랜만에 건드려보는 IntelliJ spring boot 프로젝트 (신규) (0) | 2024.10.30 |
---|---|
AWS SES (Simple Email Service) (0) | 2024.10.30 |
React Native 프로젝트 개발을 위한 환경 (H/W, S/W) (2) | 2024.09.06 |
jenkins 를 이용한 프로젝트 배포 (1) | 2024.03.23 |
OpenJDK – 어떤 버전, 어떤 배포판을 사용해야 할까? (1) | 2024.03.05 |