aws 시작하려는데 조언 부탁드립니다.
알림
|
페이지 정보
작성일
2024.06.13 11:36
본문
안녕하세요.
aws 공부겸? 조그마한 토이프로젝트로 작업중인게 있는데 서버와 호스팅을 aws로 하려고 합니다.
웹은 어드민페이지정도만 만들생각이구요,
안드로이드, ios 앱을 만들려고 하는데, 정보제공? 큐레이팅 앱을 개발하려 합니다.
db는 mysql 을 사용하고 빽단은 자바나 nodejs 를 하려고 하는데,
aws 면 호스팅, 배포,db 모두 가능하더더라구요.
문제는 기본세팅인데
aws 로 엄청난 비용청구를 받으신 분들이 계셔서 무지한 저로서는 겁이 납니다;;
초반 사용자야 얼마 안되겠지만, 하루평균 동시접속 천명대로 잡는다면
aws 초반 세팅을 어떻게 해야할까요? 사양 고르는게 있던데
조언 부탁드립니다.
댓글 10
유닉스님의 댓글의 댓글
@혹시님에게 답글
최저사양으로 할까 생각중이긴 한데..
정말 aws가 비싸긴 비싼가 보네요ㅠ
답변 정말 감사합니다👍
정말 aws가 비싸긴 비싼가 보네요ㅠ
답변 정말 감사합니다👍
plaintext님의 댓글
멋진 흐름 요약 감사합니다
네트워킹을 다뤄보긴 했지만
클라우드를 네트워크 인프라까지
다뤄야 하나 싶어서
항상 vpc 부터 막혔던 생각이 조금 뚫리네요 ㅎㅎ
네트워킹을 다뤄보긴 했지만
클라우드를 네트워크 인프라까지
다뤄야 하나 싶어서
항상 vpc 부터 막혔던 생각이 조금 뚫리네요 ㅎㅎ
뿌앵님의 댓글
토이 프로젝트라면 오라클 클라우드 프리티어도 한 번 고려해보세요. 일단 평생무료이긴 한데 오라클이라 언제 뒤통수칠지는 모릅니다 ㅎ
유료플랜 전환하면 arm 4코어 램 24기가까지 무료사용도 가능합니다.
유료플랜 전환하면 arm 4코어 램 24기가까지 무료사용도 가능합니다.
자근자근님의 댓글
하루에 접속자 1000명과 하루 중 동시접속자가 순간 1000명까지 되는 것과, 하루종일 평균 동접 1000명은 매우 다릅니다.
몇초 중단되면 안되거나 손실 있는 서비스와 수분~수시간 중단되어도 되는 서비스 또 다르고, 국내 접속자만 있는 서비스와 해외에도 빠르게 제공하고 싶은 서비스 또 다르구요. 다 되면 당연히 좋겠지만, 비용이 배로 올라갑니다.
오토스케일링, 로드밸런싱, 멀티AZ, k8s 등등 안정성이나 무중단 운영 등등을 위해 뭔가 하나씩 기능을 쓸 때마다 그만큼 비용이 배로 올라갑니다. 소규모 서버에선 대부분 필요없으니 공부 목적이 아니라면 적용 안하셔도 됩니다ㅎ
결과적으로 사용하시는 언어나 서버 구성방법에 따라 다르지만 토이프로젝트면 일반적으로 접속자가 많지 않을거구요, 하루 접속자 1000명이면 그냥 월 1~50달러 선의 구성으로도 충분합니다. (토이가 아닌 상업서비스인데 하루 1000명도 안되는 서비스들도 엄청 많습니다...ㅎ 내 서비스는 만들자마자 대박날거야! 하는 행복한 꿈을 꾸는 것도 좋지만 현실적으로는 그렇습니다)
윗 댓글 '혹시' 님이 작성하신 1~10번은 직접 하지 않으셔도 aws 내에서 기본으로 생성해줍니다.
node 서버를 번들링해서 띄우시면 ec2 인스턴스 첫 1년 프리티어로 t3.micro 타입으로 한대 띄워보는걸로 충분합니다. (프리티어 기간이 끝나면 한달 약 $10)
자바라면 좀 더 넉넉히 t3.small,,
트래픽 비용이 있긴 한데, 적은 사용량에선 무료거나 $1 미만일테니 무시하겠습니다.
기본적으로 vpc 니 subnet 이니 다 있을겁니다.
보안그룹 정도만 잘 설정해주고 있는거 그대로 선택해서 만들면 자동으로 공인 ip 가 할당됩니다.
도메인 네임서버를 route 53으로 한다면 도메인 개수당 한달 0.5$ 인가 그럴겁니다. + 질의 비용... 현 시점에선 무시해도 됩니다.
db 를 위에 만든 서버에 그냥 설치하셔도 됩니다만, RDS를 쓸테다! 하시면 t4g.micro 타입으로, 멀티 AZ 나 복제 같은 옵션 없이 그냥 띄우세요. $14 정도 합니다.
그냥 이 정도로만 하면 월 $10~30 정도로 토이프로젝트의 서버는 충분히 굴러갑니다.
인프라 엔지니어들에게 저렇게 돌리고 있다고 하면 서버 죽으면 어떡할꺼냐고 화내는 사람도 많더라만은 작은 규모에선 오버엔지니어링이라고 생각합니다. 사용자 수가 많지 않은 웬만한 작은 서비스들은 다 돌아갑니다.
AWS 비용이 과다청구되는건 보통
1. 공부용으로 만들고 까먹고 안 지운 경우
2. 비용이 발생하는 서비스인줄 모르고 생성한 경우 (특히 블로그 같은데서 따라 만들 때)
3. 해킹
입니다.
서비스가 갑자기 인기가 많아져서 접속량 폭주로 비용이 많이 나오는 행복한 일은 보통 잘 안 일어나구요, 서버리스나 오토스케일을 정말 잘 구성한게 아니고서야 그 전에 서버가 죽기 때문에 또 그렇게 비용이 잘 안나옵니다.
aws 에서도 비용 추적을 위해 다양한 도구를 제공합니다. 대충 첫화면에서도 현재 사용한 비용과 월말 예상 비용이 나오니 주의하시면서 굴려보세요.
얼마를 생각하고 계신지 모르겠지만 엄청 과도하게 나오진 않습니다.
몇초 중단되면 안되거나 손실 있는 서비스와 수분~수시간 중단되어도 되는 서비스 또 다르고, 국내 접속자만 있는 서비스와 해외에도 빠르게 제공하고 싶은 서비스 또 다르구요. 다 되면 당연히 좋겠지만, 비용이 배로 올라갑니다.
오토스케일링, 로드밸런싱, 멀티AZ, k8s 등등 안정성이나 무중단 운영 등등을 위해 뭔가 하나씩 기능을 쓸 때마다 그만큼 비용이 배로 올라갑니다. 소규모 서버에선 대부분 필요없으니 공부 목적이 아니라면 적용 안하셔도 됩니다ㅎ
결과적으로 사용하시는 언어나 서버 구성방법에 따라 다르지만 토이프로젝트면 일반적으로 접속자가 많지 않을거구요, 하루 접속자 1000명이면 그냥 월 1~50달러 선의 구성으로도 충분합니다. (토이가 아닌 상업서비스인데 하루 1000명도 안되는 서비스들도 엄청 많습니다...ㅎ 내 서비스는 만들자마자 대박날거야! 하는 행복한 꿈을 꾸는 것도 좋지만 현실적으로는 그렇습니다)
윗 댓글 '혹시' 님이 작성하신 1~10번은 직접 하지 않으셔도 aws 내에서 기본으로 생성해줍니다.
node 서버를 번들링해서 띄우시면 ec2 인스턴스 첫 1년 프리티어로 t3.micro 타입으로 한대 띄워보는걸로 충분합니다. (프리티어 기간이 끝나면 한달 약 $10)
자바라면 좀 더 넉넉히 t3.small,,
트래픽 비용이 있긴 한데, 적은 사용량에선 무료거나 $1 미만일테니 무시하겠습니다.
기본적으로 vpc 니 subnet 이니 다 있을겁니다.
보안그룹 정도만 잘 설정해주고 있는거 그대로 선택해서 만들면 자동으로 공인 ip 가 할당됩니다.
도메인 네임서버를 route 53으로 한다면 도메인 개수당 한달 0.5$ 인가 그럴겁니다. + 질의 비용... 현 시점에선 무시해도 됩니다.
db 를 위에 만든 서버에 그냥 설치하셔도 됩니다만, RDS를 쓸테다! 하시면 t4g.micro 타입으로, 멀티 AZ 나 복제 같은 옵션 없이 그냥 띄우세요. $14 정도 합니다.
그냥 이 정도로만 하면 월 $10~30 정도로 토이프로젝트의 서버는 충분히 굴러갑니다.
인프라 엔지니어들에게 저렇게 돌리고 있다고 하면 서버 죽으면 어떡할꺼냐고 화내는 사람도 많더라만은 작은 규모에선 오버엔지니어링이라고 생각합니다. 사용자 수가 많지 않은 웬만한 작은 서비스들은 다 돌아갑니다.
AWS 비용이 과다청구되는건 보통
1. 공부용으로 만들고 까먹고 안 지운 경우
2. 비용이 발생하는 서비스인줄 모르고 생성한 경우 (특히 블로그 같은데서 따라 만들 때)
3. 해킹
입니다.
서비스가 갑자기 인기가 많아져서 접속량 폭주로 비용이 많이 나오는 행복한 일은 보통 잘 안 일어나구요, 서버리스나 오토스케일을 정말 잘 구성한게 아니고서야 그 전에 서버가 죽기 때문에 또 그렇게 비용이 잘 안나옵니다.
aws 에서도 비용 추적을 위해 다양한 도구를 제공합니다. 대충 첫화면에서도 현재 사용한 비용과 월말 예상 비용이 나오니 주의하시면서 굴려보세요.
얼마를 생각하고 계신지 모르겠지만 엄청 과도하게 나오진 않습니다.
유닉스님의 댓글의 댓글
@자근자근님에게 답글
제가 궁금했던 부분을 다 알려주셔서 속이 시원합니다 ㅎ
월 2-3 만원 선에서 생각중이었는데 알려주신대로 해보면 딱 맞을 것 같습니다. 말씀하신대로 동시접속자가 그렇게 많을 것 같지도 않으니 부담 안갖고 해도 될것 같네요. 설명 감사합니다😀
월 2-3 만원 선에서 생각중이었는데 알려주신대로 해보면 딱 맞을 것 같습니다. 말씀하신대로 동시접속자가 그렇게 많을 것 같지도 않으니 부담 안갖고 해도 될것 같네요. 설명 감사합니다😀
자근자근님의 댓글의 댓글
@유닉스님에게 답글
추가 생각나는대로,
1. RI (reserved instance, 예약 인스턴스) 라고 있습니다. 1년 혹은 3년 선결제를 하면 3년, 총액 기준 50% 가까이 할인이 됩니다. 이런걸 잘 활용하시는 것도 좋구요, 단점이라면 기간 끝날때쯤 까먹기 쉽다는건데, 저도 까먹고 있었는데 오랜만에 다시 몇개 사둬야 겠네요. 재밌게도 같은 타입이면 위 아래 다른 사양이라도 분할로 적용해줍니다. (ex, t3 small RI 를 구매했는데 t3 micro 2대만 떠 있어도 RI 사용량으로 계산되어 월 비용 없음)
2. 클라우스 서비스들은 사양을 자유롭게 변경할 수 있단 장점을 위해 기본적인 단가가 조금 비싼 편인데, 사양 변경할 일 없고 비용을 조금이라도 줄이겠다! 하면 vpc (virtual private computing) 서비스로 aws 에서는 Lightsail 이 있습니다.
저는 개인적으로 ec2 와 전반적으로 사용 경험 차이가 커서 비선호하긴 합니다.
3. node 서버의 경우 번들링하지 않고 소스를 그대로 서버에 가지고 가서 npm install 및 실행하는 경우가 많습니다.
작동이야 하겠지만,,, npm 패키지 인스톨이 메모리나 용량 자원이 꽤나 많이 필요해서 t micro 나 small 정도의 인스턴스에선 정상적으로 돌아가지 않을수도 있습니다.
서버도 webpack 등으로 번들링하여 빌드 후, 결과 파일만 서버에서 node 만으로 실행하면 훨씬 가볍게 실행가능 합니다.
4. 서비스 사용량이 좀 많아진다면+https 를 사용하신다면, 앞에 aws 로드밸런서(약 $20/월)를 붙이는 것만으로도 감당가능한 동시 접속자수가 꽤 많이 늘어납니다. 그만큼 https 복호화가 비용이 큰 작업이란 거겠죠... let's encrypt 같은걸 따로 구성하지 않고 acm (AWS Certificate Manager) 에서 발급한 인증서를 사용할 수 있단 것도 장점이겠네요
4-2. 대상 그룹이니 시작 템플릿이니 오토스케일링이니... 구성하기 어려울 수도 있습니다. 이럴 땐 Elastic Beanstalk 를 사용하시면 꽤나 많은 작업을 알아서 쓸만하게 구성해서 서버를 띄워줍니다. 개인적으로 이런 류의 서비스들을 별로 좋아하지 않는데,,, 귀찮은 작업을 꽤나 많이 자동으로 해준다는 것... 특히 AWS 인프라에 대한 이해가 부족한 경우에 쓰기 좋다는건 부정할 수 없네요
5. ec2 의 t 타입 인스턴스들은 기본 설정으론 스왑 메모리가 없습니다. 의도하지 않게 시스템 기본 메모리 사용량을 넘어가면 서버가 급격하게 느려지거나, 커널 패닉으로 좀비 상태가 됩니다. 이 상태에선 콘솔에서 강제 종료를 하려해도 5분 이상은 걸리더라구요. 비용을 아끼는 것도 좋지만.... 적당히 서버 사양을 올려주는게 정신 건강에 이롭습니다ㅎ
6. 공인 IP 는 서버를 껐다켜면 바뀝니다. (재부팅으론 바뀌지 않음) Elastic IP 란걸 할당해서 계정에 IP 를 묶어두고 (약 $4/m) 해당 IP 를 서버에 할당시켜두면 서버를 끄고 키더라도 바뀌지 않습니다.
예전엔 서버 실행 중엔 비용이 없었는데,, 탄력적 IP이든 자동 할당 IP이든 올해 2월부턴 비용이 부과되니 이걸 쓴다고 비용이 더 나오진 않습니다.
로드밸런서 같은걸 구성한다면 서버 사양을 변경하거나 교체하여도 IP 를 신경안써도 되지만, 위에 제가 말한거처럼 구성을 하신다면 IP 가 바뀌는 경우가 종종 발생할 수 있습니다.
아무리 토이프로젝트라지만 사용하는 사람이 있을 때 DNS 전파 문제로 서버 접속이 안되면 할 수 있는게 없어져서 답답하니..ㅎ 정말 단일 서버로 운영하신다면 탄력적 IP도 걸어주세요.
7. 다른 리전에 서버를 파버리면 나중에 파악하기가 어렵습니다..ㅎ 까먹고 몇년씩 돈내기 쉬움...
일부 서비스는 글로벌 리전이라거나, 서울 리전에서 지원 안하거나 그러는 경우가 있지만, 여튼 항상 서울 리전이 맞는지 잘 확인해보세요!
1. RI (reserved instance, 예약 인스턴스) 라고 있습니다. 1년 혹은 3년 선결제를 하면 3년, 총액 기준 50% 가까이 할인이 됩니다. 이런걸 잘 활용하시는 것도 좋구요, 단점이라면 기간 끝날때쯤 까먹기 쉽다는건데, 저도 까먹고 있었는데 오랜만에 다시 몇개 사둬야 겠네요. 재밌게도 같은 타입이면 위 아래 다른 사양이라도 분할로 적용해줍니다. (ex, t3 small RI 를 구매했는데 t3 micro 2대만 떠 있어도 RI 사용량으로 계산되어 월 비용 없음)
2. 클라우스 서비스들은 사양을 자유롭게 변경할 수 있단 장점을 위해 기본적인 단가가 조금 비싼 편인데, 사양 변경할 일 없고 비용을 조금이라도 줄이겠다! 하면 vpc (virtual private computing) 서비스로 aws 에서는 Lightsail 이 있습니다.
저는 개인적으로 ec2 와 전반적으로 사용 경험 차이가 커서 비선호하긴 합니다.
3. node 서버의 경우 번들링하지 않고 소스를 그대로 서버에 가지고 가서 npm install 및 실행하는 경우가 많습니다.
작동이야 하겠지만,,, npm 패키지 인스톨이 메모리나 용량 자원이 꽤나 많이 필요해서 t micro 나 small 정도의 인스턴스에선 정상적으로 돌아가지 않을수도 있습니다.
서버도 webpack 등으로 번들링하여 빌드 후, 결과 파일만 서버에서 node 만으로 실행하면 훨씬 가볍게 실행가능 합니다.
4. 서비스 사용량이 좀 많아진다면+https 를 사용하신다면, 앞에 aws 로드밸런서(약 $20/월)를 붙이는 것만으로도 감당가능한 동시 접속자수가 꽤 많이 늘어납니다. 그만큼 https 복호화가 비용이 큰 작업이란 거겠죠... let's encrypt 같은걸 따로 구성하지 않고 acm (AWS Certificate Manager) 에서 발급한 인증서를 사용할 수 있단 것도 장점이겠네요
4-2. 대상 그룹이니 시작 템플릿이니 오토스케일링이니... 구성하기 어려울 수도 있습니다. 이럴 땐 Elastic Beanstalk 를 사용하시면 꽤나 많은 작업을 알아서 쓸만하게 구성해서 서버를 띄워줍니다. 개인적으로 이런 류의 서비스들을 별로 좋아하지 않는데,,, 귀찮은 작업을 꽤나 많이 자동으로 해준다는 것... 특히 AWS 인프라에 대한 이해가 부족한 경우에 쓰기 좋다는건 부정할 수 없네요
5. ec2 의 t 타입 인스턴스들은 기본 설정으론 스왑 메모리가 없습니다. 의도하지 않게 시스템 기본 메모리 사용량을 넘어가면 서버가 급격하게 느려지거나, 커널 패닉으로 좀비 상태가 됩니다. 이 상태에선 콘솔에서 강제 종료를 하려해도 5분 이상은 걸리더라구요. 비용을 아끼는 것도 좋지만.... 적당히 서버 사양을 올려주는게 정신 건강에 이롭습니다ㅎ
6. 공인 IP 는 서버를 껐다켜면 바뀝니다. (재부팅으론 바뀌지 않음) Elastic IP 란걸 할당해서 계정에 IP 를 묶어두고 (약 $4/m) 해당 IP 를 서버에 할당시켜두면 서버를 끄고 키더라도 바뀌지 않습니다.
예전엔 서버 실행 중엔 비용이 없었는데,, 탄력적 IP이든 자동 할당 IP이든 올해 2월부턴 비용이 부과되니 이걸 쓴다고 비용이 더 나오진 않습니다.
로드밸런서 같은걸 구성한다면 서버 사양을 변경하거나 교체하여도 IP 를 신경안써도 되지만, 위에 제가 말한거처럼 구성을 하신다면 IP 가 바뀌는 경우가 종종 발생할 수 있습니다.
아무리 토이프로젝트라지만 사용하는 사람이 있을 때 DNS 전파 문제로 서버 접속이 안되면 할 수 있는게 없어져서 답답하니..ㅎ 정말 단일 서버로 운영하신다면 탄력적 IP도 걸어주세요.
7. 다른 리전에 서버를 파버리면 나중에 파악하기가 어렵습니다..ㅎ 까먹고 몇년씩 돈내기 쉬움...
일부 서비스는 글로벌 리전이라거나, 서울 리전에서 지원 안하거나 그러는 경우가 있지만, 여튼 항상 서울 리전이 맞는지 잘 확인해보세요!
hello님의 댓글
ec2도 그렇고, rds(mysql)도 그렇고 프리티어급으로 쓰시면 1년간은 거의 무료로 사용도 가능합니다.
혹시님의 댓글
정액제 제도가 있습니다. 약정을 맺고 계약하면 비용이 20 30프로 쌉니다.
사용하는 만큼 내면 비쌉니다. 많이..
네트워크부터 구축합니다.(아래의 내용기반으로 구축하면서 감 잡아보세요. 비용은 공짜입니다.)
1.VPC생성, VPC안에는 subnet 들어가야 합니다.그래서 CIDR을 10.0.0.0/16 만드세요.
2.VPC안에 subnet 만듭니다. public subnet, private subnet 테스트용으로 두개씩 생성하세요.
10.0.x.0/24 형식으로 만들면 됩니다.
3.ineternet gateway, nat gateway를 우선 생성합니다.
4.라우팅 테이블 subnet 갯수만큼 만드세요. 4개. 라우팅테이블을 각각 subnet에 attach하세요.
5.그리고 라우팅 테이블을 수정하세요.
6.public subnet에 internet gateway를 붙이세요.(0.0.0.0/0 셋팅후 igw로 지정)
7.priate subnet에 nate gateway를 붙이세요. (0.0.0.0/0 셋팅후 nat로 지정)
8.EC2 4개를 생성해서, 각각의 public subnet 두개, private subet 두개 넣어주세요
9.public subnet에 존재할 EC2는 공인ip 할당하세요.
10.priate subnet에 존재할 EC2는 딱히 할것 없네요.
여기까지 해 보세요. 감 잡으면,
ALB(로드밸런싱)를 생성하고 Public subet 두개를 지정하면 로드밸런싱이 됩니다.
이때 로드밸랜싱에 공인ip가 지정되어 있지 않으면 정상작동 안 합니다.
4년전에 구축 경험을 토대로 정리 해 봤습니다.
감 잡으시고...
이제....aws를 공부하십니다.....