🔥TIL#11. AWSへのサービスの導入
Today I learned
1-1. AWS EC2
1-2. AWS RDS
1-3. 準備
1. AWS
Amazon Webサービスは、サービスを開発する環境(アプリケーション、データベース...)WEBに配信されるサービスとして、様々な機能を提供しています.AWSのフレキシブルコンピューティングクラウド(EC 2)とリレーショナル・データベース・サービス(RDS)を使用して、開発した最初のプロジェクトの成果をWEBに導入します.
1-1. AWS EC2
EC 2は、ユーザーが独自のアプリケーションまたはサービスを実行することをサポートするサービスである仮想マシンです.この仮想マシンはOurPlay WASを実行します.
AWSにアカウントがある場合は、AWSにおけるEC 2 Instanceの作成方法について説明します.
AWSに接続してEC 2サービス画面に入ると、上記の画面が表示されます.画面中央の[インスタンスを開始](Start Instance)ボタンで新しいインスタンスを作成できます.
最初はプロジェクト環境を選択します.私はubuntu環境で開発したので、作成するインスタンスを選択してもubuntuです.
AMIを選択すると、上記のような「選択タイプ」画面が表示され、開発をテストするために使用されるので、プリファレンスとして選択します.
ここで、[サブネット]セクションを開き、最初のアイテムを選択します.「予期せぬ終了の防止」を確認し、次の手順に進みます(他の課金オプションを無効にします).
ストレージステージを設定し、テスト用Instanceなのでdefaultにします.
次のステップはTag設定です.これはコストの管理、AMIポリシー権限の指定などの機能で、Instanceに必要なkey値とvalue値を入力してスキップします.
「セキュリティ・グループの設定」フェーズでは、http/http接続を許可するためにセキュリティ・ルールを追加する必要があります.上の図に示すように、「カスタムTCP」、「ポート範囲」が8000、「ソース」が「位置無関係」の場合、http/http接続は任意の場所で許可されます.
最後のステップとして、これまでに設定した内容が正しいかどうかを確認すると、生成プロセスに進みます.
[開始](Start)をクリックするとkey-pairが受信されます.これはEC 2接続用のファイルなので、よく管理してください.インスタンスを起動すると、AWS EC 2画面にそのインスタンスのステータスが表示されます.
では、TerminalからEC 2 instanceに接続しましょう.接続する前に、sshに接続するにはダウンロードしたpemファイルの権限を変更する必要があります.そのため、次のコマンドを使用してファイルの権限を変更してください.
chmod 400 xxxx.pem
次にssh接続を使用してみます.以下に示します.ssh -i {발급받은 pem 파일} ubuntu@{인스턴스 public IP or DNS}
# ubuntu 위치는 우리가 만든 AMI 이름이다.
正常に接続されている場合、端末入力部の情報は以下のように変更されます.
1-2. AWS RDS
リレーショナル・データベース・サービス(RDS)は、AWSにおけるRDB環境の確立および設定をサポートするサービスである.OurPlay WASはMySQLを使用するため、RDSにアクセスしてデータベースを作成し、作成したデータベースの接続アドレス(EndPoint)をEC 2のOurPlay WAS設定情報に入れて、EC 2とRDSバインドすることができる.まずはAWS RDSページへ.
上の画面には私が作成したデータベースがあります.右上の[データベースを作成](Create Database)ボタンから作成を開始します.
私はMySQLに基づいて開発したので、MySQLを選びました.
バージョンとテンプレート、識別子、およびログインするID/Passwordを入力します.IDはroot、Passwordはセキュリティのために複雑なモードを推奨します.
データベースを作成したら、接続します.Terminalで次のコマンドを実行します.
mysql -h {RDS endpoint} -u root -p
Passwordが正常に入力されている場合は、RDSに接続できます.注意事項
データベースを作成するときは、「パラメータグループ」の設定を忘れないでください.
文字セット*の値をutf 8 mb 4に設定すると、ハングルクラックの問題を回避できます.基本パラメータグループを使用するとハングルが破壊されます
1-3. OurPlay WASを起動する準備ができています
EC 2とRDSの準備が完了し,残りは開発したOutplay WAS sourceをEC 2のInstanceに導入して実行する.以下の作業を行った.
そのため、ファイルやフォルダをEC 2 Instanceにアップロードする方法を探していたところ、Ubuntuが提供する「scp」という機能を知りました.使い方は以下の通りです.
# scp 명령어 구조
scp -i {발급받은 pem 파일} -r {local path} ubuntu@{인스턴스 public IP or DNS}:{remote path}
# 내 작업 기준
scp -i jinybear.pem -r ~/ourplays/14-folder/data/ [email protected]:~/14-folder/
上がフォルダの場合、ファイルは「-r」オプションを削除できます.EC 2 Instanceからダウンロードしたい場合は、以下の手順に従います.scp -i {발급받은 pem 파일} -r ubuntu@{인스턴스 public IP or DNS}:{remote path} {local path}
OurPlay WASを実行した後、postmanで要求テスト結果が正常であることを確認します.しかし、もう一つあります.これは、shellを閉じたり、端末セッションを閉じたりしても、WASは実行を継続する必要があることを意味します.(通常、shellまたはTerminalを閉じると終了します)
バックグラウンドで実行する必要があるため、関連する機能を検索すると「nohup」コマンドが見つかり、次のように実行されます.
nohup python manage.py runserver 0:8000 &
# nohup {WAS 실행 명령} &
ちょうど私と協力したフロンテンド開発者から連絡があり、フロンテンド側の改善作業にOurPlay WASと連動できるかどうかを尋ねられました.EC 2 Instanceの「public ip」を教えていただき、私たち二人で満足のいく会話ができました.^^Reference
この問題について(🔥TIL#11. AWSへのサービスの導入), 我々は、より多くの情報をここで見つけました https://velog.io/@jinybear/TIL12-개발한-project-AWS-에-EC2-RDSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol