2022 지방기능경기대회 1과제 풀이

xlwdn·2023년 1월 26일
1
post-custom-banner

VPC 및 Subnet 설정


  • cloudcomputing-vpc-a
    • IPv4 CIDR
      • 10.0.0.0/16
    • subnet
      • publicA
        • 10.0.0.0/24
      • privateA
        • 10.0.1.0/24
  • cloudcomputing-vpc-b
    • IPv4 CIDR
      • 92.75.0.0/16
    • subnet
      • publicB
        • 92.75.0.0/24
      • privateB
        • 92.75.1.0/24

각각 vpc에 igw 생성

각각 VPC에 ngw 생성

  • cloudcomputing-rt-publicA
    • 10.0.0.0/24:local
    • 0.0.0.0/0:igw
  • cloudcomputing-rt-privateA
    • 10.0.1.0/24:local
    • 0.0.0.0/0:ngw
  • cloudcomputing-rt-publicB
    • 92.75.0.0/24:local
    • 0.0.0.0/0:igw
  • cloudcomputing-rt-privateB
    • 92.75.1.0/24:local
    • 0.0.0.0/0:ngw

PCX 생성


EC2 생성


SG 각각 VPC마다 생성. 22 open

  • bastionA(cloudcomputing-ec2-bastionA)
    • vpc
      • cloudcomputing-vpc-a
    • subnet
      • cloudcomputing-subnet-publicA
  • serviceA(cloudcomputing-ec2-serviceA)
    • vpc
      • cloudcomputing-vpc-a
    • subnet
      • cloudcomputing-subnet-privateA

위와 동일한 형식으로 B도 설정

다단계 ssh 접속 설정


user@MacBook-Pro keyPair % vi ~/.ssh/config

Host bastionA
        Hostname        13.125.69.75
        User            ec2-user
        IdentityFile    (key 경로)
Host bastionB
        Hostname        13.209.18.45
        User            ec2-user
        IdentityFile    (key 경로)
Host serviceA
        Hostname        10.0.1.199
        User            ec2-user
        IdentityFile    (key 경로)
        ProxyCommand    ssh bastionA -W %h:%p
Host serviceB
        Hostname        92.75.1.98
        User            ec2-user
        IdentityFile    (key 경로)
        ProxyCommand    ssh bastionB -W %h:%p
user@MacBook-Pro keyPair % ssh bastionB
The authenticity of host '13.209.18.45 (13.209.18.45)' can't be established.
ED25519 key fingerprint is SHA256:O5PJnsVi6aQa0xunnclPgvJCPlhxGEfMm/DF5iky5Y4.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '13.209.18.45' (ED25519) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-92-75-0-199 ~]$ exit
logout
Connection to 13.209.18.45 closed.
user@MacBook-Pro keyPair % ssh serviceB
The authenticity of host '92.75.1.98 (<no hostip for proxy command>)' can't be established.
ED25519 key fingerprint is SHA256:DsGv2YjhPLS91twOPROdOvpA/n9NgoIwxRe0DsiEpOE.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '92.75.1.98' (ED25519) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/

테스트

serviceB

[ec2-user@ip-92-75-1-98 ~]$ vi index.html
<html><body>hello world</body></html>

[ec2-user@ip-92-75-1-98 ~]$ sudo python -m SimpleHTTPServer 80

serviceA

[ec2-user@ip-10-0-1-199 ~]$ curl http://92.75.1.98
<html><body>hello world</body></html>

ALB 설정


ALB 등록 시 2개의 가용영역이 필요하므로 다른 가용영역을 가지는 서브넷을 생성한다.(cloudcomputing-subnet-private02)

라우팅 테이블은 privateB01이 사용하는 테이블로 연결한다.(어차피 private02로 요청 안넣어서 해당 범위 라우팅 안해도 됨)

TG 설정


Route53


VPC에서 DNS 호스트 이름 활성화를 활성화하여야 Route53 프라이빗 DNS가 작동한다.

Route53 레코드 생성


접속

user@MacBook-Pro-2 ~ % ssh serviceA
Last login: Thu Jan 26 12:50:34 2023 from 10.0.0.175

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-0-1-199 ~]$ curl www.cloudcomputing.com
<html><body>hello world</body></html>

소감


ALB를 나중에 봐서 맨 처음부터 프라이빗 서브넷 2개를 설정하지 못한 것이 아쉽다. Route53 프라이빗 라우팅을 사용해본 경험이 없어서 VPC dns hostname 속성 허용하는 것 찾느라고 힘들었다.

+그리고 Apache Tomcat이라고 하길래 httpd 돌리면서 403 오류 고치고 있었는데 생각해보니까 Apache Server가 아니라 Apache Tomcat이면 스프링을 말하는건가 싶어서 걍 python -m SimpleHTTPServer 80으로 돌렸다. 걍 nginx로 해줬으면.... Apache 너무 틀....

post-custom-banner

0개의 댓글