-
aws 강의실 vpc 실습 terraform 으로 만들기terraform 2023. 8. 10. 23:16
aws 강의실을 보고 만들어봤다.
https://www.youtube.com/watch?v=hi6S3DUJBBk
https://github.com/TaeWoonJeong/terraform-vpc
GitHub - TaeWoonJeong/terraform-vpc
Contribute to TaeWoonJeong/terraform-vpc development by creating an account on GitHub.
github.com
사용법은 어느정도 terraform 을 각자 공부한다음 사용해보자.
terraform init terraform plan terraform apply
aws cli를 설치한 적이 없다면, aws 계정 이 연결 안되어있다고 에러가 날 수 있다.
aws cli 를 설치하고 인증을 한다음 사용하자.
또는, 최상단 main.tf 에서
provider "aws" 를 찾아보자.
provider "aws" { region = "ap-northeast-2" access_key = "액세스키" secret_key = "시크릿키" }
이렇게 해주면 된다. 물론 IAM설정을 잘 해서 access_key 와 secert_key를 발급받아야한다.
이번 예제에서는 ec2FullAccess 정도면 작동할 것으로 생각한다.
만약 안된다면, Access Denied가 뜰것이니 IAM에 정책을 계속 추가하면 될것이다.
비용이 드는것들
ec2 t2.micro 3개
nat-gateway
간단한 설명
1. vpc 를 10.0.0.0/16 으로 만들어준다.
클래스 A: 10.0.0.0~10.255.255.255 클래스 B: 172.16.0.0~172.31.255.255 클래스 C: 192.168.0.0~192.168.255.255
사설 IP주소로 위에 처럼 있다.
물론 172.16.0.0/16 으로 해도 상관없다.
2. vpc 아래에 subnet이 있다.
vpc를 적절히 나눠줄건데, 여기서는 10.0.0.0/24 , 10.0.1.0/24 , 10.0.2.0/24 이렇게 했다.
3. 인터넷 게이트웨이를 만들고 vpc와 연결해준다.
4. 만든 인터넷 게이트웨이를 public 라우팅 테이블에 연결시키면서 라우팅 테이블을 만들어준다.
5. 보안그룹을 만들어준다.
6. key-pair을 만들어준다.(mobaXterm으로 접속할 것이므로 local_file을 사용해서 만들어준 pem 파일을 로컬에 저장할 수 있다.
7. public ec2를 생성해준다. 만들었던 ke-pair과, 보안그룹, 인터넷이랑 연결된 서브넷을 연결시켜주고, 간단한 명령어들을 실행시켜본다.
"sudo apt -y update", "sleep 15", "sudo apt -y update", "sudo apt -y install apache2", "sudo systemctl start apache2", "sudo chown -R ubuntu:ubuntu /var/www/html", "chmod +x *.sh", "sudo apt -y install cowsay", "cowsay Mooooooooooo!",
성공하면, 소 가 나온다. ㅎㅎ
8. private 라우팅 테이블을 만들고 새로운 서브넷고 연결한다.. 인터넷연결을 안한다.
9. private ec2 를 만들어준다. 인터넷 연결이 없는 라우팅 테이블을 연결해준다.
10. public ec2에서 private ec2 에 접근 가능한지 확인해보자.
ssh -i "pem파일" ubuntu@ec2사설IP
를 해서 접근 가능한지 확인한다.
private ec2 안에 들어와서 curl -v naver.com 같은 거를 하면 당연히 안된다.
다음으로 private ec2 인데, 인터넷이 되도록 만들어보자.
11. nat-gateway 를 만들고 새로운 서브넷과 연결시켜준다.
12. 라우팅테이블을 만들고, nat게이트웨이와 연결하고, cidr을 0.0.0.0/0 으로 인터넷이 되게한다.
13. private-nat ec2 를 만들고, 만든 라우팅 테이블과 연결시켜준다.
14. ssh명령어로 private nat ec2로 들어가서, 인터넷이 되는지 확인한다.
'terraform' 카테고리의 다른 글
terraform으로 스프링부트 빠르게 배포하기 with autoscaling-group (0) 2023.08.18 terraform으로 스프링부트 빠르게 배포하기 with ELB (0) 2023.08.13 terraform으로 스프링부트 빠르게 배포하기 with nginx (0) 2023.08.13