{"id":31690,"date":"2023-07-23T09:03:11","date_gmt":"2023-07-23T05:33:11","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/poc-three-tier-architecture-on-aws-with-rds-flask-microservice-and-php-frontend-bjl\/"},"modified":"2023-07-23T09:03:11","modified_gmt":"2023-07-23T05:33:11","slug":"poc-three-tier-architecture-on-aws-with-rds-flask-microservice-and-php-frontend-bjl","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/poc-three-tier-architecture-on-aws-with-rds-flask-microservice-and-php-frontend-bjl\/","title":{"rendered":"POC: \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u062f\u0631 AWS \u0628\u0627 RDS\u060c Flask Microservice \u0648 PHP Frontend"},"content":{"rendered":"<div data-article-id=\"1545598\" id=\"article-body\">\n<p>\u062f\u0631 \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644 \u067e\u0631 \u0633\u0631\u0639\u062a \u0627\u0645\u0631\u0648\u0632\u06cc\u060c \u0633\u0627\u062e\u062a \u0645\u0639\u0645\u0627\u0631\u06cc \u0647\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.  \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f\u0647\u0627\u060c \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0645\u062c\u0632\u0627 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f: \u0644\u0627\u06cc\u0647 \u0627\u0631\u0627\u0626\u0647\u060c \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u0644\u0627\u06cc\u0647 \u0630\u062e\u06cc\u0631\u0647 \u062f\u0627\u062f\u0647.  \u0647\u0631 \u0644\u0627\u06cc\u0647 \u0648\u0638\u0627\u06cc\u0641 \u062e\u0627\u0635 \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0627\u0639\u062b \u0627\u0631\u062a\u0642\u0627\u06cc \u0645\u0627\u0698\u0648\u0644\u0627\u0631 \u0628\u0648\u062f\u0646\u060c \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631\u06cc \u0648 \u0633\u0647\u0648\u0644\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af\u060c \u0645\u0627 \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0627\u062b\u0628\u0627\u062a \u0645\u0641\u0647\u0648\u0645 (POC) \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u062f\u0631 \u062e\u062f\u0645\u0627\u062a \u0648\u0628 \u0622\u0645\u0627\u0632\u0648\u0646 (AWS) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u062f\u0645\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc \u0645\u0627\u0646\u0646\u062f Amazon RDS\u060c Flask Microservice \u0648 PHP frontend \u062e\u0648\u0627\u0647\u06cc\u0645 \u067e\u0631\u062f\u0627\u062e\u062a.<\/p>\n<p><\/p>\n<p>\u0633\u0641\u0631 \u0628\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 AWS RDS \u0622\u063a\u0627\u0632 \u0645\u06cc \u0634\u0648\u062f\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 MySQL \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0645\u0646\u062f\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.  \u0633\u067e\u0633 \u0627\u0632 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 EC2 \u0628\u0647 \u0627\u06cc\u0646 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062a\u0635\u0644 \u0645\u06cc \u0634\u0648\u06cc\u0645 \u062a\u0627 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627 \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645 \u0648 \u06a9\u0648\u0626\u0631\u06cc \u0647\u0627\u06cc SQL \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645.  \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u0627 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 RDS \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0632 \u0627\u062a\u0635\u0627\u0644 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u06cc\u0646 \u0628\u0627\u0637\u0646 \u062e\u0648\u062f \u0648 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0642\u0644\u0628 \u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u0627 \u062f\u0631 Flask Microservice \u0646\u0647\u0641\u062a\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0644\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0639\u0645\u0644 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.  \u0645\u0627 \u06cc\u06a9 API RESTful \u0631\u0627 \u0628\u0627 Flask \u062a\u0648\u0633\u0639\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f\u060c \u06a9\u0647 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 frontend \u0648 backend \u0631\u0627 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f.  Flask Microservice \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u06a9\u0646\u0627\u0646 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 RDS \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u0642\u0627\u0644\u0628 JSON \u0633\u0627\u062e\u062a\u0627\u0631\u06cc\u0627\u0641\u062a\u0647 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0633\u0645\u062a \u062c\u0644\u0648\u060c \u0645\u0627 \u06cc\u06a9 \u0633\u0631\u0648\u0631 PHP \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 EC2 \u062f\u06cc\u06af\u0631 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0648\u0628 \u0633\u0627\u062f\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 PHP\u060c \u0645\u0627 \u0628\u0627 Flask Microservice \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0645\u0646\u062f\u0627\u0646 \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0622\u0646 \u0647\u0627 \u062f\u0631 \u0635\u0641\u062d\u0647 \u0648\u0628 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0627\u06cc\u0646 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u062a\u0639\u0627\u0645\u0644 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u06cc\u0646 \u0642\u0633\u0645\u062a \u062c\u0644\u0648\u06cc\u06cc \u0648 \u0628\u0627\u0637\u0646 \u0627\u0633\u062a \u0648 \u0642\u062f\u0631\u062a \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0631\u0627 \u0628\u0631\u062c\u0633\u062a\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 1: \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062f\u0631 AWS RDS<\/strong><\/p>\n<p>\u0648\u0627\u0631\u062f \u06a9\u0646\u0633\u0648\u0644 AWS \u062e\u0648\u062f \u0634\u0648\u06cc\u062f \u0648 \u0628\u0647 RDS \u0628\u0631\u0648\u06cc\u062f.<\/p>\n<p>\u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 &#8220;\u0627\u06cc\u0632\u06cc \u0627\u06cc\u062c\u0627\u062f&#8221; \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.<br \/>\u0645\u0648\u062a\u0648\u0631 MySQL \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u06af\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.<br \/>\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f:<br \/>\u0634\u0646\u0627\u0633\u0647 \u0646\u0645\u0648\u0646\u0647 DB: [masked]\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0635\u0644\u06cc: [masked]\u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u0627\u0635\u0644\u06cc: [masked]\n<p>\u062a\u0648\u062c\u0647: \u0628\u0647 \u062e\u0627\u0637\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc RDS \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0622\u062f\u0631\u0633 IP \u0639\u0645\u0648\u0645\u06cc \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f \u0648 \u0641\u0642\u0637 \u0645\u0646\u0627\u0628\u0639 \u062f\u0627\u062e\u0644 VPC \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0622\u0646\u0647\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 2: \u0627\u0632 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 EC2 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 RDS \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f<\/strong><\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 RDS \u0627\u0632 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 EC2\u060c \u06a9\u0644\u0627\u06cc\u0646\u062a MySQL \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0648 \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>sudo yum install -y mysql-community-client --nogpgcheck\nmysql --version\nmysql -h [masked] -u [masked] -p [masked]\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 3: \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u062c\u062f\u0648\u0644 POC \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/strong><\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u062c\u062f\u0648\u0644\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u06a9\u0646\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>CREATE DATABASE pocdb;\nUSE pocdb;\n\nCREATE TABLE employee (\n    employee_id INT AUTO_INCREMENT PRIMARY KEY,\n    name VARCHAR(255) NOT NULL\n);\n\nINSERT INTO employee (name) VALUES ('John Doe'), ('Jane Smith');\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 4: \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 RDS<\/strong><\/p>\n<p>\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 \u0646\u0645\u0648\u0646\u0647 EC2 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 RDS \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>import mysql.connector\n\ndef read_employee_data():\n    # RDS database connection details (masked)\n    host = \"[masked]\"\n    user = \"[masked]\"\n    password = \"[masked]\"\n    database = \"pocdb\"\n\n    try:\n        # Establish a connection to the MySQL database\n        connection = mysql.connector.connect(\n            host=host,\n            user=user,\n            password=password,\n            database=database\n        )\n\n        if connection.is_connected():\n            print(\"Connected to the database.\")\n            cursor = connection.cursor()\n\n            # Define the SQL query to retrieve all data from the employee table\n            sql_query = \"SELECT * FROM employee\"\n\n            # Execute the query\n            cursor.execute(sql_query)\n\n            # Fetch all rows from the result set\n            rows = cursor.fetchall()\n\n            # Process the result set and print the data\n            for row in rows:\n                employee_id = row[0]\n                name = row[1]\n                print(f\"Employee ID: {employee_id}, Name: {name}\")\n\n            # Close the cursor and connection\n            cursor.close()\n            connection.close()\n        else:\n            print(\"Database connection failed.\")\n\n    except mysql.connector.Error as e:\n        print(f\"Error connecting to the database: {e}\")\n\nif __name__ == \"__main__\":\n    read_employee_data()\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0644\u0637\u0641\u0627\u064b \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u0633\u062a\u0642\u0644 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 5: \u0627\u06cc\u062c\u0627\u062f Flask Microservice \u062f\u0631 \u0646\u0645\u0648\u0646\u0647 EC2<\/strong><\/p>\n<p>Flask \u0631\u0627 \u0631\u0648\u06cc \u0646\u0645\u0648\u0646\u0647 EC2 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u06cc\u06a9 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 Flask \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0645\u0646\u062f\u0627\u0646 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 RDS \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>pip install Flask\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>from flask import Flask, jsonify\nimport mysql.connector\n\napp = Flask(__name__)\n\n@app.route('\/employees', methods=['GET'])\ndef get_employees():\n    # RDS database connection details (masked)\n    host = \"[masked]\"\n    user = \"[masked]\"\n    password = \"[masked]\"\n    database = \"pocdb\"\n\n    try:\n        # Establish a connection to the MySQL database\n        connection = mysql.connector.connect(\n            host=host,\n            user=user,\n            password=password,\n            database=database\n        )\n\n        if connection.is_connected():\n            cursor = connection.cursor()\n\n            # Define the SQL query to retrieve all data from the employee table\n            sql_query = \"SELECT * FROM employee\"\n\n            # Execute the query\n            cursor.execute(sql_query)\n\n            # Fetch all rows from the result set\n            rows = cursor.fetchall()\n\n            # Close the cursor and connection\n            cursor.close()\n            connection.close()\n\n            # Process the result set and build a list of employees\n            employees = []\n            for row in rows:\n                employee_id = row[0]\n                name = row[1]\n                employee_data = {\"employee_id\": employee_id, \"name\": name}\n                employees.append(employee_data)\n\n            # Return the list of employees as JSON response\n            return jsonify(employees)\n        else:\n            return \"Database connection failed.\", 500\n\n    except mysql.connector.Error as e:\n        return f\"Error connecting to the database: {e}\", 500\n\nif __name__ == \"__main__\":\n    app.run(host=\"172.31.95.155\", port=5000)\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 6: \u062a\u0633\u062a Microservice \u0641\u0644\u0627\u0633\u06a9<\/strong><\/p>\n<p>\u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 Flask \u0631\u0627 \u0631\u0648\u06cc \u0646\u0645\u0648\u0646\u0647 EC2 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0622\u0646 \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>python3 Microservice.py\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>curl http:\/\/[Masked]:5000\/employees\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 7: \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc Frontend PHP Server<\/strong><\/p>\n<p>\u062f\u0631 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 EC2 \u062f\u06cc\u06af\u0631\u060c PHP \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0627\u062f\u0647 PHP \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>sudo yum update\nsudo yum install php\nsudo service httpd start\nsudo mv hello.php \/var\/www\/html\/\nsudo chown apache:apache \/var\/www\/html\/hello.php\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>hello.php:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>&lt;?php echo 'Hello, World!'; ?&gt;\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>*<em>\u0645\u0631\u062d\u0644\u0647 8: \u062a\u0633\u062a PHP Frontend<br \/>*<\/em><br \/>\u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0641\u0627\u06cc\u0644 PHP\u060c \u0641\u0631\u0627\u0646\u062a PHP \u0631\u0627 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>http:\/\/[masked]\/hello.php\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 9: \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 PHP \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 Flask Microservice<\/strong><\/p>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a PHP \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u06a9\u0646\u0627\u0646 \u0627\u0632 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 Flask \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>&lt;?php\n\/\/ Replace the API endpoint with the correct URL of your microservice\n$apiUrl=\"http:\/\/[Masked]:5000\/employees\";\n\n\/\/ Make an HTTP GET request to the API endpoint\n$response = file_get_contents($apiUrl);\n\n\/\/ Check if the response is valid\nif ($response === false) {\n    echo \"Error fetching data from the microservice.\";\n} else {\n    \/\/ Decode the JSON response into an associative array\n    $data = json_decode($response, true);\n\n    \/\/ Check if the JSON decoding was successful\n    if ($data === null) {\n        echo \"Error decoding JSON data from the microservice.\";\n    } else {\n        \/\/ Loop through the data and display the employee information\n        echo \"&lt;h1&gt;Employee List&lt;\/h1&gt;\";\n        echo \"&lt;ul&gt;\";\n        foreach ($data as $employee) {\n            echo \"&lt;li&gt;Employee ID: \" . $employee['employee_id'] . \", Name: \" . $employee['name'] . \"&lt;\/li&gt;\";\n        }\n        echo \"&lt;\/ul&gt;\";\n    }\n}\n?&gt;\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0631\u062d\u0644\u0647 10: \u062a\u0633\u062a \u0646\u0647\u0627\u06cc\u06cc \u0648 \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/strong><\/p>\n<p>\u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a PHP \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0634\u062f\u0647 \u06a9\u0627\u0631\u06a9\u0646\u0627\u0646 \u0631\u0627 \u0627\u0632 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 Flask \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u062f\u0631 AWS \u0631\u0627 \u0628\u0647 \u0646\u0645\u0627\u06cc\u0634 \u06af\u0630\u0627\u0634\u062a \u06a9\u0647 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 Amazon RDS\u060c Flask Microservice \u0648 PHP frontend \u0627\u0633\u062a.  \u0628\u0627 \u062c\u062f\u0627 \u06a9\u0631\u062f\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0647\u0627\u06cc \u0645\u062c\u0632\u0627\u060c \u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u0627\u0698\u0648\u0644\u0627\u0631 \u0628\u0648\u062f\u0646\u060c \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.  \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 RDS \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0645\u0646\u062f\u0627\u0646 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0631\u062f\u060c Flask Microservice \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0631\u062f \u0648 PHP \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0648\u0628 \u0628\u0627 backend \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a.  \u0627\u062f\u063a\u0627\u0645 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u06cc\u0646 \u0627\u06cc\u0646 \u0644\u0627\u06cc\u0647 \u0647\u0627 \u067e\u062a\u0627\u0646\u0633\u06cc\u0644 \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0631\u0627 \u062f\u0631 \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0642\u0648\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644 \u067e\u0631 \u0633\u0631\u0639\u062a \u0627\u0645\u0631\u0648\u0632\u06cc\u060c \u0633\u0627\u062e\u062a \u0645\u0639\u0645\u0627\u0631\u06cc \u0647\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a. \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f\u0647\u0627\u060c \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0645\u062c\u0632\u0627 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f: \u0644\u0627\u06cc\u0647 \u0627\u0631\u0627\u0626\u0647\u060c \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u0644\u0627\u06cc\u0647 \u0630\u062e\u06cc\u0631\u0647 \u062f\u0627\u062f\u0647. \u0647\u0631 \u0644\u0627\u06cc\u0647 \u0648\u0638\u0627\u06cc\u0641 \u062e\u0627\u0635 \u062e\u0648\u062f &hellip;<\/p>\n","protected":false},"author":2,"featured_media":31691,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-31690","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/31690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=31690"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/31690\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/31691"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=31690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=31690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=31690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}