AWS

2025. 6. 9. 22:01·서버

책보고하면 돈날아간다!

 

[AWS 책보고 할만한거]

1장 - aws주요서비스

2장 - 보안, 방화벽

3장 - 스토리지, 데이터백업, (스냅샷은 복사비용발생할수도있음)

7장 - 로드밸런싱

9장 - CDN 서비스

10장 - IAM 가상계정관리

 


[AWS 로그인 후 메인화면]

로그인하면 이렇게 뜬다

 

애플리케이션 : 서버 생성하면 뜸 

AWS Health : 보안정보가 뜸 / 문제발생시 뜸

비용 및 사용량 : 제한 꼭 걸어둬야함 / 안걸어두면 난리남! 내 지갑 지켜!

 

[서버 위치 설정]

가장 먼저 할 것 : 서버의 위치를 잡기

 

우상단 아시아 태평양 (시드니) 클릭 > 서울 클릭

다른 지역으로 세팅하면 속도 떨어짐!

 

[EC2 서버 만들기]

좌상단 메뉴 > 컴퓨팅 > EC2 > 클릭

또는 검색에 EC2 검색

쉽게 얘기하면 도커로 사용자 컨테이너 하나 만들어주는것과 같은 역할을 함 

 

대시보드 들어가기 

기본으로 보안그룹 1로 설정돼있음

만약 L2 L3장비 추가하면 늘어남

인스턴스 시작 클릭

이름 : 서버이름 입력

 

여기 유료가 잔뜩있음

나 Centos쓰는데 안뜸 -> 찾아야함

뭣도모르고 인터넷보고하면 요금 뚜두러맞음

이렇게 프리티어 사용 가능이라고 써있어야 무료임

나머지는 다 유료

 

Centos 검색하면 다 시간당 요금으로 유료만 뜸

쭉내리다가 보면 이거 있음

프리티어여도 매월 750시간 이후로 요금 발생하니 750 시간 후에 삭제해야함

750시간 = 31.25일

근데 이러면 걍 무료아닌가?싶은데 잘모르겠다 찾아보세요

서버꺼둔다고 시간안나가는거아님! 주의하기 

 

이건 운영체제 비용이고 네트워크 비용은 또 별도임

nano micro small medium... 용량 메모리 cpu할당 다 다름

지금구독하기 선택 

 

그러면 화면에 좌라라락뜸

나 이거 선택 안했는데 t3 미디엄 선택됨

프리티어 사용가능이라고 써있는 t2.micro선택하기

 

[클라우드 상식]

- VPC or VPN

- IPv4 or IPv6

- 네트워크 보안장비 (T1, T2, T3, T4, E1, E2, E3) 오른쪽으로 갈수록 비싸짐 지금 우리가 선택한건 t2

- EC2 - Web Server

- CDN - File Server (컨텐츠 전송 전용 서비스)

- Putty -> key 생성 (보안)

 

새 키 페어 생성 클릭

푸티를 사용하는 경우 프라이빗 키파일 형식 .ppk 선택하기 

나도 .ppk로 하겠음

키페어생성 클릭

자동으로 다운됨

이거 잊어버리면 절단난다~!

꼭 안전한 곳에 잘 저장해두기

 

네트워크 설정 편집 클릭

VPC : 자동으로 할당됨 (서버아이피)

서브넷, 퍼블릭IP자동할당까지 그냥 냅두기 

 

기본으로 세팅된 값은 ssh인데 ftp나 다른것들 쓸거면 보안 그룹 규칙 추가 세팅해야함

 

gp3은 3000IOPS 초과하면 비용발생

입출력 장치 사용에 따라 달라짐 주의 

그래서 gp2 사용할게용

30기가로 바꿔주고 gp2로 바꿔줌

10기가도 모자름 운영체제만해도 용량이 짱크기때문

 

새 IAM 프로파일 생성 클릭

얘네는 기본베이스임

역할 생성 클릭

이 계정 = 내 aws 계정 

우상단 내 아이디 클릭하면 거기에 계정 ID 숫자 띠리릭 나오는데 그거임

 

일반적으로 회사에선 이렇게 사용안함

사수가 권한 설정해서 사용자 지정 신뢰 정책으로 만들어서 줌

 

우리는 일단 사진처럼 AWS 계정으로 만듦~!

다음!

 

권한 정책 세팅할 수 있음

필터링 기준 유형 : AWS 관리형 - 직무

