Summary#5 AWS Cloud Service EC2 (mongoDB connection fail-issue)


外部サーバへの接続(EC 2)の手順
1.AWS EC 2サーバの購入(LTS Ver.)
  • サーバを購入してポートを追加(80、5000、27017ポート)
  • 端末でEC 2に接続
    keypairのアクセス権の置換
  • sudo chmod 400 keypair file drag & drop
    SSHで接続
    ssh -i keypair file drag & drop ubuntu@IP in AWS
    例)

    設定
  • file zilla
  • drag&dropでファイルをアップロードできます
  • サーバ環境(アップグレード、DBインストール、コマンド統合など)
  • を設定する.
  • initial_ec2.shファイル
  • を生成する
    # UTC to KST
    sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
    
    # python3 -> python
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
    
    # pip3 -> pip
    sudo apt-get update
    sudo apt-get install -y python3-pip
    pip3 --version
    sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
    
    # port forwarding
    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
    
    # MongoDB - install
    wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
    sudo apt-get update
    sudo apt-get install -y mongodb-org
    
    sudo mkdir -p /data/db
    
    # MongoDB - run
    sudo service mongod start
    sleep 7
    netstat -tnlp
    
    # MongoDB set user, set conf file
    mongo admin --eval 'db.createUser({user: "pearl", pwd: "pearl", roles:["root"]});'
    sudo sh -c 'echo "security:\n  authorization: enabled" >> /etc/mongod.conf'
    sudo sed -i "s,\\(^[[:blank:]]*bindIp:\\) .*,\\1 0.0.0.0," /etc/mongod.conf
    
    sudo service mongod stop
    sudo service mongod start
    sleep 5
    netstat -tnlp
  • filezilla~shファイルアップロード後に端末から
  • に接続する.
    sudo chmod 755 initial_ec2.sh
    ./initial_ec2.sh
  • EC 2サーバ時間範囲:
  • sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
  • python 3コマンド->python
  • sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
  • pip3 -> pip
  • sudo apt-get update
    
    sudo apt-get install -y python3-pip
    
    sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

    mongoDB (with issue)

  • 取付
  • wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
    
    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
    
    sudo apt-get update
    
    sudo apt-get install -y mongodb-org
  • 運転
  • sudo service mongod start
  • 接続アカウントの作成(デフォルトテスト)
  • mongo
    
    use admin;
    
    db.createUser({user: "test", pwd: "test", roles:["root"]});

    createUserが使用できない場合はmongodyを削除して再インストールします
    exit
    
    sudo service mongod restart
  • 外部オープン
  • sudo vi /etc/mongod.conf
    i入力モード
    ESCボタンに切り替えると
    :wq入力後Enter、保存後終了

    次の変更を行います.
    :wq
    
    sudo service mongod restart
  • robo 3 TでEC 2サーバに接続するmongodb

  • mongody createUser,pwを入力
  • ポート転送(80->5000)
  • sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
  • フラスコ、pymongoパッケージをインストールして
  • に接続
    pip install flask
    pip install pymongo
    
  • file zilla上のstatic、templates、app.pyアップロード後接続
  • python app.py
  • アドレスウィンドウhttp://[my EC 2 IP]:5000/アクセスホーム
  • httpリクエストはデフォルトの80ポートを使用し、ポート転送設定で5000ポートからポート番号を移動し、ホームページも正常に動作します.
  • nohup設定
    端末がオフの場合(SSHがオフの場合)、サーバのフリーズを防止する
  • .
    nohup python app.py &
    ファイルに変更がある場合は、強制終了後にnohupを再設定する必要があります.
    強制脱退
  • ps -ef | grep 'app.py'
    
    kill -9 [pid값]
    pid値=プロセス番号
  • ドメイン接続(ガビアDNS)
  • ドメインを購入するとDNS-接続ドメイン
  • が有効になります.
  • ホスト名:@
  • IPアドレス:EC 2が設定IP
  • ドメインに接続できます!
    http://pearlkim.shop/
  • html meta tagを使用してog tag
  • を作成
    <meta property="og:title" content="내 사이트의 제목" />
    <meta property="og:description" content="보고 있는 페이지의 내용 요약" />
    <meta property="og:image" content="{{ url_for('static', filename='ogimage.png') }}" />
    ogラベルは登録すると変更されませんので、変更したい場合は、
    初期化が必要です!
    初期化
  • フェイスブックogラベル:https://developers.facebook.com/tools/debug/2
  • 初期化
  • Kakao Talk ogラベル:https://developers.kakao.com/tool/clear/og2
  • END