블로그 릴레이 - Amazon EC2 Linux OS에 접속할 수 있는 다양한 방법에 대해 정리
안녕하세요! AWS 사업 본부의 김재욱입니다.
본 블로그는 당사의 한국어 블로그 릴레이의 일곱 번째 블로그입니다.
이번 블로그의 주제는「Amazon EC2 Linux OS에 접속할 수 있는 다양한 방법에 대해 정리」입니다.
들어가기에 앞서
AWS를 시작하는 많은 분들이 가장 처음 접하는 서비스는 Amazon EC2일 것입니다. 하지만, 막상 Amazon EC2 서비스를 이용하여 서버를 구축하였다 하더라도 어떤 식으로 접근해야 하는지 접근 방법을 모를 수 있습니다. 그 외, 각 사용자마다 서버에 접근하는 환경이 다르기 때문에 어떠한 접근 방식이 베스트인지 고민할 것으로 생각합니다. 이번 블로그에서는 Amazon EC2 Linux OS에 접속할 수 있는 다양한 방법에 대해 살펴보도록 합시다.
EC2 Instance Connect 사용
구축한 EC2 인스턴스에 접속할 때 가장 간단하게 사용할 수 있는 방법은 EC2 Instance Connect를 사용하는 것입니다.
사용자는 관리 콘솔을 이용하여 클릭만으로 간단하게 EC2 인스턴스에 접속할 수 있습니다. 하지만, EC2 Instance Connect를 이용하기에 앞서 몇 가지 조건이 존재합니다.
- 보안 그룹에 AWS IP 주소 범위를 설정
- AWS IP 주소 범위는 아래 링크를 통해 확인할 수 있습니다. 각 리전에 맞추어 보안 그룹 인바운드 규칙에 SSH 접근을 허용하면 됩니다.
- 퍼블릭 IP를 가지고 있는 EC2 인스턴스일 것
- 프라이빗 IP를 이용하여 접속하고자 하는 경우 AWS Direct Connect 혹은 VPN 구성이 필요
- 접근하고자 하는 사용자는 ec2-instance-connect:SendSSHPublicKey, ec2:DescribeInstances 권한을 가지고 있을 것
- 혹은 모든 권한을 가지고 있는 루트 사용자일 것
IAM 권한에 대해서는 아래 공식 문서를 참고해 주세요.
기본적으로 퍼블릭 IP를 가지고 있는 EC2 인스턴스에 유효한 접속 방식이라고 생각하면 됩니다. 프라이빗 IP를 통한 접속 방법도 존재하지만, AWS Direct Connect 혹은 VPN 구성이 필요하다는 점과 불필요한 보안 그룹 규칙의 추가가 있기 때문에 프라이빗한 환경의 EC2 인스턴스에서는 잘 사용되지 않습니다.
SSH 클라이언트를 사용
다음 살펴볼 접속 방법은 SSH 클라이언트를 사용하는 접속 방법입니다.
이번에는 직접 EC2 인스턴스의 키 페어를 사용하여 접속을 시도하며, 전제 조건은 EC2 인스턴스가 외부에서 접속할 수 있도록 인터넷에 공개 되어있어야 합니다. MacOS의 경우 터미널을 이용하여 SSH 명령어로 접속할 수 있으며, Windows의 경우 테라텀과 같은 클라이언트를 사용하여 접속할 수 있습니다.
이러한 방법은 어디까지나 인터넷을 통하여 접근하는 방법이기 때문에 퍼블릭 IP를 가지고 있는 EC2 인스턴스를 대상으로 접속을 시도합니다.
EC2 Instance Connect EndPoint 사용
그렇다면 프라이빗 IP를 가지고 있는 EC2 인스턴스에는 어떻게 접속을 시도할까요? 이번에 알아볼 접속 방법은 EC2 Instance Connect EndPoint를 사용한 접속 방법입니다.
EC2 Instance Connect EndPoint를 이용하면 외부와 차단된 프라이빗한 환경의 EC2 인스턴스에 접속할 수 있습니다. 콘솔 환경을 통해 버튼 클릭만으로도 간단하게 접속할 수 있으며, 별도의 NAT Gateway 생성은 불필요합니다. 또한, 사용에 대한 추가 요금은 없으며 표준 데이터 전송에 대한 요금만 적용됩니다.
NAT Gateway를 사용하지 않아도 된다는 점과, 별도의 요금이 발생하지 않는다는 점에서 요금면에서는 굉장한 메리트를 가지고 있습니다. 또한, 최소 15분에서 최대 36시간의 만료 시간이 있기 때문에 이 만료 시간이 지나면 다시 재접속을 시도해야 합니다.
EC2 Instance Connect EndPoint를 통한 접속 방법은 아래 블로그를 참고해 주세요.
Session Manager 사용
다음으로 살펴볼 접속 방법은 Session Manager입니다.
Session Manager를 사용하기 위해서는 몇 가지 조건이 존재합니다.
- EC2 인스턴스가 외부와 통신할 수 있는 환경일 것
- 이를 위해 NAT Gateway 혹은 엔드포인트를 생성할 필요가 있습니다.
- Session Manager를 사용하기 위해 EC2 인스턴스에 권한을 할당할 것
- AmazonSSMManagedInstanceCore 권한을 할당해야 합니다.
Session Manager 사용에 앞서 별도의 보안 그룹 설정은 불필요합니다. 이러한 Session Manager는 콘솔 환경에서 접속이 가능하며, AWS CLI를 이용하여 접속하는 것도 가능합니다.
로컬 환경에서 AWS CLI를 이용하여 접속하는 방법은 아래 블로그를 참고해 주세요.
또한, Session Manager Port forwarding을 이용하여 외부에서 접근이 불가능한 프라이빗 환경의 RDS로도 접속할 수도 있습니다. 접속 방법에 대해서는 아래 블로그를 참고해 주세요.
상기 4가지 방법을 알고 있다면 EC2 인스턴스가 어떤 환경에 구축되었든지 접근할 수 있으며, Session Manager Port forwarding과 같은 방법을 사용하여 EC2 인스턴스를 경유하여 다른 서비스로 접근하는 등 다양한 방식으로 활용할 수도 있습니다.
이외에도 proxyCommand를 활용하여 SSH 접속을 조금 더 간단하게 할 수 있는 방법이 있으므로, 자세한 내용은 아래 블로그를 참고해 주세요.
마무리
이번 블로그에서는 Amazon EC2 Linux OS에 접속할 수 있는 다양한 방법에 대해 정리해 보았습니다. EC2 인스턴스에 대한 접속 방법은 다양하며, 구축한 EC2 인스턴스의 운영체제(OS)별로 혹은 접속하고자 하는 사용자의 OS에 따라 접속 방법이 달라질 수 있습니다. 따라서, 내 환경에 맞는 접속 방법을 선택하는 것이 중요합니다. 이번 블로그에서는 Amazon EC2 Linux OS에 대해 다루어 보았으며, 접속 방법 때문에 고민하고 계신 분들에게 많은 도움이 되었으면 합니다.
이상, 한국어 블로그 릴레이의 첫 번째 블로그「Amazon EC2 Linux OS에 접속할 수 있는 다양한 방법에 대해 정리」편이었습니다. 다음 여덟 번째 블로그 릴레이는 8월 셋째 주에 공개됩니다.
끝까지 읽어주셔서 감사합니다! 이상, AWS 사업 본부의 김재욱이었습니다.