선택

Billing : 요금 발생 체크할 수 있음

권한 이렇게 체크!

다음!

밑에 그대로두고 역할생성 클릭! 

잘생성됐다!

 

다시 전 페이지로 돌아가기

이거 그냥 냅둬 나중에 세팅할 수 있음 

아~~~~무것도 안할거임 다 내려 내려 쭉

따로 건들거 읎.써.요.

인스턴스 시작 클릭!

결제 및 프리 티어 사용 알림 생성 클릭!

알림 기본 설정 편집해서 이메일 넣기 

발생 비용은 여기서 확인 가능

이거도 설정 가능

 

예산 생성 클릭!

이메일 수신자 설정하고 예산 생성 클릭!

잘 만들어졌다!

GCP나 네이버클라우드는 비용나오면 연락오는데

AWS는 세팅안하면 돈내~ 이럼 ...

꼭 세팅하기!

 

여기 대시보드 들어가서 내리다보면

이거 URL 복사해두기

계정 별칭 생성 클릭!

그러면 URL도 바뀜

사용자 탭으로 이동

원하는 IAM 사용자 생성가능

사용자생성 클릭!

체크항목 설정 다르니 잘확인하기

다음!

루트를 되찾을때 사용할수있는 권한임 

요거만 일단 체크하고 다음!

사용자 생성!

.csv파일 다운로드해서 잘 보관해두기


크롬으로 세팅했으니 엣지로 테스트해보기

나는 사파리로 테스트할거임

콘솔로그인URL로 접속

잘 로그인됐다~!

시드니 -> 서울 변경 

부사수도 비용보게하는 법

결제 및 비용 관리 들어가도 권한설정 안해놔서 들어가면 아무것도 못봄

루트로가서 풀어줘야만 볼 수 있음

루트로와서 계정 클릭

쭉쭉쭉 내리다보면 결제정보 액세스 있음

활성화하면 볼 수 있음

이제 IAM으로 들어갔을때 잘 보임

 

IAM으로 EC2를 들어가면 루트로 만들어둔 서버가 안보임!!!

왜 ? 미국이니까~

서울로 변경하면 바로 보임

엉뚱한짓 하지말고 지역 잘 보자~!

 

근데 이거 지울거야... Centos 9 유료야 ㅠ

완전히 프리티어 만들자 

[서버 삭제]

인스턴스 중지해도 비용 발생함 => 완전히 지워야함

 

EC2 > 인스턴스 > 인스턴스 > 서버 체크하고 상단 인스턴스 상태 클릭 > 인스턴스 종료(삭제) 클릭

종료 삭제 누르면 시간이 좀 걸린 후 삭제됨

다음에 다시 들어와서 삭제된거 확인해야함

 

[새로운 서버 만들기]

인스턴스 시작 클릭!

기본설정된거 프리티어 사용가능한거로 냅두기

인스턴스 유형 냅두고 키페어는 아까 만들어둔거 사용

 

네트워크 설정 냅두고

30기가 gp2로 설정 

인스턴스 시작 클릭!

새로 만든 서버를 클릭했을때 아래에 뜨는 퍼블릭 IPv4주소를 확인하기

 

[서버 실행]

푸티없는경우

상단 CloudShell 클릭

하단에 쉘뜸

연결 클릭!

그리고 또 연결 클릭!

ec2-user는 아마존이 주는 다똑같은 아이디임

 

루트로 바꾸는법

sudo -s

 

 

[root@ip-172-31-43-67 ec2-user]# aws iam list-users
Unable to locate credentials. You can configure credentials by running "aws configure".
[root@ip-172-31-43-67 ec2-user]# aws configure
AWS Access Key ID [None]: ^C

이거는 키가 필요함 아직 없기때문에 그냥 냅둔다 일단 나중에 세팅

 

[인바운드 아웃바운드 규칙]

인스턴스 > 서버 클릭 > 보안 > 인바운드규칙, 아웃바운드 규칙 있음

보안그룹 클릭 

 

여기에 보안그룹 클릭

인바운드 규칙 편집 클릭

 

여기에 규칙 추가하기

HTTP 추가, 소스는 IPv4

http://아이피

그러면 서버 아이피로 http 들어가면 작동됨!

 

https://아이피

이거는 안됨

아직 추가 안해서그럼

HTTPS도 추가하기

근데 키도 있어야함 얘는!!!

 

포트 작동 확인하려면 

https://아이피

