Terraform : 1. ssh-key pair & public key upload
드디어 terraform 포스팅을 시작합니다.
총20강이며 목표는 wordpress와 rds 연결까지 입니다.
당연히 완전자동화로 구현을 해야합니다.
해서 부제로 20단계로 따라하는 Terraform 으로 명명했습니다.
아마도 이 포스팅이 완료되면 여기저기서 terraform 강의가 생겨날 듯 합니다.
1. ssh key pair 생성
1.1. ssh는 공개키와 개인키를 생성한 후 공개키는 접속 대상 서버에 개인키는 접속자가 보유하고 있어야 합니다.
1..2. 따라서 첫번째 작업은 이 key pair를 생성해야 합니다.
1.3. 다행이 Windows 10 이후 부터는 openssh가 내장이 되어 있기 때문에 Windows 환경에서도 puttygen 없이도 key pair 생성이 가능합니다.
1.4. # ssh-keygen 으로 단순하게도 생성이 가능하지만 password 없이 원하는 이름으로 만들려고 합니다.
# ssh-keygen -m PEM -f .ssh\sdkim.key -q -N ""
-m PEM 은 형식을 지정합니다. aws에서는 PEM 형식을 권고합니다.
-f 저장위치를 지정하는 옵션입니다. 물론 이름도 생성가능 합니다.
-N 옵션을 사용해서 password 입력 없이 key pair를 만들어 냅니다. 차후 이 부분은 ansible에서도 사용합니다.
1.5. key pair 생성 후 dir 명령어를 이용하여 파일 확인.
2. notepad를 이용하여 생성한 private.key 확인
3. public key 확인 및
4. aws cli version 2 다운로드 및 설치
4.1. 다운로드 링크
https://awscli.amazonaws.com/AWSCLIV2.msi
4.2. 일반적인 방식으로 설치 후 windows cli 재시작
5. cli에서 사용할 access key 생성
5.1. IAM에서 사용자 계정 생성 (admin) 후 관리자 권한 부여
5.2. 사용자의 보안 자격 증명 탭을 클릭 후 액세스 키 만들기 선택
5.3. 생성한 access key 파일을 csv 형태로 다운로드 하여 보관
6. windows cli 에서 # aws configure 입력
Access Key 및 Secret Access key 값 입력
리전과 output format은 서울 리전과 json 형식으로
7. 생성한 key pair 중 public key 업로드
# aws ec2 import-key-pair --key-name "sdkim.key" --public-key-material fileb://.ssh/sdkim.key.pub
--key-name : aws console에 나타나는 이름
8. upload한 키 확인
9. public key 값 직접 붙여넣기
10. public key 붙여넣기
11. public key 확인
12. terraform code로 upload
아래처럼 리소스 블록에 직접 public key를 hard coding 하는 것보다는
위쪽의 파일 형태로 업로드 할 것을 권장합니다.
당연히 보안 때문입니다.
terraform 디렉토리 별로 실행됩니다.
기본적으로 디렉토리 안의 모든 tf 파일이 실행됩니다.
terraform init -> terraform plan -> terraform -> terraform apply -> terraform destroy
순서 기억해 두시기 바랍니다.
오늘 총 세가지 1, 9, 12번의 3가지 방법으로 key pair를 생성하고 업로드 했습니다.
Have a nice day!