대외활동/UMC 4th

Ch2 클라우드 구축 : AWS EC2 실습

oxdjww 2023. 5. 6. 22:05
728x90
반응형

UMC 4th - SpringBoot

 

사실 실습을 하면서 포스팅도 바로바로 하려고 했으나 UMC외에도 소화해야할 일정이 많은 탓에

5주차인 지금 2주차를 업로드한다......

기억 나는대로 차근차근 복습한다는 느낌으로 포스팅 하겠다

 

Week 2 실습 리스트는 다음과 같다


- AWS EC2 인스턴스 생성

- ssh 사용하여 인스턴스 외부접속

- Nginx 패키지 설치 후 http 외부 접속

- Mysql 패키지 설치 후 접속

- PHP 패키지 설치

- Datagrip or Workbench등으로 Mysql 외부 접속

- 가비아 or 후이즈에서 domain 연결 (.shop 도메인)

- HTTPS 적용

- Sub Domain 적용 (dev,prod)

- Redirection 적용 (IP to Domain)


 

AWS EC2 인스턴스 생성

 

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

Q: AWS 프리 티어란 무엇입니까? AWS 프리 티어는 고객에게 서비스별로 지정된 한도 내에서 무료로 AWS 서비스를 살펴보고 사용해 볼 수 있는 기능을 제공합니다. 프리 티어는 12개월 프리 티어, 상

aws.amazon.com

우선 aws 회원가입을 해주어야한다

 

프리티어 계정을 만들면 12개월간 무료로 사용이 가능하다고 하니 참고하자

 

로그인 후, EC2 서비스 -> 인스턴스 를 들어가준다.

 

참고로 EC2란 아마존 웹 서비스 AWS에서 제공하는 클라우드 컴퓨팅 서비스 중 하나이다.

원하는 컴퓨팅 리소스를 실행해볼 수 있고 다양한 운영체제와 소프트웨어에 적용시켜서 필요에 따른 가상 컴퓨터 인스턴스를 실행할 수 있게 해준다. 그냥 하나의 컴퓨터를 제공해준다고 생각하면 편하다.

 

그리고 인스턴스 시작 버튼을 통해 인스턴스를 생성해줄 것이다.

이름은 자유롭게, 서버는 우분투를 선택해준다.

 

명시해주는 속성들을 제외하면 다 디폴트값이다

키페어 이름은 자유롭게 설정하면 된다

자유롭게 로컬영역 디렉토리에 저장해주면 된다

필자는 desktop/AWS 디렉토리를 만들어 저장해주었다

이 키페어를 통해 서버에 접속할 수 있으니 유출에 절대 주의하자

그리고 나머지는 default로 설정 후, 인스턴스를 시작해준다.

 

 

정상적으로 실행되는 모습을 확인할 수 있다.

 

ssh 사용하여 인스턴스 외부접속

keypair를 저장해둔 디렉토리로 이동해서

한 줄을 입력하면 바로 접속할 수 있는데

IPv4 DNS는 AWS의 '인스턴스 ID'에 들어가면 확인할 수 있다

$ ssh -o "키페어이름.pem" ubuntu@"퍼블릭 IPv4 DNS"

를 쳐주면

성공적으로 SSH 외부접속 할 수 있다.

 

가비아 or 후이즈에서 domain 연결 (.shop 도메인)

https://www.gabia.com/

 

웹을 넘어 클라우드로. 가비아

그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브

www.gabia.com

에서 실습을 진행하였다.

회원가입 해준 후, 도메인을 검색해준다

 

.shop 도메인이 1년으로 구매하면 가장 저렴하니 .shop 도메인으로 구매해주자!

결제 후, My 가비아->DNS 관리툴 로 들어가준다

방금 만든 본인의 DNS의 설정으로 들어가서

 

레코드들을 추가해준다

A type의 값들은 본인 인스턴스의 ip주소를 넣어주고, CNAME의 값들은 DNS명을 적어주면 된다.

 

CNAME을 추가하는 것은 추후에 있을 서브도메인 적용에 관련된 내용이다.

 

저렇게 등록 후,

$ sudo vi /etc/nginx/sites-available/default

terminal에서 server_name ... 부분을 찾아서

server_name 도메인.shop www.도메인.shop

을 입력해주자

그리고 마지막으로 IP주소를 url에 입력했을 때

가 나오면 성공이다!

Sub Domain 적용 (dev,prod)

기본경로 (/var/www/html)로 이동해서

각각 dev,prod 디렉토리를 만들어서

각각 디렉토리 안에 index.html파일을 만들어서 기본 html을 넣어주자

필자는 다음과 같은 예시를 사용했다

그리고 nginx 기본 설정파일로 가서 서버블록을 추가해준다

$ sudo vi /etc/nginx/nginx.conf

 

 

$ sudo service nginx restart

nginx 재시작 후 접속

성공이다

Redirection 적용 (IP to Domain)

ip를 입력했을 때 도메인으로 이동할 수 있게끔 해주는 서비스이다

$ sudo vi /etc/nginx/sites-available/default

이동 후 마지막 부분에 서버블록을 추가해주면 리다이렉션이 가능하다

server {
        listen 80;
        server_name 15.165.222.42;
  return 301 $scheme://lilyspace.shop$request_uri;
}

그리고

$ sudo service nginx restart

nginx 재시작 후 ip를 입력하면 도메인으로 연결된다 !

화면 기록 2023-05-06 22.02.35.mov
0.16MB

HTTPS 적용

// snapd 유무 확인
$ sudo snap install core
$ sudo snap refresh core

// certbot download
$ sudo snap install --clasic certbot

// certbot command settings
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

// HTTPS access on
$ sudo certbot --nginx

mail을 입력하고, 수많은 질문에 y를 눌러주고 

도메인 (1,2,3,4)를 모두 선택해주면

HTTPS 연결 성공~

 

 

감사합니다

 

728x90
반응형

'대외활동 > UMC 4th' 카테고리의 다른 글

[FlagApp] SpringBoot - Server 배포  (0) 2023.08.07
Ch 7 API : 당근마켓 CRUD  (0) 2023.05.18
Ch4 SQL : RDS실습  (0) 2023.05.17
Ch3 데이터베이스 : AWS RDS 구축  (0) 2023.05.17
Ch1 Server : UTM Ubuntu LTS 설치  (1) 2023.05.04