이게아니라

http://아이피:443

이렇게 확인해야함

 

FTP도 추가하고싶은데 안보임

그러면 사용자지정 TCP로 21포트 /포트바꾸고싶으면 맘대로..

이런식으로 추가해주면 됨

 


[맥을 위한 ppk -> pem 키파일 변환, 맥 터미널로 접속]

아아아아아악!!!!!!!!!끼에에에엑!!!!!!!!!!T0T!!!!!!!!@!@#!@#!@#!@#!!!!

맥은 인스턴스만들때 키를 ppk가 아니라 pem으로 만들었어야했다

수정하는거는 난 못찾겠다

대신 다른 방법이있다 ppk를 pem으로 변환...

 

Homebrew가 설치되어 있고 putty가 안깔려있는 경우

 

brew install putty

 

puttygen /path/to/your-key.ppk -O private-openssh -o /path/to/save/your-key.pem

ex)

puttygen /Users/nayeong/Documents/aws_Server.ppk -O private-openssh -o /Users/nayeong/.ssh/aws_pem_key.pem

 

권한 설정

chmod 600 /Users/nayeong/.ssh/aws_pem_key.pem

 

이 pem키로 접속하는 방법

ssh -i /Users/nayeong/.ssh/aws_pem_key.pem ec2-user@서버아이피

해냈다 터미널로 aws 접속!!!!

🥳난 최고야 개멋쪄 난 멋있는 여자 난 짱이다 개멋있다 최고다🥴

 

기본사용자인 ec2-user로 로그인이 된 상태에서

sudo -s

사용해서 루트로 접속

who

접속중인 사용자 확인 가능

[본격적인 서버 세팅]

[web]

cd /home

yum install httpd

dnf install httpd

둘 중 하나로 설치

 

rpm -qa | grep dnf

이거 해보면 dnf가 깔려있어서 사용할수있는거임

안깔려있으면 dnf먼저 깔거나 yum으로 설치해야함

 

dnf로 해볼게염

dnf install httpd

잘깔린다

 

systemctl start httpd

웹 돌아감

 

netstat -ano

이거해서 80포트 돌아가면 잘 되고있다는 뜻

 

systemctl status httpd

● httpd.service - The Apache HTTP Server

     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: d>

     Active: active (running) since Mon 2025-06-09 06:50:16 UTC; 18min ago

(running)  떠있으면 잘 돌아가는중인거임

 

아파치 환경설정 

vi /etc/httpd/conf/httpd.conf

:set nu

47번 라인에 기존 Listen 80 있음

아래에 Listen 443 쓰기 => https 포트

:wq

 

systemctl stop httpd

systemctl start httpd

 

[FTP]

dnf install vsftpd

 

vi /etc/vsftpd/vsftpd.conf

:set nu

100, 101, 103번째 줄 주석 풀기

114번 줄은 YES로 변경

123번 줄은 주석처리

이렇게하면 IPv6 -> IPv4로 변경됨

 

125, 126, 127번째줄 추가 => 패시브모드

:wq

저장하고 나오기

 

vi /etc/vsftpd/chroot_list

사용자리스트에 사용자 추가하기

 

systemctl start vsftpd

netstat -ano

해서 ftp 잘돌아가나 찾아보기 21번포트

웅 잘돌아간당 ^*^

 

50001~50005까지 설정한 패시브모드 풀어줘야함

인바운드규칙 추가

 

 

이렇게 다 따로 만들지말고

포트 번호 입력하는곳에 50001-50005

이렇게 넣으면 됨 ㅎㅎ;

 

[사용자 추가]

cd /home

 

useradd koo

(chroot_list에 추가했던 사용자 만드는거임)

 

passwd koo

패스워드 제대로 쓰기

사용자 파일이 잘 만들어진걸 볼 수 있음!

파일질라를 통해서 koo사용자로 ftp 접속해보기 

잘 연결됨

만약 안되는 경우엔 전송설정 -> 능동형

설정한 다음 연결하기

 

업로드도 잘 되나 확인해보기~

잘들어갔당 ^*^

 

[Mysql]

인바운드규칙 추가

 

yum search mysql

dnf search mysql

있나 확인

 

다른 방법)

만약 mysql 사이트에 가서 repo를 다운받으면 여기서 핸들링해서 설치하기

레드햇 쓰면됨

만약 리눅스 버전을 몰라 -> Linux-Generic 을 사용

