처음 AWS EC2를 사용하기 시작했을 때, 나는 서버를 스핀하고 있다고 생각했다. 그것은 대부분의 튜토리얼이 말한 것입니다. 단순히 "사례를 시작하십시오"그리고 당신은 좋습니다. 그러나 내가 알지 못했던 것은 다음과 같습니다 : EC2는 표면에서 간단하지만 시간, 돈, 정신을 잃을 수있는 많은 숨겨진 세부 사항이 있습니다. EC2를 처음 사용하기 전에 누군가가 나에게 말하고 싶었던 모든 것 - 그래서 내가 저지른 실수를 피할 수 있습니다. 올바른 인스턴스 유형을 선택하는 것은 선택 사항이 아닙니다. 첫 번째 결정은 인스턴스 유형입니다.당신은 같은 이름을 볼 수 있습니다 , , 그리고 그런 겁니다. t2.micro t3.medium m5.large 그때, 나는 가장 저렴한 것을 선택했다 - 자유로운 동물이 맞죠? t2.micro 그러나 내 앱은 계속 붕괴했다. 나는 ‘불안정한’ 인스턴스가 어떻게 작동하는지 이해하지 못했다. : What I learned uses . You earn credits over time and spend them when your app needs more CPU. t2.micro CPU credits 긴 프로세스를 실행하는 경우 (예: 빌드 또는 스크립트) 신속하게 크레딧을 쓸 수 있습니다.If you run a long-running process (like a build or script), you can run out of credits quickly. 당신이 실행되면, 당신의 인스턴스는 매우 느리게됩니다. : What to do instead 그냥 실험하거나 정적 사이트를 호스팅하는 경우, t2.micro는 괜찮습니다. 배경 작업에 더 안정적인 무언가가 필요한 경우 t3 또는 m 시리즈를 사용하십시오. 항상 인스턴스를 실제 작업량과 일치시켜야 합니다.Always match the instance to your actual workload — not the price tag. 보안 그룹은 방화벽입니다 (그리고 그들은 중요합니다) EC2 인스턴스를 시작했을 때 SSH를 사용할 수 없었습니다. 나는 그것이 깨졌다고 생각했다. 그러나 그것은 단지 그 - EC2의 방화벽 버전 - 내 액세스를 차단합니다. security group : What I learned 기본적으로 EC2는 모든 들어오는 트래픽을 차단합니다. 포트는 SSH(포트 22) 또는 HTTP(포트 80)에서도 수동으로 열어야 합니다. 브라우저에서 앱을 방문하려면 포트 80(또는 HTTPS의 경우 443)를 허용해야 합니다. : What to do instead 인스턴스를 설정할 때 IP에서 SSH를 허용하는 규칙을 추가합니다.When setting your instance, add a rule to allow SSH from your IP. 공용 웹 사이트의 경우 HTTP 및 HTTPS를 허용합니다. 세상에 모든 항구를 열지 마세요.그것은 문제를 요구합니다. EC2는 단지 빈 서버일 뿐입니다. 내가 내 인스턴스에 들어 왔을 때, I typed 내 노드 앱을 실행합니다. node 명령을 찾지 못했습니다.” I tried 그것도 작동하지 않았다. git pull 그리고 그것은 나를 쳤다 - EC2는 단지 a 아무것도 사전 설치되지 않습니다. bare OS : What I learned 당신은 모든 것을 설치해야합니다 : 노드, 파이썬, Git, Nginx, 무엇이든. GUI가 없고 단지 터미널이 있습니다. 그것은 기본적으로 클라우드에서 컴퓨터를 임대하는 것과 같습니다. : What to do instead 시작 스크립트를 사용하여 초기 설치를 자동화합니다. 또는 모든 것이 원하는 방식으로 구성되면 자신의 사용자 지정 AMI를 만듭니다. 자주 배포하는 경우 Elastic Beanstalk 또는 AWS AMI 이미지를 사전 설치된 스택과 함께 사용하는 것을 고려하십시오. EC2는 귀하가 알려주지 않는 한 귀하의 데이터를 저장하지 않습니다. 한 번 EC2 인스턴스를 다시 시작했고 모든 앱 파일이 사라졌습니다. 갔어 나는 왜 사용했는지 -Start/Stop 에서 깨끗하게 닦아줍니다 ephemeral storage : What I learned EC2에는 인스턴스 스토어(Temporary) 및 EBS(Persistent) 두 가지 주요 스토리지 유형이 있습니다. EBS 볼륨만 닫은 후에 데이터를 유지합니다. 변경되지 않는 한 일부 AMIs는 기본적으로 인스턴스 스토어로 설정됩니다.Some AMIs default to instance store unless changed. : What to do instead 항상 중요한 일에 EBS를 사용하십시오. 규칙적으로 볼륨의 스냅샷을 찍으십시오. 더 많은 내구성이 필요한 경우 대신 S3에 파일을 저장하는 것을 고려하십시오. Public IPs Can Change (Elastic IPs를 사용하지 않는 한) 나는 좋은 작은 앱을 만들고 EC2에 배포하고 IP를 친구들에게 보냈습니다. 며칠 후, 그들은 그것이 작동하지 않는다고 말했다. IP가 바뀌었다는 것을 알게 되었습니다. : What I learned EC2는 인스턴스를 멈추고 시작할 때마다 새 공용 IP를 할당합니다. 안정적인 IP를 원한다면 Elastic IP를 사용해야 합니다. : What to do instead EC2 > Elastic IPs로 이동하여 하나를 할당합니다. 그것을 당신의 인스턴스와 연결하십시오. DNS를 업데이트하거나 프론트 엔드 코드에서 이 IP를 사용하십시오. 참고: 사용되지 않은 Elastic IP에 대해 요금이 부과됩니다.So release them when not needed. SSH 키 쌍은 모든 것입니다. 단순히 비밀번호로 로그인할 수는 없습니다. 인스턴스를 시작할 때, AWS는 - 그 파일을 key pair .pem 나는 그것을 다시 필요로하지 않을 것이라고 생각하면서 내 것을 삭제했다. 큰 실수 : What I learned .pem 파일이 없으면 SSH를 인스턴스에 넣을 수 없습니다. 그것을 잃으면 새 인스턴스를 만들거나 스냅샷 해결을 사용해야 합니다.If you lose it, you will need to create a new instance or use a snapshot workaround. : What to do instead 열쇠를 안전하게 보관하십시오. 인스턴스가 100 % 완료되지 않는 한 절대 삭제하지 마십시오. 암호 관리자 또는 보안 백업 도구를 사용하십시오. 당신은 Auto Shutdown을 설정해야합니다 또는 당신은 잊을 것입니다. 한 번 EC2 인스턴스를 한 달 동안 실행하도록 남겼습니다. 그것도 깨닫지 못했다. 법안이 오기 전까지는 : What I learned EC2는 두 번째로 충전하지만 인스턴스가 실행되는 동안에만 충전합니다. 무언가가 실행 중인 경우 경고 또는 상기시키는 것이 없습니다. : What to do instead 사용되지 않는 인스턴스를 중지하기 위해 일정 메모리를 설정합니다.Set a calendar reminder to stop unused instances. AWS 예산을 사용하여 지출에 대한 알림을 받으십시오. 또한 Lambda 함수를 설정하여 실시간 EC2 인스턴스를 자동으로 중지할 수 있습니다. EC2는 강력하지만 항상 최고의 선택은 아닙니다. 당신이 단지 정적 웹 사이트를 호스팅하려고한다면, EC2는 overkill입니다. Linux를 관리하고 싶지 않은 경우도 마찬가지입니다. : What I learned EC2는 당신에게 완전한 컨트롤을 제공합니다 - 즉 완전한 책임을 의미합니다. For simpler use cases, AWS offers easier tools: for frontend apps Amplify for managed backends Elastic Beanstalk for WordPress or quick server setup Lightsail for serverless tasks Lambda : What to do instead 당신이 실제로 필요로하는 것에 대해 생각해보십시오. 당신이 무언가를 테스트하는 경우에, EC2는 괜찮습니다. 그러나 그것이 합리적이지 않는 한 인프라를 관리하도록 강요하지 마십시오. 최종 생각 EC2는 강력한 도구이지만 대부분의 AWS 서비스와 마찬가지로 당신이 무엇을 하고 있는지 알고 있다고 가정합니다. 문서화는 항상 일을 간단하게 만드는 것은 아닙니다. 그리고 하나의 작은 설정은 몇 시간의 디버깅이나 예기치 않은 비용을 초래할 수 있습니다. 그러나 기본 사항 - 인스턴스, IP, 스토리지, 방화벽 -을 이해하면 EC2가 의미를 갖기 시작합니다. 믿을 수 있는 도구가 될 수 있다. 단지 기억하십시오 : EC2를 실제 서버처럼 취급하십시오. 그리고 약간의 준비는 나중에 많은 고통을 절약 할 것입니다.