안녕하세요~ 작은나무입니다!!
오늘은 AWS EC2 인스턴스 생성하는 방법에 대해 알아보겠습니다.
Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 온디맨드 확장 가능 컴퓨팅 용량을 제공하고 있어 빠르게 어플리케이션을 개발하고 배포할 수 있습니다.
1. AWS EC2 인스턴스 생성하기 전에 먼저 서비스를 제공하는 국가 리전(Region)을 선택합니다.

2. AWS 왼쪽 상단의 서비스 > EC2를 클릭합니다.

3. EC2 인스턴스를 생성하기 위해 인스턴스 시작을 클립합니다.

4. EC2의 이름 및 태그를 입력합니다. 이름은 원하는 명칭으로 작성하면 됩니다.
추가 정보를 입력하려면 "추가 태그 추가"를 클릭하고 입력하면 되는대 저는 기본값으로 진행했습니다.

※ 리소스 유형은 인스턴스 / 볼륨 / 스팟 인스턴스 / 네트워크 인터페이스의 종류를 선택할 수 있습니다.
5. 애플리케이션 및 OS 이미지(Amazon Machine Image)로 사용할 운영체제를 선택해야 하는대요
Ubuntu를 선택하고 Amazon Machine Image(AMI)는 프리 티어 사용 가능한 "Ubuntu Server 24.04 LTS (HVM), SSD Volume Type"를 선택했습니다. 아케텍처는 64비트(x86)을 선택합니다.

※ Amazon Linux는 AWS에서 Red hat을 기반으로 서비스하는 운영체제 입니다.
6. 프리 티어 사용 가능한 1vCPU 1Gib 메모리를 사용하는 인스턴스 유형 t2.micro를 선택합니다.
다른 인스턴스 유형을 선택할 수도 있구요 CPU 수, 메모리 사이즈 등을 선택할 수 있는대요 사양을 높게 설정하면 비용이 높아 집니다.
※ 인스턴스 유형 비교를 통해 성능과 가격을 비교해 볼 수 있습니다.

7. 키 페어(로그인)을 설정합니다.
외부에서 인스턴스에 접근하기 위해 OpenSSH or Putty에서 사용할 키를 생성하는 것인대요
키 페어를 사용하면 인스턴스를 안전하게 접근 할 수 있게 할 수 있습니다.
인스턴스에 연결할 때 꼭 필요하니 잘 보관해야 합니다. (재발행 X)

8. 다음으로는 인스턴스에서 사용할 네트워크 설정을 진행 합니다.
VPC, 서브넷, 퍼블릭 IP 할당등도 자유롭게 설정할 수 있지만 해당 부분은 기본값으로 진행합니다.
처음 설정을 진행하고 있기 때문에 기존에 생성한 보안 그룹이 없으니 보안 그룹 생성을 선택하고 발급한 키 페어를 사용하여 SSH를 이용할 예정이기 때문에 "SSH 트래픽 허용"을 체크하고 접속을 허용할 IP는 내 IP로 제한하여 선택합니다.
도메인을 할당하여 http(s)를 이용할 예정이기 때문에 허용 체크 진행합니다.

세부적인 보안 그룹 규칙을 수정하기 위해 네트워크 설정 우측의 "편집" 버튼을 클릭해서 추가적인 보안 규칙을 구성할 수 있습니다.

9. 스토리지 구성은 프리 티어에서 사용할 수 있는 30GiB 설정하고 유형은 범용 SSD(gp3)를 선택합니다.

고급 세부 정보는 LDAP, AD 연결이나 계정 권한 역할 등을 설정하는 영역인대요 지금은 별도 설정없이 진행하겠습니다.

10. 마지막으로 요약 정보를 확인하고 인스턴스 시작 버튼을 클릭합니다.

인스턴스 시작이 성공했습니다.
드디서 AWS에 첫 인스턴스를 생성했습니다~
축하합니다^*^

11. 콘솔 홈으로 이동해서 EC2 인스턴스를 확인해 보면 아래와 같이 정상적으로 실행중인 것을 확인할 수 있습니다.