주의할 점 : 라이브러리 엉뚱한거 깔게될수도있음 그러면 문제터짐 그래서 운영체제 뭔지 먼저 잘 확인

아마존서버는 기본으로 레드햇계열이라 rpm으로 다운 가능

 

아마존에서 마이에스큐엘 다운하면 불안함 (강사님피셜)

불안하면 안깔랍니다 문제될수도있을거같아여 아 불안한데 진짜로

 

커뮤니티 서버로 할게요

https://dev.mysql.com/downloads/repo/yum/

이거 쓸게욤

다운로드 클릭

https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm

 

요거 복사해두기

 

그리고 서버로 돌아가서 

cd /home

mkdir down

cd down

pwd

wget https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm

잘 다운됐다!

yum localinstall mysql84-community-release-el7-1.noarch.rpm

잘 깔렸다!

 

[mysql 지워]

와! 이거 8.4버전이라 유료임 ㅋㅋ

지워지워지워 다 지워

 

rpm -e mysql84-community-release-el7-1.noarch

설치 삭제

 

rm -drf mysql84-community-release-el7-1.noarch.rpm

rpm 파일 삭제

[mysql 8.0 깔기]

이게 무료임

이거 깔아...

https://repo.mysql.com/

여기서 찾아서 깔자

쭉내리다보면 눈빠지게 찾으면 이거있다...

우클릭 링크주소복사

https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm

 

서버로 돌아가서 

wget https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm

 

여기 키도 하나 링크주소 복사해서 써야함

아마존이라 보안이 빡세다

https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

이거 복사해서

 

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

키임포트하기

 

yum localinstall mysql80-community-release-el7-1.noarch.rpm

설치

 

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

다시 키임포트하기

 

yum install mysql-community-server --skip-broken

어 원래 뭐 이것저것깔고해야하는데 선생님이 용량도 없고 연습하는거니까 그냥 이렇게할게요!함..

 

끼야아아아아아아악!!!!! 

근데 이거도 아니었음 

아마존에서 막아뒀다고 못쓰는거임 

 

눈물의 삭제쇼

rpm -e mysql80-community-release-el7-1.noarch

rm -drf mysql80-community-release-el7-1.noarch.rpm

 

rpm -qa | grep mysql

이거로 잘 지워졌나 확인까지 꼼꼼히...

[진짜진짜 Mysql 8.0 ...]

진짜는 이거임 (제발...)

https://repo.mysql.com/mysql80-community-release-el9-4.noarch.rpm

 

dnf install https://repo.mysql.com/mysql80-community-release-el9-4.noarch.rpm

dnf install mysql-community-client

dnf install mysql-community-server

 

systemctl start mysqld

netstat -ln

잘 돌아가는중...

 

mysql -u root -p

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

임시패스워드 찾아서 넣어야함

 

vi /var/log/mysqld.log

4번째줄에 보면 임시패스워드 있음

[Server] A temporary password is generated for root@localhost: 임시패스워드

 

mysql -u root -p

임시비밀번호 넣으면 접속됨

 

루트 비밀번호 바꾸기

alter user 'root'@'localhost' identified with mysql_native_password by '비밀번호';

정책때문에 대문자 소문자 특수문자 길이 모두 만족해야함 

flush privileges;

 

이제 나갔다 들어올때 변경된 비밀번호로 들어오면 됨

 

status

언어가 자동으로 잘잡혀있음

 

마지막으로 비용 잘 확인하자!


 

[파일질라로 SFTP 접속]

중요한것은 로그온유형 "키파일"

접속 성공!


[윈도우에서 푸티 키파일 사용법]

푸티 접속시 크리덴셜에서 키를 넣을수있음

나 근데 맥인데 어케해? 몰라 찾아보자...

 

이렇게하면 패스워드안넣어도됨 키로 자동 로그인된다

 

...

어 맥은 위에보면 키바꾸는거 있어... 그거 보고 ... 하자...


[Nginx]

Apache 멈춰! 

systemctl stop httpd

React => WEB
Spring, Spring-boot (.war) => WAS

React => WEB
Spring, Spring-boot (.jar) => WAS 필요읎따

 

dnf install nginx

요즘은 아파치 안쓰고 엔진엑스쓴다잉

systemctl start nginx

 

http://서버아이피

접속하면 잘뜬다!

vi /etc/nginx/nginx.conf

:set nu

 

40번째줄은 도메인 나중에 넣기

