ㅁ 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 |