ㅁ WEB - WAS 연결 테스트

 

위의 Pyhton 코드는 Private Subnet에서 올라가있어, 직접 테스트가 불가능하다.

 

Public Subnet에 떠있는 Web서버를 통해 서비스 테스트를 해보자.

 

 

- WEB서버 Nginx port forwarding 설정

 

 

/etc/nginx/conf.d/default.conf 

server {
 listen 80; // 80포트로 리슨하고
 
 location /api/ { //api 리퀘스트 요청이 온다면
 proxy_pass http://10.0.0.190:82; // private WAS서버로 포워딩
 }
}

 

nginx 재시작

sudo service nginx restart 

 

ㅁ 연결테스트

 

- Nginx로 80 RestApi 호출 - 404 Error

 

- Nginx에는 Access Log 확인됌

 

Python에는 로그가 발견되지 않아

Nginx의 포트 포워딩 기능에 문제가 있다고 예상됌

 

에러로그에는 따로 남지않아, 포워딩 기능 재확인 필요.

 

 

- Default 링크 제거

 

스택 오버플로우를 참조하여 , /etc/nginx/site-enabled 의 default 링크 삭제.

 

포트포워딩 기능 정상 확인.

 

 


ㅁ WAS - DB 연결테스트

 

- Python <-> Postgresql 연동 라이브러리 설치  ( psycopg2 )

sudo pip3 install psycopg2

 

- 에러 발생

 

Error: pg_config executable not found.
=> Postgresql 관련 라이브러리가 설치되어 있지 않아서 그렇다고함.

libpq라는 Postgresql 프로그래밍 인터페이스 라이브러리 설치

sudo apt-get install libpq-dev

 

- Python 코드 수정

 

기존 Restapi 코드에서, 데이터를 Postgresql에 붙어서 가져오도록 수정

 

import psycopg2

user_db = psycopg2.connect (
  host='10.0.0.198',
  dbname='USER',
  user='test',
  password='a123456789',
  port=5432
)

@api.route('/api/users/<int:id>')
class HelloWorld(Resource):
 def get(self,id):
    cursor = user_db.cursor()
    sql = " select * from user_info where id= " + str(id)
    cursor.execute(sql)
    data=cursor.fetchall()
    return {"id": data[0][0],
              "name": data[0][1]}

 

- Key 값으로 1234 주었을 때

 

- Key 값으로 123 주었을 때

 


※ 비용 관리

 

원하는 아키텍쳐를 구성해보았으니, 할당받은 자원에 대해 정리도 중요하다

 

콘솔에서 현재까지 청구 금액을 살펴보자

 

 

현재까지 6$ 가량 나왔고, 대부분이 NAT Gateway라는것을 알 수 있다.

 

서버 구성이 완료되어, Private WAS / DB 에서는 외부 인터넷 연결이 필요없다.

학습도 완료하였으니 추가적인 과금을 방지하기 위해 NAT 게이트웨이를 삭제하도록 하자.

 

'IT > AWS' 카테고리의 다른 글

(6) 서비스 흐름도 정리  (1) 2021.11.10
(4) EC2 원격 접속 ( 작성중 )  (0) 2021.11.07
(3) EC2 / WEB-WAS-DB 세팅  (0) 2021.11.05
(2) 인터넷 게이트웨이 및 라우팅 테이블 설정  (0) 2021.11.03
(1) VPC , 서브넷 및 EC2 생성  (0) 2021.11.03

+ Recent posts