41번째줄을 원하는 경로로 설정해서 사용하기

:wq

해당 디렉토리 만들어두고 거기에 파일 넣기

cd /home

chmod 755 koo

권한 풀어두기

이거 안풀어두면 404뜸

코드를 뜯어볼게 아니라 이 디렉토리 권한 확인!@!! 500이면 코드잘못임!!


vi /etc/nginx/nginx.conf

 

 

 

[jar 프로젝트 빌드]

이거로 프로젝트 빌드하기

 

프로젝트디렉토리/build/libs/site.msa-0.0.1-SNAPSHOT.jar

이렇게 jar 파일이생김

이거 이름 이쁘게 정리해서 파일질라로 올리기

올렸쪙

 

서버로 돌아가서

java -version

쳤을때 떠야함

안뜨면 설치하기

dnf install java-17*

java -version

잘깔림

 

[jar 실행]

여기서 올렸던 jar파일을 실행해보자

java -jar site.msa.jar

잘 실행된다!

 

http://서버아이피:8080/

접속하면 

이런게 뜸

실제로 서버에 파일이 작동하고 있다는 뜻

 

컨트롤러에있는 api 호출해봤을때

이렇게 잘뜨면 성공

 

또 다른 jar 파일을 만들면

새로운 프로젝트를 만들어서 jar로 만들기 포트는 다른거로 만들어야함!

 

터미널 닫으면 끝남

백그라운드 상태로 돌려놔야함

 

sudo -s 

루트로 접속

 

루트상태에서 다른 사용자로 접속

su 사용자이름

 

일반사용자로 jar 돌려도 됨

java -jar site.msa.jar

이거로 돌리면 터미널 닫았을때 같이 죽음

 

[jar 백그라운드 실행]

백그라운드로 돌리려면

nohup java -jar site.msa.jar &

이거 쳐서 작동시켜야 함 

nohup: ignoring input and appending output to 'nohup.out'

이렇게 뜨는거는 

nohup: ignoring input: nohup은 실행되는 프로그램이 터미널로부터의 입력을 받지 않도록 합니다.
즉, 이 프로세스에는 키보드 입력을 할 수 없다는 뜻입니다.
이는 백그라운드에서 독립적으로 실행되어야 하는 프로그램의 특성상 당연한 동작입니다.

appending output to 'nohup.out': 실행되는 프로그램이 표준 출력(stdout)으로 내보내는 모든 메시지(로그, 결과 등)는 현재 명령어를 실행한 디렉터리에 nohup.out이라는 파일로 저장됩니다.
만약 nohup.out 파일이 이미 존재한다면, 새로운 내용이 기존 내용 뒤에 추가됩니다 (appending)

라고 함..

그래서 페이지 새로고침해보니 잘 돌아가고있다

 

이제 터미널 종료해도 돌고있음!

짞짞짞

 

ps -ef

를 사용해서 현재 작동중인 프로세스들을 다 확인할 수 있음

요놈도 확인된다!

저 pid를 죽이면 죽음

kill -9 51223

이러면 주금~!


하... 하루 통째로 다썼다...

모두에게 도움이 되길 🥲

 

[삭제시 주의 : 함께 삭제해야할것들]

인스턴스 종료(삭제)할 때 보안그룹 얘네 default빼고 다 삭제해야함 

 

키페어도 삭제하기 

 

나중에 대시보드 봤을때 보안그룹 1만 남기고 다 0으로 되어있어야함!

잘 확인하자

저작자표시 비영리 변경금지 (새창열림)
'서버' 카테고리의 다른 글
  • GCP
  • GCP
  • [서버] File I/O
  • [서버] 이모저모
9na0
9na0
응애
  • 9na0
    구나딩
    9na0
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • Web (118)
      • Java (28)
      • 데이터베이스 (14)
      • 세팅 (12)
      • 과제 (3)
      • 쪽지시험 (2)
      • 정보처리기사 (4)
      • 서버 (25)
  • 블로그 메뉴

    • 링크

      • 포폴
      • 구깃
    • 공지사항

    • 인기 글

    • 태그

      file24
      io_dto
      notice_writer
      net4
      file25_t
      noticewriteok
      net5~10
      java_io1~10
      datalist
      re2
      re_java10
      Oracle
      exam1_1~10
      spring-boot
      net2
      net1
      macbook pro m4
      net3
      ab1
      file25
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    9na0
    AWS
    상단으로

    티스토리툴바