Today Keys : ECS, Anywhere, register, hybrid, cluster, aws, 하이브리드, 클라우드, 등록
이번 포스팅은 AWS ECS Anywhere를 사용하기 위한 온프레미스의 서버를 ECS Anywhere Cluster에 등록을 해보는 예제입니다. ECS Anywhere를 이용해서 어느 환경에서나 AWS ECS를 사용할 수 있도록 할 수 있습니다.
ECS Anywhere를 사용하기 위해서 먼저 ECS Cluster를 생성합니다.
Cluster 생성을 위해서 ECS Clutser 메뉴에서 'Create Cluster'를 선택합니다.
Cluster 생성의 첫 단계로 어떤 Cluster template를 선택할지 결정합니다.
ECS Anywhere는 AWS의 인스턴스가 아닌 온프레미스의 서버나 가상 머신과 같은 외부 인스턴스를 사용하는 것이기 때문에 AWS Fargate나 External Instance capacity를 위해서 사용하는 'Networking only' template을 선택합니다.
Cluster 생성의 두 번째 단계로 Cluster 설정을 합니다.
ECS Anywhere Cluster 생성을 위한 설정에는 특별한 것이 없습니다.
ECS Anywhere가 외부 인스턴스를 사용하기 때문에 AWS VPC를 만들지 않기 때문입니다.
Cluster 이름을 입력만 입력하고 'Create'를 클릭해서 Cluster를 바로 생성합니다.
※ 여기에서는 CloudWatch는 추가로 활성화 하지 않았습니다.
아래와 같이 정상적으로 ECS Cluster가 생성된 것을 볼 수 있습니다.
생성된 Cluster 정보를 아래와 같이 확인할 수 있습니다.
현재 생성된 Cluster는 별도의 인스턴스가 등록된 상태가 아니기 때문에 ECS Instance를 선택하면,
현재 등록된 인스턴스가 아직 아무 것도 없는 것을 확인 할 수 있습니다.
이제 ECS Anywhere를 위한 외부 인스턴스 등록을 해야 합니다.
먼저 인스턴스 등록 전에, 등록에 필요한 IAM Role을 생성하겠습니다.
ECS Anywhere에서 사용할 외부 인스턴스는 클러스터에 등록 시에 AWS API와 통신하기 위해 IAM Role이 필요합니다.
IAM Role에서 Role 생성 시에 trusted entity 타입을 AWS service-System Manager로 선택합니다.
System Manger를 선택하고 'Next:Permission'을 클릭합니다.
IAM Role에 ECS Anywhere 외부 인스턴스 등록을 위해서는 아래의 2개 정책을 추가합니다.
AmazonSSMManagedInstanceCore
AmazonEC2ContainerServiceforEC2Role
먼저 AmazonSSMManagedInstanceCore를 Filter policies에 입력하여 검색된 정책을 체크합니다.
다음으로 Filter policies에 AmazonEC2ContainerServiceforEC2Role을 입력하여 검색된 정책을 체크합니다.
2개의 정책을 체크하고 다음으로 넘어가서, tag 설정을 합니다.
여기에서는 별도의 tag를 추가하지는 않습니다.
마지막으로 Role name을 입력합니다.
여기에서는 'ZIGI-ECSAnywhereRole'로 입력했습니다.
생성된 IAM Role을 선택하면 다음과 같이 정상적으로 생성된 Role을 확인 할 수 있습니다.
이 Role을 이용해서 ECS Anywhere 외부 인스턴스를 등록하는 데 사용합니다.
다시 처음에 생성한 ECS Anywhere를 위해서 만든 ECS Cluster를 선택합니다.
ECS Instances 탭에서 외부 인스턴스 등록을 위해서, 'Register External Instances'를 클릭합니다.
ECS Anywhere에서 외부 인스턴스 등록을 위한 첫 번째 단계에서는
Activation Key duration과 Number of instances, Instance role을 선택합니다.
Activation Key duration는 외부 인스턴스 등록에 사용하는 인증의 유효기간입니다.
설정한 기간 이내에만 해당 키를 이용해서 외부 인스턴스 등록이 가능합니다.
여기에서는 5일로 설정합니다.
Number of instances는 외부 인스턴스로 등록할 인스턴스의 숫자입니다.
여기에서는 1대만 등록하는 것으로 설정합니다.
Instance role은 외부 인스턴스를 등록하기 위한 IAM Role이면 방금 전에 생성한 ZIGI-ECSAnywhereRole을 사용합니다.
ECS Anywhere에서 외부 인스턴스 등록을 위한 첫 번째 단계를 마치면 두 번째 단계에서는
외부 인스턴스를 손쉽게 등록할 수 있도록 외부 인스턴스에서 실행할 등록 명령이 표시됩니다.
이 명령을 그대로 복사해서 외부 인스턴스에서 실행하면 ECS Anywhere에서 사용할 인스턴스 등록이 됩니다.
이 명령에는 ECS Anywhere 등록을 위한 스크립트를 다운받아서 수행하도록 되어 있으며,
해당 스크립트 수행 시 외부 인스턴스 등록을 위한 System Manager의 Hybrid Activation의 ID와 Key 값을 포함합니다.
실제 System Manager의 Hybrid Activation을 보면, 외부 인스턴스 등록을 위한 명령에 포함된 ID 값이 있는 것을
다음과 같이 확인 할 수 있습니다.
이제 온프레미스의 서버나 가상 머신에서 ECS Anywhere 외부 인스턴스 등록을 위해서 복사해둔 명령을 입력합니다.
전체 구성을 위한 스크립트가 모두 성공적으로 수행되고 나면, 마지막에 다음과 같은 메시지가 출력됩니다.
이제 다시 ECS Cluster에서 보면, 아래와 같이 외부 인스턴스가 등록된 것을 볼 수 있습니다.
이렇게 등록된 외부 인스턴스는 ECS Instance에서 'mi-OOO'로 표기 됩니다.
여기까지 ECS Anywhere를 위한 외부 인스턴스 등록이 완료 되었습니다.
추후에 ECS Anywhere에 대한 내용과 등록된 인스턴스를 이용하여 서비스를 올리는 예제에 대한 포스팅도 진행 될 예정입니다.