인스턴스 ID를 클릭하면 설정한 인스턴스에 대한 요약 정보를 확인 할 수 있습니다.

※ 주의 : 기존에 무료였던 Globacl Accelerator의 고정 IP나 internet-facing ALB의 Public IPv4 Address가 유료로 변경되었습니다.

EC2용 AWS 프리 티어에는 2024년 2월 1일부터 처음 12개월 동안 매월 750시간의 퍼블릭 IPv4 주소 사용이 포함된다고 합니다.
아래의 경우는 고정 IP가 필요할 경우 설정해 주세요! (과금이 발생할 수 있습니다.)
인스턴스를 생성하게 되면 위와 같이 퍼블릭 IPv4 주소가 자동 할당되게 되는대요 (퍼블릭 IP 자동 할당 설정 시)
인스턴스를 중지하고 재시작하게 되면 새로운 IP가 할당이 되기 때문에 고정적인 IP를 할당할 수 있도록 탄력적 IP 주소를 아래와 같이 설정해 보겠습니다.

탄력적 IP 주소 할당을 클릭하고 기본값으로 되어 있는 네트워크 경계 그룹정보와 퍼블릭 IPv4 주소 풀의 Amazon의 IPv4 주소 풀 선택을 확인하고 할당을 클릭합니다.

아래와 같이 탄력적 IP 주소가 할당됩니다. 탄력적 IP 주소 연결을 클릭하여 연결화면으로 이동합니다.

탄력적 IP 주소를 확인하고 연결할 인스턴스와 프라이빗 IP주소를 선택하고 연결합니다.
※ 프라이빗 IP 주소를 입력하지 않으면 기본 프라이빗 IP 주소로 연결됩니다.

탄력적 IP 주소가 연결되었습니다.
연결되면 이제 인스턴스를 중지하고 재시작해도 새로운 IP가 할당되지 않고 고정 IP로 유지가 됩니다.

AWS EC2 인스턴스 연결하기
이제 위에서 설정한 인스턴스에 연결해 보겠습니다.
인스턴스에 연결하기 위해 인스턴스 ID > 연결 버튼을 클릭합니다.
SSH 클라이언트를 클릭해서 SSH 접속 예시를 확인하고 해당 내용을 바탕으로 PowerShell에서 실행합니다.

1. SSH 클라이언트를 Open (윈도우의 경우는 PowerShell, 맥의 경우는 터미널)
2. 프라이빗 키 파일(key of smalltree.pem)를 찾습니다.
3. SSH를 사용하기 위해 키 파일의 권한을 변경합니다. (chmod 400 "key of smalltree.pem")
4. 위의 ssh -i "key of..."를 붙여넣고 인스턴스에 연결한다.
접속하기 위해서 복사한 ssh -i... 명령어를 실행하면 아래와 'smalltree.pem의 키'에 대한 권한이 너무 열려 있습니다.라는 문구와 함께 권한을 제한하라는 문구가 확인된다면 아래와 같이 키 권한을 변경해야 합니다.

리눅스의 경우는 위에서 제공하는 chmod 400 "key..." 명령어를 이용해서 변경할 수 있는대요
윈도우의 경우는 chmod 400 명령어를 실행할 수가 없어서 다른 방법으로 권한을 변경해야 합니다.
powerShell에서는 아래 정보로 실행하고 cmd에서 진행하면 ${env:UserName}을 %username&:(R)으로 변경해서 사용합니다.
※ pem파일이 있는 폴더에서 실행해야 합니다.
※ pem파일에 공백이 있다면 파일명을 공백 없이 해주시고 진행해주세요.
icacls.exe smalltree.pem /reset
icacls.exe smalltree.pem /grant:r ${env:UserName}:R
icacls.exe smalltree.pem /inheritance:r
이제 다시 접속을 해보면 AWS 인스턴스에 잘 접속이 됩니다.

인스턴스에 접속을 했으니 이제 자유롭게 서버를 구성해 볼 수 있습니다.
다음 시간에는 Java 설치 방법과 DB(PostgreSQL) 그리고 tomcat에 대한 설치 방법에 대해 알아보겠습니다.
감사합니다.