본문 바로가기

서버 개발 (AWS, Linux, DevOps)31

AWS : 정적 사이트 배포 하는 4가지 방법 (feat: cloudfront / nginx /amplify / netlify) 웹사이트를 배포하는 방법에는 여러 가지 방법들이 있는 것 같습니다. 저도 회사를 다니면서 다양한 방법들로 웹사이트를 배포해 보았는데요, 오늘은 AWS, 및 여러 도구들을 활용하여 정적사이트를 배포하는 방법들과 각각의 장단점에 대해서 한번 정리해 보았습니다. 목차 AWS - EC2 + WebServer(Nginx) 를 활용한 배포 AWS - CloudFront + S3를 활용한 배포 AWS - Amplify를 활용한 배포 Netlify를 활용한 배포 위에서 설명드린 배포방법 4가지에 대해서 개념 및 장단점에 대해 설명드리겠습니다. EC2 + WebServer (Nginx)를 활용한 배포 ✏️ AWS EC2 인스턴스 위에 Nginx 웹서버를 이용하여 서버 호스팅을 진행하는 방법입니다. EC2는 하나의 작은 .. 2023. 4. 25.
AWS : EBS란? EBS 요금 분석 서론 AWS 웹 서비스를 구축하다 보면, EBS항목으로 요금이 청구될 때가 있습니다. 보통 EBS는 EC2 인스턴스를 생성할 때 자동으로 생성이 되는 저장소라고만 알고 있었는데요, 오늘은 EBS가 무엇인지 알아보고 요금은 어떻게 정산되는지 한번 정리를 해보도록 하겠습니다. EBS란? EBS란 Elastic Block Store의 약자로 일종의 하드디스크라고 생각하시면 됩니다. 보통 EC2와 비교해서 생각하면 EC2는 메모리, 그래픽카드 등 하드 디스크를 제외한 컴퓨터의 모든 부분이라고 생각하면 되며, EBS는 컴퓨터의 하드디스크라고 생각하면 됩니다. EBS의 약자에서 Block Store라는 의미를 이해하시려면, Object Storage와 비교하시면 이해가 쉽습니다. S3와 같은 Object Stora.. 2023. 3. 3.
Jeknins : pipeline을 이용하여 npm 빌드 후 S3 업로드 자동화 (+ cloud front 캐시 무효화) 서론 보통 React 앱을 빌드 후 배포할 때 S3 + Cloud front를 통해 배포를 하곤 했는데요, 이렇게 하다 보니 항상 빌드 후에 Drag-Drop으로 S3 버킷에 업로드한 뒤 Cloud Front 캐시 동기화를 눌러줘야 하는 번거로움이 있었습니다. Jenkins를 이용하여 이를 자동화하는 방법이 있어서 회사에서는 Jenkins를 적용하여 자동화를 구축하였는데요, 이에 대해 간단하게 알아보도록 하겠습니다. Jenkins pipeline을 이용한 S3 및 CloudFront 자동화 순서 Jenkins 파이프라인 자동화를 로직은 다음과 같습니다. 1. github 및 AWS 관련 Credential 을 등록한다. (+AWS Credential Plugin 설치) 2. Jenkins 파이프라인을 만.. 2022. 11. 28.
AWS : Lambda 요청시 413 payload 에러 해결 최근에 Lambda를 통해 개발을 하였는데, 이를 개발할 때 여러 문제를 겪었는데요, 앞으로 Lambda를 실제로 사용하면서 사용하면서 발생하는 여러 가지 에러나 문제에 대해서 해결방법에 대해 포스팅할 예정입니다. 이번에 다뤄볼 주제는 AWS Lambda의 413 payload 에러입니다. Lambda에 대해서 좀더 알고 싶으시면 아래 글을 참고해주세요. AWS Lambda 기초 개념 및 간단 사용 413 payload 에러의 원인 413 payload에러는 보통 nginx나 nodejs와 같은 서버에서 request의 max-size를 선언한 뒤, 해당 크기를 초과하는 request가 요청으로 들어올 때 발생합니다. { "message": "Request Too Long" } Lambda의 reques.. 2022. 9. 8.
Jenkins : apt-get install로 설치한 jenkins의 버전 업데이트하기 개요 Ubuntu에서 agt-get install로 설치한 jenkins를 최신버전으로 업데이트 하는 방법에 대해 알아보겠습니다. 해결법 1. 기존의 jenkins.war 파일 위치 찾기 먼저 jenkins.war파일의 위치를 찾습니다. apt-get으로 설치되어있을 경우 아래 경로에 jenkins.war파일이 위치해 있습니다. /usr/share/jenkins 2. jenkins 서비스 일시 정지하기 jenkins 서비스를 일시정지시킵니다. sudo service jenkins stop 3. 기존 jenkins.war 파일 백업하기 새로운 jenkins.war 파일로 업데이트 하기전에 안전을 위해 기존 jenkins.war 파일을 백업해줍니다. sudo mv jenkins.war jenkins.war... 2022. 8. 30.
AWS : 계정들간의 Route53 도메인 공유하기 보통 도메인을 구매하게 되면 호스팅 사이트에서 도메인을 구매하여 사용하게 됩니다. 이때 Route53의 네임서버를 호스팅 사이트에 네임서버로 교체를 해줘야 해당 도메인을 사용할 수가 있습니다. 하지만 AWS 계정이 2개 이상인 경우에는 어떻게 2개의 계정을 Route53과 연결시킬지 고민이 필요합니다. 왜냐하면 계정 하나에 대해 Route53의 네임서버를 등록하게 되면, 다른 계정에서는 해당 도메인을 이용할 수 없기 때문입니다. 이에 대해 어떻게 문제를 해결할 수 있을지 한번 정리해보겠습니다. 여러 AWS 계정에서 Route53 등록하기 문제를 해결하는 방법은 다음과 같습니다. AWS 계정에 도메인을 등록합니다. 이를 AWS 메인 계정이라고 하겠습니다. (ex: example.com) 나머지 AWS 계정.. 2022. 8. 10.
리눅스 : Swap 메모리란? EC2를 이용하여 리눅스 Shell에서 개발을 진행하던 중에, 서버의 용량을 확인하다가 Swap 메모리라는 공간을 확인하였습니다. Swap 메모리는 어디서 많이 들어봤는데, 정확한 개념을 알고 싶고, 리눅스 내에서는 어떠한 역할을 하는지 알고 싶어서 한번 정리해보게 되었습니다. Swap 메모리란? 스왑 메모리란, 실제 메모리 Ram이 가득 찼지만 더 많은 메모리가 필요할때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간을 의미합니다. 실제 디스크 공간을 메모리처럼 사용하는 개념이기 때문에 가상 메모리라고 할 수 있습니다. 속도면에서는 실제 메모리가 아닌 하드디스크를 이용하는 것이기 때문에 메모리 속도면에서는 현저히 떨어진다고 할 수 있습니다. 리눅스에서의 Swap 메모리 리눅스에서의 Swap.. 2022. 5. 3.
AWS : EC2 / S3 / CloudFront 트래픽 요금 분석 CloudFront에 대해 알아보다가 비용에 관련해서 궁금증이 생겼습니다. EC2로 발생하는 Traffic 요금과 S3로 발생하는 Traffic 요금, 그리고 CloudFront로 발생하는 Traffic요금 중 어떤 방식이 가장 저렴한지 조사를 해보았습니다. EC2란? EC2는 AWS에서 제공하는 클라우드 컴퓨팅 시스템입니다. 이 서비스를 통해서 아마존이 각 세계에 구축한 데이터 센터의 서버용 컴퓨터들의 자원을 원격으로 사용할 수 있습니다. 쉽게 말해, 아마존으로 부터 한 대의 컴퓨터를 임대하는 것입니다. 용량을 늘이거나 줄이기에 쉽고, 사용한 만큼만 지불합니다. 보안 및 네트워크 구성, 스토리지 관리가 효과적입니다. S3란? Amazon S3는 Amazon Simple Storage Service의 약.. 2021. 12. 13.
AWS : A 레코드와 Cname의 차이 Route53을 쓰던 중에 A레코드와 CName을 사용해서 도메인과 ELB와 CloudFront와 같은 서비스를 연결할 때가 있었습니다. 이럴 때 그냥 무심코 구글링을 해서 도메인을 A레코드와 Cname으로 연동하여 쓰고 있었는데 정확하게 둘이 어떻게 다른지 잘 모르고 쓰고 있었던 것 같아서 간단하게 한번 정리해두어야겠다고 생각을 했습니다. A 레코드란? 도메인 주소와 서버의 IP 주소를 직접 매핑 시키는 방법을 말합니다. 단순하게 도메인과 IP를 연결시키는 방식이기 때문에 어렵지 않게 이해됩니다. 즉 3.155.24.33 이라는 IP가 있는데 해당 IP를 json-test.com과 같은 도메인으로 연결시킬 수 있습니다. 이럴 때 사용하는 방식이 A 레코드입니다. Cname Cname은 Canonical.. 2021. 12. 8.
리눅스 : find / du 명령어를 이용하여 큰 용량의 파일 찾기 (용량 부족 시) 리눅스 용량 문제 리눅스를 운용하다 보면 가끔 디스크 공간이 부족하여 DISK I/O (디스크 복사 및 출력)에서 에러가 발생할 때가 많습니다. 저도 EC2에서 적은 용량의 스토리지만 사용하여 Ubuntu를 운용하다가 디스크 공간이 부족하여 파일 복사가 되지 않거나 디렉터리 이동이 되지 않는 문제가 발생했던 적이 종종 있습니다. 이럴 때 가장 좋은 방법은 스토리지의 크기을 늘려주는 방법입니다. EC2를 쓰고 있다면 EC2에 연결된 EBS의 크기를 클릭 몇 번으로 확장할 수가 있지만, 물리 HDD를 쓰고 있을 때는 용량 확장이 까다롭습니다. 또 클라우드를 쓸 때는 비용 절감 문제로 디스크 공간 확보가 어려울 수가 있습니다. 디스크 공간을 확장하기전에 어떤 파일이 용량을 가장 크게 차지하는지, 또는 불필요하.. 2021. 10. 18.