#2 AWS 환경에 Spinnaker 설치하기 - 설치(1)
June/AWS

#2 AWS 환경에 Spinnaker 설치하기 - 설치(1)

Key-pair 생성


먼저 EC2 > Network & Security > Key pairs 로 향한다.
Create Key로 해당 서버 접속에 사용할 Key를 만들어준다.
이름은 SpinnakerKey 정도로 마음대로 한다.

그러면 자동으로 pem 파일을 다운 받을 수 있도록 되는데, 이는 절대 지우지 말자
재발급이 안될 뿐더러 중요하다.(메모장, 노트패드 등으로만 열림)

Ubuntu 설치

두가지만 기억해주면 된다.
Ubuntu 14.04와 M4.xlarge
우선 스핀에이커가 정상 동작하는 버전은 우분투 환경의 14.04이고,
메모리는 M4.xlarge 정도는 되어줘야 원활하게 돌릴 수 있다고 한다.(직접 증명하진 못했다.)


내부 설정은 그냥 기본을 따라도 된다. 나중에 추가적으로 해줄 것이다.
다만 혹시 모르니
Auto assign Public IP 만 Enable 처리해주자

그리고 마지막 Launch에서는 앞서 '3'항목서 만들어 준 Key-Pair를 등록한다.
연결확인 : EC2에 직접 Public IP로 연결을 시도하거나, SSH 로 연결할 수 있다.
이는 EC2 > Instance 의 Connect 부분에서 확인 가능하다.


접속성공



Halyard 설치
Halyard를 설치하고 Halyard의 기능으로 Spinnaker를 설치할 것이기 때문에, 잘 설치해주어야 한다.
이왕이면 전부 관리자 권한으로 실행하자.
나중에 Halyard는 관리자 권한으로만 실행되고 많은 세팅이 관리자 권한에 있기 때문에 ubuntu로 접근하게 될 경우, 나중에 설정 문제가 발생한다.

curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/debian/InstallHalyard.sh
sudo bash InstallHalyard.sh

Would you like to configure halyard to use bash auto-completion? [default=Y]: Y 선택해준다.

설치 업데이트 및 확인>

. ~/.bashrcsudo update-halyard
hal -v


(설치가 잘 되고 있음... )



VPC와 Subnet 구축하기

이제 Spinnaker를 위한 전용 수영장을 구성하여 준다.
VPC와 Subnet을 만드는 것인데, 앞서 만든 EC2에 적용해줄 것이다.
(물론 미리 구성된 VPC와 Subnet이 있다면 적용해도 상관없다.)

VPC > VPC 마법사 클릭

내부구성


완성!


IAM EC2 Role 생성

    IAM은 접근 권한을 주기 위함이다.
    IAM은 크게 서버에 직접 줄 수 있는 Role과 사용자 계정에 부여할 수 있는 Users 두개로 나뉠 수 있는데,
    각각의 용도를 살펴보면 만일 모든 작업이 한 서버 내에서만 이뤄진다면 User는 필요 없다. 서버만 Role을 지니고 있으면 되지만
    서버 외의 작업을 연동하기 위해서는 User에 자격증명을 얹히고 어디서든 자유롭게 해당 계정으로 왔다갔다 하는 것이 좋다.

    1. BaseIAMRole 생성
      IAM > Roles > Create Role >  EC2 > BaseIAMRole 입력 > 끝




    2. SpinnakerAssumeRolePolicy 생성
      IAM > Policies > Create Policy > Create your Own Policy 
      에 들어가서 아래의 Document를 입력하여 준다.
      ※ 단, 복사 붙여넣기를 하면 안되고, 안에 ${MANAGING_ACCOUNT_ID}는 직접 찾아서 입력해줘야 한다. 
      해당 ID는 IAM Dashboard에서 https://~~~~.signin.aws   안에 물결에 해당하는 내용으로 숫자 12자리 혹은 사용자가 등록한 아이디이다.

      {
          "Version": "2019-02-26",
          "Statement": [{
              "Action": "sts:AssumeRole",
              "Resource": [
                  "arn:aws:iam::${MANAGING_ACCOUNT_ID}:role/spinnakerManaged",
                  "arn:aws:iam::${MANAGED_ACCOUNT_ID}:role/spinnakerManaged"
              ],
              "Effect": "Allow"
          }]
      }



    3. SpinnakerAuthRole 생성(Spinnaker가 Ec2 내부 로컬에서만 동작하게 할 경우)
      위와 똑같이 create role을 해 준다.
      Rolename : SpinnakerAuthRole
      Permission : PowerUserAccess
      Policy : SpinnakerAssumeRolePolicy




    4. User 추가 및 access key / secret pair 생성(스핀에이커가 로컬 외에서도 동작할 경우)
      IAM > Users > Add User



    5. Next > Attach Existing Policies Directly > PowerUserAccess && SpinnakerAssumeRolePolicy 추가

      이 때 그냥 넘기지 말고 반드시 Download .csv를 하여야 한다. 이 창을 넘어가면 Secret access key를 얻을 수 없다.

    6. 마무리
      만일 c 방식(로컬운영)으로 선택하였다면,  EC2 > 해당 Ec2 클릭 > Settings에서 만들어준 IAM Role을 지정해주면 된다.
      만일 d 방식(로컬 외 운영)으로 선택하였다면, 해당 계정을 EC2 내부에서 등록해주면 된다.
      본인은 d 방식으로 설치할 거기 때문에 이제 그 이후로 이어간다.