<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>jellybread_dev.log</title>
        <link>https://velog.io/</link>
        <description>풀스낵 개발자</description>
        <lastBuildDate>Sun, 20 Mar 2022 08:24:40 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>jellybread_dev.log</title>
            <url>https://images.velog.io/images/jellybread_dev/profile/78bc81d0-347b-4fff-bb35-cf9e29c47a0c/social.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. jellybread_dev.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/jellybread_dev" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[psycopg2.OperationalError]]></title>
            <link>https://velog.io/@jellybread_dev/psycopg2.OperationalError</link>
            <guid>https://velog.io/@jellybread_dev/psycopg2.OperationalError</guid>
            <pubDate>Sun, 20 Mar 2022 08:24:40 GMT</pubDate>
            <description><![CDATA[<p><img src="https://images.velog.io/images/jellybread_dev/post/9bcb7ef4-ebb0-4370-85a7-671debbbcd81/1647766915440.jpg" alt=""></p>
<p>이후에 같은 에러가 발생했을 때 스스로 삽질을 하지 않기 위해 기록 😇</p>
<p>상황 :
AWS EB 환경 복제 후 deploy했을 때 에러 발생</p>
<p>확인한 로그 파일 : 
cfn-init-cmd.log</p>
<p>로그 파일 내 에러 메시지 :</p>
<pre><code>manage.py:22: UserWarning: Not reading .env - it doesn&#39;t exist.
2022-03-20 03:59:45,821 P3687 [INFO]       dotenv.read_dotenv()
2022-03-20 03:59:45,821 P3687 [INFO]     Traceback (most recent call last):
2022-03-20 03:59:45,821 P3687 [INFO]       File &quot;/var/app/venv/staging-LQM1lest/lib/python3.8/site-packages/django/db/backends/base/base.py&quot;, line 217, in ensure_connection
2022-03-20 03:59:45,821 P3687 [INFO]         self.connect()
2022-03-20 03:59:45,821 P3687 [INFO]       File &quot;/var/app/venv/staging-LQM1lest/lib/python3.8/site-packages/django/db/backends/base/base.py&quot;, line 195, in connect
2022-03-20 03:59:45,821 P3687 [INFO]         self.connection = self.get_new_connection(conn_params)
2022-03-20 03:59:45,821 P3687 [INFO]       File &quot;/var/app/venv/staging-LQM1lest/lib/python3.8/site-packages/django/db/backends/postgresql/base.py&quot;, line 178, in get_new_connection
2022-03-20 03:59:45,822 P3687 [INFO]         connection = Database.connect(**conn_params)
2022-03-20 03:59:45,822 P3687 [INFO]       File &quot;/var/app/venv/staging-LQM1lest/lib64/python3.8/site-packages/psycopg2/__init__.py&quot;, line 127, in connect
2022-03-20 03:59:45,822 P3687 [INFO]         conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
2022-03-20 03:59:45,822 P3687 [INFO]     psycopg2.OperationalError: could not connect to server: Connection timed out</code></pre><p>원인 : RDS의 보안 그룹 규칙(Security group rules)에서 inbound rule을 잘못 설정했기 때문. 즉 Elastic Beanstalk와 EC2는 같은 보안 그룹에 속해있지만 RDS의 경우 해당 그룹에 속해 있지 않기 때문에 서로 통신을 할 수 없는 상황 발생한 것. 이로 인해 psycopg2.operation 에러가 발생.</p>
<h4 id="해결-">해결 :</h4>
<p><strong>step 1.</strong>
AWS RDS로 이동하여 보안 그룹 규칙 선택 (보통 default로 시작)</p>
<p>*<em>step 2. *</em>
보안그룹 ID 선택</p>
<p><strong>step 3.</strong>
&#39;인바운드 규칙 편집&#39; 클릭</p>
<p><strong>step 4.</strong> 
아래와 같이 모든 트래픽으로, elastic beanstalk 환경을 선택.
<img src="https://images.velog.io/images/jellybread_dev/post/5a7935ca-7422-4e35-afab-53d52d20954a/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-20%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.21.06.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>