{"id":6467,"date":"2026-06-13T11:00:46","date_gmt":"2026-06-13T07:30:46","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=6467"},"modified":"2026-06-13T11:00:46","modified_gmt":"2026-06-13T07:30:46","slug":"%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d9%be%d8%b1%d9%88%da%98%d9%87-terraform-%d8%b1%d8%a7-%d8%a8%d9%87%d8%af%d8%b1%d8%b3%d8%aa%db%8c-%d8%b3%d8%a7%d8%ae%d8%aa%d8%a7%d8%b1%d8%a8%d9%86","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d9%be%d8%b1%d9%88%da%98%d9%87-terraform-%d8%b1%d8%a7-%d8%a8%d9%87%d8%af%d8%b1%d8%b3%d8%aa%db%8c-%d8%b3%d8%a7%d8%ae%d8%aa%d8%a7%d8%b1%d8%a8%d9%86\/","title":{"rendered":"\u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 Terraform \u0631\u0627 \u0628\u0647\u200c\u062f\u0631\u0633\u062a\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u0645\u061f"},"content":{"rendered":"<h2>\u0645\u0642\u062f\u0645\u0647<\/h2>\n<p>\u0648\u0642\u062a\u06cc \u06a9\u0627\u0631 \u0628\u0627 Terraform \u0631\u0627 \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0647\u0645\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u067e\u0648\u0634\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u062f \u0648 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0628\u0647\u200c\u062e\u0648\u0628\u06cc \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0645\u0627 \u0628\u0627 \u0628\u0632\u0631\u06af\u200c\u062a\u0631 \u0634\u062f\u0646 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u060c \u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u062d\u06cc\u0637\u200c\u0647\u0627 (Development\u060c Staging \u0648 Production) \u0648 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u0627\u0639\u0636\u0627\u06cc \u062a\u06cc\u0645\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0648\u0698\u0647 \u0628\u0647\u200c\u0633\u0631\u0639\u062a \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u062f\u0627\u0634\u062a\u0646 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0648 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u06cc\u0627\u0641\u062a\u0647 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc Terraform \u0627\u0647\u0645\u06cc\u062a \u0632\u06cc\u0627\u062f\u06cc \u062f\u0627\u0631\u062f. \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<ul>\n<li>\u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0634\u0648\u062f.<\/li>\n<li>\u0647\u0645\u06a9\u0627\u0631\u06cc \u062a\u06cc\u0645\u06cc \u0628\u0647\u0628\u0648\u062f \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/li>\n<li>\u0627\u0632 \u062a\u06a9\u0631\u0627\u0631 \u06a9\u062f\u0647\u0627 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f.<\/li>\n<li>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0634\u0648\u062f.<\/li>\n<li>\u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0627 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u0628\u0646\u062f\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc Terraform \u0622\u0634\u0646\u0627 \u0645\u06cc\u200c\u0634\u0648\u06cc\u0645.<\/p>\n<hr \/>\n<h1>\u0686\u0631\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0631\u0648\u0698\u0647 \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f\u061f<\/h1>\n<p>\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0647\u0645\u0647 \u0645\u0646\u0627\u0628\u0639 \u0631\u0627 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc\u062f:<\/p>\n<pre><code class=\"language-text\">main.tf\r\n<\/code><\/pre>\n<p>\u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0645\u0634\u06a9\u0644\u06cc \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0628\u0639\u062f \u0627\u0632 \u0645\u062f\u062a\u06cc \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0635\u062f\u0647\u0627 \u06cc\u0627 \u0647\u0632\u0627\u0631\u0627\u0646 \u062e\u0637 \u06a9\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<pre><code class=\"language-text\">main.tf\r\n\u251c\u2500\u2500 VPC\r\n\u251c\u2500\u2500 EC2\r\n\u251c\u2500\u2500 Load Balancer\r\n\u251c\u2500\u2500 Security Groups\r\n\u251c\u2500\u2500 RDS\r\n\u251c\u2500\u2500 IAM\r\n\u2514\u2500\u2500 ...\r\n<\/code><\/pre>\n<p>\u062f\u0631 \u0686\u0646\u06cc\u0646 \u0634\u0631\u0627\u06cc\u0637\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 \u062e\u0637\u0627\u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0633\u06cc\u0627\u0631 \u062f\u0634\u0648\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<hr \/>\n<h1>\u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc Terraform<\/h1>\n<p>\u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u062a\u062f\u0627\u0648\u0644 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<pre><code class=\"language-text\">terraform-project\/\r\n\u2502\r\n\u251c\u2500\u2500 modules\/\r\n\u2502   \u251c\u2500\u2500 network\/\r\n\u2502   \u251c\u2500\u2500 compute\/\r\n\u2502   \u251c\u2500\u2500 database\/\r\n\u2502\r\n\u251c\u2500\u2500 environments\/\r\n\u2502   \u251c\u2500\u2500 dev\/\r\n\u2502   \u251c\u2500\u2500 staging\/\r\n\u2502   \u2514\u2500\u2500 production\/\r\n\u2502\r\n\u251c\u2500\u2500 README.md\r\n\u2514\u2500\u2500 .gitignore\r\n<\/code><\/pre>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0633\u0627\u062e\u062a\u0627\u0631:<\/p>\n<ul>\n<li>\u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627 \u062f\u0631 \u067e\u0648\u0634\u0647 <code>modules<\/code> \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f.<\/li>\n<li>\u0647\u0631 \u0645\u062d\u06cc\u0637 \u062f\u0631 \u067e\u0648\u0634\u0647\u200c\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li>\u06a9\u062f\u0647\u0627 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0647\u0633\u062a\u0646\u062f.<\/li>\n<\/ul>\n<hr \/>\n<h1>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Modules<\/h1>\n<p>\u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u200c\u062a\u0631\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc Terraform \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0628\u0647\u200c\u062c\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631 \u06a9\u062f\u0647\u0627:<\/p>\n<pre><code class=\"language-hcl\">resource \"aws_instance\" \"web1\" {\r\n  ...\r\n}\r\n\r\nresource \"aws_instance\" \"web2\" {\r\n  ...\r\n}\r\n<\/code><\/pre>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0645\u0627\u0698\u0648\u0644 \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n<pre><code class=\"language-text\">modules\/\r\n\u2514\u2500\u2500 ec2\/\r\n<\/code><\/pre>\n<p>\u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u0627\u0698\u0648\u0644:<\/p>\n<pre><code class=\"language-text\">ec2\/\r\n\u251c\u2500\u2500 main.tf\r\n\u251c\u2500\u2500 variables.tf\r\n\u251c\u2500\u2500 outputs.tf\r\n\u2514\u2500\u2500 versions.tf\r\n<\/code><\/pre>\n<hr \/>\n<h2>\u0641\u0627\u06cc\u0644 main.tf<\/h2>\n<p>\u0634\u0627\u0645\u0644 \u0645\u0646\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc:<\/p>\n<pre><code class=\"language-hcl\">resource \"aws_instance\" \"this\" {\r\n  ami           = var.ami\r\n  instance_type = var.instance_type\r\n}\r\n<\/code><\/pre>\n<hr \/>\n<h2>\u0641\u0627\u06cc\u0644 variables.tf<\/h2>\n<p>\u062a\u0639\u0631\u06cc\u0641 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0645\u0627\u0698\u0648\u0644:<\/p>\n<pre><code class=\"language-hcl\">variable \"ami\" {\r\n  type = string\r\n}\r\n\r\nvariable \"instance_type\" {\r\n  type = string\r\n}\r\n<\/code><\/pre>\n<hr \/>\n<h2>\u0641\u0627\u06cc\u0644 outputs.tf<\/h2>\n<p>\u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u0645\u0627\u0698\u0648\u0644:<\/p>\n<pre><code class=\"language-hcl\">output \"instance_id\" {\r\n  value = aws_instance.this.id\r\n}\r\n<\/code><\/pre>\n<hr \/>\n<h1>\u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627 (Environments)<\/h1>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u060c \u062c\u062f\u0627 \u06a9\u0631\u062f\u0646 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627 \u0627\u0633\u062a.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<pre><code class=\"language-text\">environments\/\r\n\u251c\u2500\u2500 dev\r\n\u251c\u2500\u2500 staging\r\n\u2514\u2500\u2500 production\r\n<\/code><\/pre>\n<p>\u0647\u0631 \u0645\u062d\u06cc\u0637 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u062e\u0635\u0648\u0635 \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<pre><code class=\"language-text\">dev\/\r\n\u251c\u2500\u2500 main.tf\r\n\u251c\u2500\u2500 variables.tf\r\n\u251c\u2500\u2500 terraform.tfvars\r\n\u2514\u2500\u2500 backend.tf\r\n<\/code><\/pre>\n<hr \/>\n<h1>\u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627<\/h1>\n<p>\u062f\u0631 \u0645\u062d\u06cc\u0637 Development:<\/p>\n<pre><code class=\"language-hcl\">module \"web_server\" {\r\n  source = \"..\/..\/modules\/ec2\"\r\n\r\n  ami           = \"ami-123456\"\r\n  instance_type = \"t3.micro\"\r\n}\r\n<\/code><\/pre>\n<p>\u062f\u0631 \u0645\u062d\u06cc\u0637 Production:<\/p>\n<pre><code class=\"language-hcl\">module \"web_server\" {\r\n  source = \"..\/..\/modules\/ec2\"\r\n\r\n  ami           = \"ami-123456\"\r\n  instance_type = \"t3.large\"\r\n}\r\n<\/code><\/pre>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u06a9\u062f \u0627\u0635\u0644\u06cc \u06cc\u06a9\u0633\u0627\u0646 \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f \u0648 \u0641\u0642\u0637 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<hr \/>\n<h1>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062a\u063a\u06cc\u0631\u0647\u0627<\/h1>\n<p>\u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"language-text\">variables.tf\r\n<\/code><\/pre>\n<p>\u0646\u0645\u0648\u0646\u0647:<\/p>\n<pre><code class=\"language-hcl\">variable \"region\" {\r\n  type = string\r\n}\r\n<\/code><\/pre>\n<p>\u0648 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u062f\u0631:<\/p>\n<pre><code class=\"language-text\">terraform.tfvars\r\n<\/code><\/pre>\n<pre><code class=\"language-hcl\">region = \"eu-central-1\"\r\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<hr \/>\n<h1>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0627\u06cc\u0644 backend.tf<\/h1>\n<p>State \u0641\u0627\u06cc\u0644 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a \u0648 \u0646\u0628\u0627\u06cc\u062f \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u062d\u0644\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u062f.<\/p>\n<p>\u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0627\u0632 Remote State \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"language-hcl\">terraform {\r\n  backend \"s3\" {\r\n    bucket = \"terraform-state\"\r\n    key    = \"prod\/terraform.tfstate\"\r\n    region = \"eu-central-1\"\r\n  }\r\n}\r\n<\/code><\/pre>\n<p>\u0645\u0632\u0627\u06cc\u0627:<\/p>\n<ul>\n<li>\u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u0628\u06cc\u0646 \u0627\u0639\u0636\u0627\u06cc \u062a\u06cc\u0645<\/li>\n<li>\u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062a\u062f\u0627\u062e\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a<\/li>\n<li>\u0627\u0645\u0646\u06cc\u062a \u0628\u06cc\u0634\u062a\u0631<\/li>\n<\/ul>\n<hr \/>\n<h1>\u0641\u0627\u06cc\u0644 versions.tf<\/h1>\n<p>\u0646\u0633\u062e\u0647 Terraform \u0648 Provider\u0647\u0627 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"language-hcl\">terraform {\r\n  required_version = \"&gt;= 1.6\"\r\n\r\n  required_providers {\r\n    aws = {\r\n      source  = \"hashicorp\/aws\"\r\n      version = \"~&gt; 5.0\"\r\n    }\r\n  }\r\n}\r\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0632 \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0646\u0633\u062e\u0647\u200c\u0647\u0627 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<hr \/>\n<h1>\u0641\u0627\u06cc\u0644 providers.tf<\/h1>\n<p>\u0628\u0647\u062a\u0631 \u0627\u0633\u062a Provider\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<pre><code class=\"language-hcl\">provider \"aws\" {\r\n  region = var.region\r\n}\r\n<\/code><\/pre>\n<hr \/>\n<h1>\u0641\u0627\u06cc\u0644 outputs.tf \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0627\u0635\u0644\u06cc<\/h1>\n<p>\u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u0645\u0647\u0645 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"language-hcl\">output \"vpc_id\" {\r\n  value = module.network.vpc_id\r\n}\r\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u06cc\u0627 CI\/CD \u0645\u0641\u06cc\u062f \u0647\u0633\u062a\u0646\u062f.<\/p>\n<hr \/>\n<h1>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Naming Convention<\/h1>\n<p>\u0646\u0627\u0645\u200c\u06af\u0630\u0627\u0631\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0627\u0647\u0645\u06cc\u062a \u0632\u06cc\u0627\u062f\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0645\u0646\u0627\u0633\u0628:<\/p>\n<pre><code class=\"language-hcl\">aws_instance.web_server\r\n<\/code><\/pre>\n<p>\u0628\u0647 \u062c\u0627\u06cc:<\/p>\n<pre><code class=\"language-hcl\">aws_instance.server1\r\n<\/code><\/pre>\n<p>\u06cc\u0627:<\/p>\n<pre><code class=\"language-hcl\">aws_instance.test\r\n<\/code><\/pre>\n<p>\u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u062a\u0648\u0635\u06cc\u0641\u06cc \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<hr \/>\n<h1>\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u0647\u0645\u06cc \u06a9\u0647 \u0646\u0628\u0627\u06cc\u062f \u062f\u0631 Git \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u0646\u062f<\/h1>\n<p>\u062f\u0631 \u0641\u0627\u06cc\u0644 <code>.gitignore<\/code> \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<pre><code class=\"language-text\">.terraform\/\r\n*.tfstate\r\n*.tfstate.backup\r\n*.tfvars\r\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0634\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0633 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<hr \/>\n<h1>\u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af<\/h1>\n<pre><code class=\"language-text\">terraform-project\/\r\n\u2502\r\n\u251c\u2500\u2500 modules\/\r\n\u2502   \u251c\u2500\u2500 vpc\/\r\n\u2502   \u251c\u2500\u2500 eks\/\r\n\u2502   \u251c\u2500\u2500 rds\/\r\n\u2502   \u251c\u2500\u2500 ec2\/\r\n\u2502   \u2514\u2500\u2500 security-groups\/\r\n\u2502\r\n\u251c\u2500\u2500 environments\/\r\n\u2502   \u251c\u2500\u2500 dev\/\r\n\u2502   \u251c\u2500\u2500 staging\/\r\n\u2502   \u2514\u2500\u2500 prod\/\r\n\u2502\r\n\u251c\u2500\u2500 scripts\/\r\n\u2502\r\n\u251c\u2500\u2500 docs\/\r\n\u2502\r\n\u251c\u2500\u2500 README.md\r\n\u2514\u2500\u2500 .gitignore\r\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 \u0633\u0627\u062e\u062a\u0627\u0631 \u0628\u0631\u0627\u06cc \u062a\u06cc\u0645\u200c\u0647\u0627\u06cc DevOps \u0648 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc Enterprise \u0628\u0633\u06cc\u0627\u0631 \u0631\u0627\u06cc\u062c \u0627\u0633\u062a.<\/p>\n<hr \/>\n<h1>\u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 (Best Practices)<\/h1>\n<ul>\n<li>\u0647\u0631 \u0645\u0627\u0698\u0648\u0644 \u0641\u0642\u0637 \u06cc\u06a9 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0645\u0634\u062e\u0635 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/li>\n<li>\u0627\u0632 \u06a9\u067e\u06cc \u06a9\u0631\u062f\u0646 \u06a9\u062f\u0647\u0627 \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<li>State \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a Remote \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0646\u0633\u062e\u0647 Terraform \u0631\u0627 \u0642\u0641\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0627\u0632 Naming Convention \u0645\u0634\u062e\u0635 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0631\u0627 \u0627\u0632 \u0647\u0645 \u062c\u062f\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f.<\/li>\n<li>\u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u0645\u0647\u0645 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0633 \u0631\u0627 \u0648\u0627\u0631\u062f Git \u0646\u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<hr \/>\n<h1>\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h1>\n<p>\u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc Terraform \u062a\u0623\u062b\u06cc\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645\u06cc \u0628\u0631 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc\u060c \u062a\u0648\u0633\u0639\u0647 \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062f\u0627\u0631\u062f. \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong>Modules<\/strong> \u0628\u0631\u0627\u06cc \u06a9\u062f\u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0648 <strong>Environment Separation<\/strong> \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0627 \u0631\u0639\u0627\u06cc\u062a \u0627\u06cc\u0646 \u0627\u0635\u0648\u0644\u060c \u067e\u0631\u0648\u0698\u0647 Terraform \u0634\u0645\u0627 \u062e\u0648\u0627\u0646\u0627\u062a\u0631\u060c \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc\u200c\u062a\u0631 \u0648 \u0622\u0645\u0627\u062f\u0647 \u0631\u0634\u062f \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u0627\u0632 \u0647\u0645\u0631\u0627\u0647\u06cc \u0634\u0645\u0627 \u0628\u0627 <strong><a href=\"https:\/\/parmin.cloud\/\">\u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/a><\/strong> \u0633\u067e\u0627\u0633\u06af\u0632\u0627\u0631\u06cc\u0645.<\/p>\n<div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u0648\u0642\u062a\u06cc \u06a9\u0627\u0631 \u0628\u0627 Terraform \u0631\u0627 \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0647\u0645\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u067e\u0648\u0634\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u062f \u0648 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0628\u0647\u200c\u062e\u0648\u0628\u06cc \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0645\u0627 \u0628\u0627 \u0628\u0632\u0631\u06af\u200c\u062a\u0631 \u0634\u062f\u0646 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u060c \u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u062d\u06cc\u0637\u200c\u0647\u0627 (Development\u060c Staging \u0648 Production) \u0648 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u0627\u0639\u0636\u0627\u06cc \u062a\u06cc\u0645\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0648\u0698\u0647 \u0628\u0647\u200c\u0633\u0631\u0639\u062a \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u062f\u0627\u0634\u062a\u0646 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0648 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u06cc\u0627\u0641\u062a\u0647 \u0628\u0631\u0627\u06cc [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":6468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[131],"tags":[1241,1242,1025,1243,1068],"class_list":["post-6467","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-131","tag-best-practices-terraform","tag-terraform-modules","tag--terraform","tag---terraform","tag----terraform"],"aioseo_notices":[],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=6467"}],"version-history":[{"count":1,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6467\/revisions"}],"predecessor-version":[{"id":6469,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6467\/revisions\/6469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/6468"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=6467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=6467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=6467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}