若い者向け留学体験共有Forum
ベトナムの専門職業人のため、国内的なオンラインおよびオフラインコンミュウにティプラットフォームを建築しており、個人的および職業上の目標を達成することを支援し、メンバー間の長期的な信頼を育てることをもく目的としています。
現在、留学体験に共有することに専念しています。
システム概要
アーキテクチャ
- Node.js : バックエンドAPI。
- Next.js : ユーザインタフェース。
- AWS : ホスティングのためのインフラ, EC2, ECR, R53, RDSなどのサービスを含まれています。
- NGINX : ロードバランス, Web Server
- Docker : サービスをデプロイ
- GitlabCI : CI/CD
仕組み
- ブログの基本的な機能が含まれています。
- 世の中の有名なフォーラムから情報や投稿が集まられます。
開発過程
1. 技術選択
-
開発言語 : JavaScriptに集中しているため、Node.jsとNext.jsを選びました。同じ言語を使用することで、開発時間を短縮することができています。
-
データベース (PostgreSQL) : 一番気に入って、機能豊富なRelationDatabaseデータベースを使うことをしました。
NoSQLを使ったら実装が簡単になるのに、誰がかNoSQLを一番学習法がSQLを学ぶことだとってた。
- Amazon Web Services :
- - RDS : 以前が使ったことがありますが、このプロジェクトのデータベースを作成した後、作成するところに自動的にEC2インスタンスを接続するセキュリティーグループを作成することができると気づきました。
- ・クライエントから接続を作成するため、EC2のSSHキーが必要です。
- ・Node.JSから接続を作成するため、証明書も必要です。AWSのサイトからRDSの証明証をダウンロードできます。
- ・EC2からテーブルスキマを適用するため、BashScriptを作成しました。もっと複雑ですが、
- ・EC2インスタンスに指すため、Aレコードを追加します。今、HTTPでdomain nameを通じてEC2との接続を作成できるようになりいました。HTTPSをセットアップするため、証明書が提供されることが必要です。
Nginxをセットアップステップで実装します。
- ・環境準備ができた後、GithubActionでCI/CDを設定します。まず、実行環境を定義します
- ・次、ビルドとプッシュ過程します。mainブランチにプッシュすると、アプリがビルドして、ECRにプッシュします。
- ・DockerでEC2インスタンスにアプリとNginx適用します。
アプリの場合、SQLの接続ため、プット5432を開けて、RDS証明書を読むため、証明書フォルダーをマウントします。
- ・Nginxの場合、HTTPとHTTPSのデフォルトポットを開けます。
- ・Dockerfileを実行するとアベイラブルになります。