지난 포스트에 이어서 EC2 인스턴스를 생성 밒 접속해보고 Java 실행환경을 구축하도록 하겠습니다.
지난 포스트와 연계되는 내용이므로 먼저 지난 포스트를 봐주시면 좋겠습니다.
※ 지난 포스트는 아래의 URL로 이동하실 수 있습니다.
※ 주의사항
1. 이 포스트는 AWS의 EC2 서버상에 환경을 구축하므로, 실습하기 위해선 'VISA, MasterCard 등이 붙은 신용카드'가 필요합니다.
2. 실습후에 요금이 발생하기를 원하지 않으신다면 반드시 인스턴스를 '종료'하셔야 합니다.
1. AWS EC2 인스턴스 생성
AWS EC2 서비스에서 말하는 인스턴스란 AWS EC2 서비스로 생성하는 서버를 뜻합니다.
EC2 서비스를 사용하면 아주 간단한 조작만으로 외부 인터넷으로부터 언제든지 접속할 수 있는 서버를 뚝딱 만들어 낼 수 있습니다.
아래의 순서대로 따라하시면 실습자 분들만의 서버를 순식간에 만들어 내실 수 있습니다.
- 'AWS Console'의 좌 상단의 서비스를 클릭 -> EC2를 클릭합니다.
- 좌측 카테고리의 '인스턴스'를 클릭합니다.
- 우 상단의 '인스턴스 시작'을 클릭합니다.
- 이 화면에서는 EC2 서버에 올려서 사용할 운영체제를 고를 수 있습니다.
저는 Amazon Linux를 사용하도록 하겠습니다.
※ 주의 사항
① 다른 운영체제를 사용하셔도 상관없지만, 과금을 피하기 위해선 반드시 '프리티어 사용 가능'이라고 표시된 운영체제를 선택하시기 바랍니다.
② 아래 사진의 우측 상단을 보시면 '도쿄'라고 표시된 곳이 있습니다.
이곳은 AWS의 리전을 표시・선택하는 곳으로 지난 포스트에서도 설명했지만, 다시 한번 강조하자면 거주하는 곳과 가까운 곳의 리전을 선택하시기 바랍니다.
리전은 AWS의 실제 물리 서버가 위치하는 곳이라고 보면되며,
가까운 곳을 선택해야하는 이유 여러 가지가 있지만 현재는 학습용이기 때문에 조금이라도 가까운 곳의 리전을 선택해야 더 빠르게 EC2에 접속할 수 있다는 것을 들 수 있겠습니다.
실무에서도 대부분 가까운 곳의 리전을 선택하지만 규모가 큰기업은 타 지역 국가의 리전에도 인스턴스를 생성해 두곤 합니다. 이유는 혹시나 가까운 곳의 리전에서 문제가 발생했을때 서비스를 정상적으로 운영하기 위해서 입니다.
제가 다니는 회사에서는 장애 방지를 위해 일부러 도쿄만이 아닌 타 지역 국가의 리전에도 인스턴스를 생성해서 혹시나 모를 장애에 대비해 서버를 다중화해둔 상태입니다.
- 다음은 인스턴스의 유형을 선택하는 곳입니다.
생성할 서버의 스펙을 정할 수 있습니다.
프리티어로 사용가능한 t2.micro를 선택한 후 '다음:인스턴스 세부 정보 구성'을 클릭합니다.
- 별도로 설정을 건드리지 않고 '다음: 스토리지 추가'를 클릭합니다.
- 별도로 설정을 건드리지 않고 '다음: 태그 추가'를 클릭합니다.
- 별도로 설정을 건드리지 않고 '다음: 보안 그룹 구성'을 클릭합니다.
- 새 보안 그룹생성을 체크하시고, 보안 그룹 이름과, 설명을 입력하신 후 '검토 및 시작'을 클릭하시면 됩니다.
※ 이곳의 설정에서 EC2 인스턴스에 접속 가능한 포트를 추가로 설정도 가능하지만 지금은 22번 포트만을 사용하도록 설정하겠습니다.
- 인스턴스 보기를 클릭합니다.
- 실행중이라고 표시되면 인스턴스가 정상적으로 실행된 것입니다.
※ 인스턴스의 상태에 대해서 설명
아래 사진은 생성한 인스턴스를 선택한 후 마우스 우클릭을 한 상태입니다.
붉게 표시한 곳을 보시면
인스턴스 중지, 인스턴스 시작, 인스턴스 재부팅, 인스턴스 최대 절전모드, 인스턴스 종료가 있습니다.
이 부분은 인스턴스의 상태를 변경할 수 있는 메뉴입니다.
각 상태에 대한 설명은 다음과 같습니다.
상태 | 설명 |
인스턴스 중지 | '실행중'인 인스턴스를 일지적으로 정지하는 것으로, 컴퓨터의 전원을 꺼둔상태라고 생각하시면 됩니다. 중지상태라면 사용요금은 발생하지 않겠지만 기본적인 비용이 발생할 가능성이 존재합니다. |
인스턴스 시작 | '중지'상태의 인스턴스를 '실행중' 상태로 변경하는 것으로, 컴퓨터의 전원을 켠상태라고 생각하시면 됩니다. 인스턴스가 '실행중' 상태로 변경되면 당연히 요금이 발생하게 됩니다. |
인스턴스 재부팅 | 인스턴스를 재시작하여 '실행중' 상태로 변경하는 것으로, 말그대로 컴퓨터를 재부팅 것을 생각하시면 됩니다. EC2 인스턴스에서 여러 설정을 변경후 재부팅이 필요하거나 할때 사용하시면 됩니다. |
인스턴스 종료 | 더이상 사용하지 않을 인스턴스를 완전히 삭제하는 것으로, 사용하지 않는 컴퓨터를 버린다고 생각하시면 됩니다. 학습용으로 AWS사용하시는 경우 실습이 끝나면 반드시 인스턴스 종료를 클릭해서 인스턴스를 삭제하시기 바랍니다. 반대로 실무에서 AWS를 사용하시면서 중요한 데이터가 남아있는 서버를 백업도 없이 자기마음대로 인스턴스 종료를 해버리면 절대 안됩니다... |
2. AWS EC2에 접속해 보기
AWS EC2에 접속하기 위한 정보는 EC2 인스턴스 관리 화면 -> 접속하고 싶은 인스턴스를 선택
-> 우측 상단의 연결을 클릭하면 확인 할 수 있습니다.
- 저는 SSH 클라이언트로 접속하려 하므로 'SSH 클라이언트'를 클릭해서 SSH로 접속하는 방법을 확인했습니다.
Git Bash를 사용해서 SSH로 접속해보기
Git을 설치하면 기본적으로 같이 설치되는 Git Bash를 사용해서 EC2 인스턴스에 접속해보겠습니다.
※ Git이 아직 설치되어 있지 않다면 아래의 URL에서 Git의 설치파일을 다운로드하여 Git을 설치해주시기 바랍니다.
- git bash를 검색해서 Git Bash를 실행합니다.
아래 명령어를 입력하면 EC2 인스턴스에 연결할 수 있습니다.
# 개인키가 있는 디렉터리로 이동
$ cd ~/.ssh/
# 접속하기; ssh -i {개인키의 경로} ECS에 설치된 운영체제의 유저명(기본 ec2-user)@{엔드포인트}
$ ssh -i "koiking-key.pem" ec2-user@ec2-54-92-90-46.ap-northeast-1.compute.amazonaws.com
# 접속하기 (어떤 경로에서든)
$ ssh -i ~/.ssh/koiking-key.pem ec2-user@ec2-54-92-90-46.ap-northeast-1.compute.amazonaws.com
- 아래 캡처와 같게 표시된다면 제대로 EC2 인스턴스에 접속한 것 입니다.
Filezila를 사용해서 SFTP로 접속 + 파일 전송해보기
Filezila를 사용해서 EC2 인스턴스에 파일을 전송해 보겠습니다.
- Filezila를 실행한 후 좌 상단에 붉게 표시한 서버 모양의 아이콘을 클릭합니다
- 항목 선택에서 '내 사이트'를 클릭 -> '새 사이트'를 클릭합니다.
- 사이트명은 적당히 입력
-> 프로토콜 : SFTP로 설정
-> 호스트 : 엔드 포인트 입력
-> 로그온 유형 : 키 파일 선택
-> 사용자 : ec2-user 입력
-> 키 파일은 찾아보기를 클릭해서 홈 디렉터리 하위의 .ssh/ 디렉터리의 .ppk파일을 선택하면 됩니다.
-> 설정이 완료되면 '확인'을 클릭합니다.
※ 이전 포스팅에서 .ppk를 생성하는 방법을 설명했기에 여기에서는 따로 하지 않겠습니다.
- 좌 상단의 붉게 표시한 서버 모양 아이콘 옆의 화살표를 클릭하면 등록한 접속 정보가 표시됩니다.
표시된 접속 정보를 클릭하면 SFTP로 파일 전송을 할 수 있게 됩니다.
3. Java 실행환경 구축
저는 Windows에서 Java 개발환경으로 AdoptOpenJDK 11 버전을 선택했으므로 EC2에서도 AdoptOpenJDK 11을 설치하려고 합니다.
Amazon Linux는 Fedora(Centos)를 기반으로 하므로 패키지 관리 툴로 yum커맨드를 사용할 수 있지만, yum패키지 저장소에는 AdoptOpenJDK는 등록되어 있지 않으므로 직접 설치 파일을 다운로드하여 설치하겠습니다.
※ 반드시 yum으로 설치를 하고자 한다면 /etc/yum.repos.d/에 .repo파일 작성하는 방법도 있지만 귀찮습니다...
아래의 URL에 접속해서 설치 파일을 다운로드합니다.
https://adoptopenjdk.net/releases.html
- 붉게 표시된 부분으로 설정하신 후 .tar.gz파일을 다운로드합니다.
- 다운로드가 되었다면 Filezila를 통해서 .tar.gz파일을 업로드합니다.
- 아래 커맨드를 입력하여 설치를 진행하시면 됩니다.
# JDK를 배치할 디렉터리 작성 (원하시는 디렉터리를 지정하시면 됩니다.)
sudo mkdir -p /usr/java
# tar.gz 파일 이동
sudo mv ~/OpenJDK11U-jdk_x64_linux_hotspot_11.0.11_9.tar.gz /usr/java/
# 압축해제
sudo tar -xvf OpenJDK11U-jdk_x64_linux_hotspot_11.0.11_9.tar.gz
# 심볼릭 링크설정
sudo ln -s /usr/java/jdk-11.0.11+9 /usr/lib/java
# 환경변수(Path) 설정
# vi로 설정 파일을 엽니다.
sudo vi /etc/profile
# 입력모드로 변경
i
# 아래의 내용을 파일의 가장 마지막 부분에 추가합니다
### Java Path ###
export JAVA_HOME="/usr/lib/java"
export PATH=$PATH:$JAVA_HOME/bin
sudo source /etc/profile
# 저장 후 나가기
:wq
# 변경사항 적용하기
source /etc/profile
- Java버전이 출력이 잘된다면 제대로 설치된 것입니다.
Windows에서 작성한 .class 파일을 사용하여 EC2에서 'Hello World'출력해보기
- 이전 포스트에서 작성한 .class파일을 EC2에 업로드합니다.
- Windows에서 했던 것과 똑같은 방식으로 실행하여 같은 결과가 출력되는 것을 확인할 수 있습니다.
'인프라 > AWS-EC2' 카테고리의 다른 글
AWS EC2 인스턴스를 생성하여 Java어플리케이션 실행환경 구축하기-1(AWS회원가입 + 키페어 설정 + IAM설정) (0) | 2021.05.04 |
---|
댓글