{"id":48533,"date":"2022-12-21T19:45:30","date_gmt":"2022-12-13T17:41:26","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/"},"modified":"2024-04-29T06:23:07","modified_gmt":"2024-04-28T22:23:07","slug":"%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/","title":{"rendered":"\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c"},"content":{"rendered":"<h2>\u4e3a\u4e86\u4ec0\u4e48\u800c\u505a<\/h2>\n<p>\u4f7f\u7528Terraform\u6784\u5efaEC2\u4e0a\u5b89\u88c5Nginx\u5e76\u80fd\u591f\u4ece\u6d4f\u89c8\u5668\u4e0a\u786e\u8ba4\u8bbf\u95ee\u9ed8\u8ba4\u9875\u9762\u7684\u72b6\u6001\u662f\u6211\u4eec\u7684\u76ee\u6807\u3002<br \/>\n\u901a\u8fc7\u5c06\u57fa\u7840\u8bbe\u65bd\u6784\u5efa\u7528Terraform\u7f16\u7801\uff0c\u76f8\u6bd4\u624b\u52a8\u64cd\u4f5c\uff0c\u6211\u4eec\u80fd\u591f\u83b7\u5f97\u66f4\u9ad8\u7684\u53ef\u590d\u5236\u6027\u3001\u53ef\u91cd\u7528\u6027\u548c\u901f\u5ea6\u3002<br \/>\nGitHub\u94fe\u63a5<\/p>\n<h3>\u64cd\u4f5c\u6b65\u9aa4<\/h3>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u5c06Terraform\u914d\u7f6e\u4e3a\u53ef\u4ee5\u64cd\u4f5cAWS\u8d44\u6e90<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u5b89\u88c5Terraform<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u51c6\u5907\u7f51\u7edc\u73af\u5883\uff08VPC\u3001\u5b50\u7f51\u3001\u8def\u7531\u8868\u3001\u4e92\u8054\u7f51\u7f51\u5173\uff09<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u8bbe\u7f6e\u5b89\u5168\u7ec4\uff08\u9632\u706b\u5899\uff09<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u542f\u52a8Web\u670d\u52a1\u5668\u7684EC2\u5b9e\u4f8b<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u5728\u542f\u52a8Web\u670d\u52a1\u5668\u65f6\u8bbe\u7f6e\u5b89\u88c5Web\u670d\u52a1\u5668\u8f6f\u4ef6\u7684\u914d\u7f6e<\/ol>\n<h4>\u672c\u6b21\u7684\u76ee\u6a19\u9054\u6210<\/h4>\n<p>\u8ba9\u6211\u4eec\u8bd5\u7740\u4f7f\u7528 Terraform \u6765\u542f\u52a8 EC2 \u670d\u52a1\u5668\u3002<\/p>\n<h5>\u7b2c0\u6b65\uff1a\u521b\u5efa\u5de5\u4f5c\u76ee\u5f55<\/h5>\n<p>\u5728\u7528\u6237\u76ee\u5f55\u4e0b\u7684\u4efb\u610f\u4f4d\u7f6e\u521b\u5efaterraform\u76ee\u5f55\u3002(\u56e0\u4e3a\u5982\u679c\u4e0d\u5728\u7528\u6237\u76ee\u5f55\u4e0b\u4f1a\u53d1\u751f\u6743\u9650\u95ee\u9898)<br \/>\nC:\\Users[\u7528\u6237\u540d]\\Documents\\MyProject\\terraform<\/p>\n<h5>\u7b2c\u4e00\u6b65\uff1a\u521b\u5efatf\u6587\u4ef6<\/h5>\n<p>\u6587\u4ef6\u540d\uff1amain.tf\uff08\u6587\u4ef6\u540d\u53ef\u968f\u610f\u66f4\u6539\uff0c\u5176\u4ed6\u540d\u79f0\u4e5f\u53ef\u4ee5\u4f7f\u7528\uff09<\/p>\n<p>\u8bf7\u6309\u7167\u4ee5\u4e0b\u65b9\u5f0f\u521b\u5efa\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">provider<\/span> <span class=\"s2\">\"aws\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">profile<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"terraform\"<\/span>\r\n  <span class=\"nx\">region<\/span>  <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">resource<\/span> <span class=\"s2\">\"aws_instance\"<\/span> <span class=\"s2\">\"web_server\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">ami<\/span>                         <span class=\"p\">=<\/span> <span class=\"s2\">\"ami-0cfc97bf81f2eadc4\"<\/span>\r\n  <span class=\"nx\">instance_type<\/span>               <span class=\"p\">=<\/span> <span class=\"s2\">\"t2.micro\"<\/span>\r\n\r\n  <span class=\"nx\">tags<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">Name<\/span>    <span class=\"p\">=<\/span> <span class=\"s2\">\"terraform-web-server\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h5>\u6b65\u9aa42. \u521d\u59cb\u5316Terraform<\/h5>\n<p>\u6267\u884c\u8be5\u547d\u4ee4\u5c06\u4f1a\u521b\u5efa\u5404\u79cd\u914d\u7f6e\u6587\u4ef6\u7b49\u7b49\u3002<br \/>\n\u5728\u4e2d\u9014\u9700\u8981\u8f93\u5165&#8221;yes&#8221;\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\nInitializing the backend...\r\n\r\nInitializing provider plugins...\r\n- Finding latest version of hashicorp\/aws...\r\n- Installing hashicorp\/aws v5.5.0...\r\n- Installed hashicorp\/aws v5.5.0 (self-signed, key ID 34365D9472D7468F)       \r\n\r\nPartner and community providers are signed by their developers.\r\nIf you'd like to know more about provider signing, you can read about it here:\r\nhttps:\/\/www.terraform.io\/docs\/cli\/plugins\/signing.html\r\n\r\nTerraform has created a lock file .terraform.lock.hcl to record the provider  \r\nselections it made above. Include this file in your version control repository\r\nso that Terraform can guarantee to make the same selections by default when   \r\nyou run \"terraform init\" in the future.\r\n<\/code><\/pre>\n<h5>\u7b2c\u4e09\u6b65\uff1atf\u6587\u4ef6\u7684\u683c\u5f0f\u3002<\/h5>\n<p>\u5efa\u8bae\u60a8\u5728\u7f16\u8f91\u6587\u4ef6\u65f6\uff0c\u5229\u7528\u4e00\u4e2a\u80fd\u591f\u81ea\u52a8\u5bf9\u9f50\u7f29\u8fdb\u7684\u4fbf\u5229\u547d\u4ee4\uff0c\u4ee5\u4fbf\u5728\u9002\u5f53\u7684\u65f6\u673a\u8fdb\u884c\u683c\u5f0f\u5316\uff0c\u4f7f\u5176\u66f4\u52a0\u6574\u6d01\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform fmt\r\nmain.tf\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u770b\u51fa\uff0c\u4e3b.tf\u6587\u4ef6\u5df2\u7ecf\u88ab\u683c\u5f0f\u5316\u4e86\u3002<\/p>\n<h5>\u7b2c\u56db\u6b65\uff0c\u68c0\u67e5\u6267\u884ctf\u6587\u4ef6\u65f6\u7684\u66f4\u6539\u5185\u5bb9\u3002<\/h5>\n<p>\u5f53\u6267\u884c Terraform \u65f6\uff0c\u4f1a\u5bf9 AWS \u8d44\u6e90\u8fdb\u884c\u66f4\u6539\uff0c\u4f46\u6709\u4e00\u79cd\u547d\u4ee4\u53ef\u4ec5\u786e\u8ba4\u66f4\u6539\u5185\u5bb9\u800c\u4e0d\u5e94\u7528\u66f4\u6539\u672c\u8eab\u3002\u7531\u4e8e AWS \u4f7f\u7528\u8d39\u7528\u9ad8\u4e14\u62e5\u6709\u91cd\u8981\u8d44\u4ea7\uff0c\u56e0\u6b64\u5e94\u517b\u6210\u5728\u6267\u884c\u524d\u5148\u786e\u8ba4 Terraform \u5185\u5bb9\u662f\u5426\u53ef\u4ee5\u5b89\u5168\u5e94\u7528\u7684\u4e60\u60ef\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform plan\r\nAn execution plan has been generated and is shown below.\r\nResource actions are indicated with the following symbols:\r\n  + create\r\n\r\nTerraform will perform the following actions:\r\n\r\n  # aws_instance.web_server will be created\r\n  + resource \"aws_instance\" \"web_server\" {\r\n      + ami                                  = \"ami-0cfc97bf81f2eadc4\"\r\n      + arn                                  = (known after apply)\r\n      + associate_public_ip_address          = (known after apply)\r\n      + availability_zone                    = (known after apply)\r\n      + cpu_core_count                       = (known after apply)\r\n      + cpu_threads_per_core                 = (known after apply)\r\n      + disable_api_stop                     = (known after apply)\r\n      + disable_api_termination              = (known after apply)\r\n      + ebs_optimized                        = (known after apply)\r\n      + get_password_data                    = false\r\n      + host_id                              = (known after apply)\r\n      + host_resource_group_arn              = (known after apply)\r\n      + iam_instance_profile                 = (known after apply)\r\n      + id                                   = (known after apply)\r\n      + instance_initiated_shutdown_behavior = (known after apply)\r\n      + instance_lifecycle                   = (known after apply)\r\n      + instance_state                       = (known after apply)\r\n      + instance_type                        = \"t2.micro\"\r\n      + ipv6_address_count                   = (known after apply)\r\n      + ipv6_addresses                       = (known after apply)\r\n      + key_name                             = (known after apply)\r\n      + monitoring                           = (known after apply)\r\n      + outpost_arn                          = (known after apply)\r\n      + password_data                        = (known after apply)\r\n      + placement_group                      = (known after apply)\r\n      + placement_partition_number           = (known after apply)\r\n      + primary_network_interface_id         = (known after apply)\r\n      + private_dns                          = (known after apply)\r\n      + private_ip                           = (known after apply)\r\n      + public_dns                           = (known after apply)\r\n      + public_ip                            = (known after apply)\r\n      + secondary_private_ips                = (known after apply)\r\n      + security_groups                      = (known after apply)\r\n      + source_dest_check                    = true\r\n      + spot_instance_request_id             = (known after apply)\r\n      + subnet_id                            = (known after apply)\r\n      + tags                                 = {\r\n          + \"Name\" = \"terraform-web-server\"\r\n        }\r\n      + tags_all                             = {\r\n          + \"Name\" = \"terraform-web-server\"\r\n        }\r\n      + tenancy                              = (known after apply)\r\n      + user_data                            = (known after apply)\r\n      + user_data_base64                     = (known after apply)\r\n      + user_data_replace_on_change          = false\r\n      + vpc_security_group_ids               = (known after apply)\r\n\r\n      + capacity_reservation_specification {\r\n          + capacity_reservation_preference = (known after apply)\r\n\r\n          + capacity_reservation_target {\r\n              + capacity_reservation_id                 = (known after apply)\r\n              + capacity_reservation_resource_group_arn = (known after apply)\r\n            }\r\n        }\r\n\r\n      + cpu_options {\r\n          + amd_sev_snp      = (known after apply)\r\n          + core_count       = (known after apply)\r\n          + threads_per_core = (known after apply)\r\n        }\r\n\r\n      + ebs_block_device {\r\n          + delete_on_termination = (known after apply)\r\n          + device_name           = (known after apply)\r\n          + encrypted             = (known after apply)\r\n          + iops                  = (known after apply)\r\n          + kms_key_id            = (known after apply)\r\n          + snapshot_id           = (known after apply)\r\n          + tags                  = (known after apply)\r\n          + throughput            = (known after apply)\r\n          + volume_id             = (known after apply)\r\n          + volume_size           = (known after apply)\r\n          + volume_type           = (known after apply)\r\n        }\r\n\r\n      + enclave_options {\r\n          + enabled = (known after apply)\r\n        }\r\n\r\n      + ephemeral_block_device {\r\n          + device_name  = (known after apply)\r\n          + no_device    = (known after apply)\r\n          + virtual_name = (known after apply)\r\n        }\r\n\r\n      + instance_market_options {\r\n          + market_type = (known after apply)\r\n\r\n          + spot_options {\r\n              + instance_interruption_behavior = (known after apply)\r\n              + max_price                      = (known after apply)\r\n              + spot_instance_type             = (known after apply)\r\n              + valid_until                    = (known after apply)\r\n            }\r\n        }\r\n\r\n      + maintenance_options {\r\n          + auto_recovery = (known after apply)\r\n        }\r\n\r\n      + metadata_options {\r\n          + http_endpoint               = (known after apply)\r\n          + http_put_response_hop_limit = (known after apply)\r\n          + http_tokens                 = (known after apply)\r\n          + instance_metadata_tags      = (known after apply)\r\n        }\r\n\r\n      + network_interface {\r\n          + delete_on_termination = (known after apply)\r\n          + device_index          = (known after apply)\r\n          + network_card_index    = (known after apply)\r\n          + network_interface_id  = (known after apply)\r\n        }\r\n\r\n      + private_dns_name_options {\r\n          + enable_resource_name_dns_a_record    = (known after apply)\r\n          + enable_resource_name_dns_aaaa_record = (known after apply)\r\n          + hostname_type                        = (known after apply)\r\n        }\r\n\r\n      + root_block_device {\r\n          + delete_on_termination = (known after apply)\r\n          + device_name           = (known after apply)\r\n          + encrypted             = (known after apply)\r\n          + iops                  = (known after apply)\r\n          + kms_key_id            = (known after apply)\r\n          + tags                  = (known after apply)\r\n          + throughput            = (known after apply)\r\n          + volume_id             = (known after apply)\r\n          + volume_size           = (known after apply)\r\n          + volume_type           = (known after apply)\r\n        }\r\n    }\r\n\r\nPlan: 1 to add, 0 to change, 0 to destroy.\r\n\r\n------------------------------------------------------------------------\r\n\r\nNote: You didn't specify an \"-out\" parameter to save this plan, so Terraform\r\ncan't guarantee that exactly these actions will be performed if\r\n\"terraform apply\" is subsequently run.\r\n<\/code><\/pre>\n<p>\u8be6\u7ec6\u7684\u4fe1\u606f\u4e2d\u5199\u7740\u8981\u7528\u540d\u4e3aterraform-web-server\u7684\u540d\u79f0\u521b\u5efaEC2\u670d\u52a1\u5668\uff01<\/p>\n<h5>\u6b65\u9aa45. \u5c1d\u8bd5\u6267\u884ctf\u6587\u4ef6(create\u90e8\u5206)\u3002<\/h5>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85a4913a08637a6b9be3\/23-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u901a\u8fc7\u5728 &#8220;terraform apply&#8221; \u547d\u4ee4\u540e\u6dfb\u52a0 &#8220;-auto-approve&#8221; \u9009\u9879\uff0c\u65e0\u9700\u8f93\u5165 &#8220;yes&#8221;\u3002<br \/>\n\uff08\u5982\u679c\u62c5\u5fc3\u7684\u8bdd\uff0c\u8bf7\u4e0d\u8981\u6dfb\u52a0 &#8220;-auto-approve&#8221; \u9009\u9879\uff09<\/p>\n<pre class=\"post-pre\"><code>$ terraform apply -auto-approve\r\n\r\naws_instance.web_server: Creating...\r\naws_instance.web_server: Still creating... [10s elapsed]\r\naws_instance.web_server: Still creating... [20s elapsed]\r\naws_instance.web_server: Still creating... [30s elapsed]\r\naws_instance.web_server: Creation complete after 32s [id=i-032d287a9619a06fe]\r\n\r\nApply complete! Resources: 1 added, 0 changed, 0 destroyed.\r\n<\/code><\/pre>\n<p>\u7a0d\u7b49\u4e00\u4e0b\uff0c\u4f1a\u663e\u793a\u4e00\u6761\u6d88\u606f\uff0c\u4e0a\u9762\u5199\u7740\u6dfb\u52a0\u4e86\u4e00\u4e2a\u8d44\u6e90\uff08\u8fd9\u6b21\u662fEC2\u5b9e\u4f8b\uff09\uff01<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85a4913a08637a6b9be3\/27-0.png\" alt=\"image.png\" \/><\/div>\n<h5>\u7b2c\u516d\u6b65\uff1a\u5c1d\u8bd5\u6267\u884ctf\u6587\u4ef6\uff08\u9500\u6bc1\u90e8\u5206\uff09<\/h5>\n<p>\u7531\u4e8e\u542f\u52a8EC2\u670d\u52a1\u5668\u4f1a\u82b1\u8d39\u91d1\u94b1\uff0c\u6240\u4ee5\u6700\u597d\u5c06\u5176\u5220\u9664\u3002<br \/>\n\u5220\u9664\u4e5f\u5f88\u5bb9\u6613\uff0c\u53ea\u9700\u4e00\u4e2a\u547d\u4ee4\u5373\u53ef\u3002<br \/>\n\u867d\u7136\u5728\u8fc7\u7a0b\u4e2d\u9700\u8981\u8f93\u5165&#8221;yes&#8221;\uff0c\u4f46\u901a\u8fc7\u6dfb\u52a0&#8221;-auto-approve&#8221;\u9009\u9879\uff0c\u5c31\u4e0d\u518d\u9700\u8981\u8f93\u5165&#8221;yes&#8221;\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform destroy\r\n\r\nAn execution plan has been generated and is shown below.\r\nResource actions are indicated with the following symbols:\r\n  - destroy\r\n\r\nTerraform will perform the following actions:\r\n\r\n  # aws_instance.web_server will be destroyed\r\n  - resource \"aws_instance\" \"web_server\" {\r\n      - ami                                  = \"ami-0cfc97bf81f2eadc4\" -&gt; null\r\n      - arn                                  = \"arn:aws:ec2:ap-northeast-1:146193870787:instance\/i-032d287a9619a06fe\" -&gt; null\r\n      - associate_public_ip_address          = true -&gt; null\r\n      - availability_zone                    = \"ap-northeast-1a\" -&gt; null\r\n      - cpu_core_count                       = 1 -&gt; null\r\n      - cpu_threads_per_core                 = 1 -&gt; null\r\n      - disable_api_stop                     = false -&gt; null\r\n      - disable_api_termination              = false -&gt; null\r\n      - ebs_optimized                        = false -&gt; null\r\n      - get_password_data                    = false -&gt; null\r\n      - hibernation                          = false -&gt; null\r\n      - id                                   = \"i-032d287a9619a06fe\" -&gt; null\r\n      - instance_initiated_shutdown_behavior = \"stop\" -&gt; null\r\n      - instance_state                       = \"running\" -&gt; null\r\n      - instance_type                        = \"t2.micro\" -&gt; null\r\n      - ipv6_address_count                   = 0 -&gt; null\r\n      - ipv6_addresses                       = [] -&gt; null\r\n      - monitoring                           = false -&gt; null\r\n      - placement_partition_number           = 0 -&gt; null\r\n      - primary_network_interface_id         = \"eni-09c10b073115e15d8\" -&gt; null\r\n      - private_dns                          = \"ip-172-31-46-191.ap-northeast-1.compute.internal\" -&gt; null\r\n      - private_ip                           = \"172.31.46.191\" -&gt; null\r\n      - public_dns                           = \"ec2-13-113-106-156.ap-northeast-1.compute.amazonaws.com\" -&gt; null\r\n      - public_ip                            = \"13.113.106.156\" -&gt; null\r\n      - secondary_private_ips                = [] -&gt; null\r\n      - security_groups                      = [\r\n          - \"default\",\r\n        ] -&gt; null\r\n      - source_dest_check                    = true -&gt; null\r\n      - subnet_id                            = \"subnet-0bf5fa8ca16b2b02e\" -&gt; null\r\n      - tags                                 = {\r\n          - \"Name\" = \"terraform-web-server\"\r\n        } -&gt; null\r\n      - tags_all                             = {\r\n          - \"Name\" = \"terraform-web-server\"\r\n        } -&gt; null\r\n      - tenancy                              = \"default\" -&gt; null\r\n      - user_data_replace_on_change          = false -&gt; null\r\n      - vpc_security_group_ids               = [\r\n          - \"sg-01a0b7a001e3c013e\",\r\n        ] -&gt; null\r\n\r\n      - capacity_reservation_specification {\r\n          - capacity_reservation_preference = \"open\" -&gt; null\r\n        }\r\n\r\n      - cpu_options {\r\n          - core_count       = 1 -&gt; null\r\n          - threads_per_core = 1 -&gt; null\r\n        }\r\n\r\n      - credit_specification {\r\n          - cpu_credits = \"standard\" -&gt; null\r\n        }\r\n\r\n      - enclave_options {\r\n          - enabled = false -&gt; null\r\n        }\r\n\r\n      - maintenance_options {\r\n          - auto_recovery = \"default\" -&gt; null\r\n        }\r\n\r\n      - metadata_options {\r\n          - http_endpoint               = \"enabled\" -&gt; null\r\n          - http_put_response_hop_limit = 2 -&gt; null\r\n          - http_tokens                 = \"required\" -&gt; null\r\n          - instance_metadata_tags      = \"disabled\" -&gt; null\r\n        }\r\n\r\n      - private_dns_name_options {\r\n          - enable_resource_name_dns_a_record    = false -&gt; null\r\n          - enable_resource_name_dns_aaaa_record = false -&gt; null\r\n          - hostname_type                        = \"ip-name\" -&gt; null\r\n        }\r\n\r\n      - root_block_device {\r\n          - delete_on_termination = true -&gt; null\r\n          - device_name           = \"\/dev\/xvda\" -&gt; null\r\n          - encrypted             = false -&gt; null\r\n          - iops                  = 3000 -&gt; null\r\n          - tags                  = {} -&gt; null\r\n          - throughput            = 125 -&gt; null\r\n          - volume_id             = \"vol-07d3c71387a48c176\" -&gt; null\r\n          - volume_size           = 8 -&gt; null\r\n          - volume_type           = \"gp3\" -&gt; null\r\n        }\r\n    }\r\n\r\nPlan: 0 to add, 0 to change, 1 to destroy.\r\n\r\nDo you really want to destroy all resources?\r\n  Terraform will destroy all your managed infrastructure, as shown above.\r\n  There is no undo. Only 'yes' will be accepted to confirm.\r\n\r\n  Enter a value: yes\r\n\r\naws_instance.web_server: Destroying... [id=i-032d287a9619a06fe]\r\naws_instance.web_server: Still destroying... [id=i-032d287a9619a06fe, 10s elapsed]\r\naws_instance.web_server: Still destroying... [id=i-032d287a9619a06fe, 20s elapsed]\r\naws_instance.web_server: Destruction complete after 30s\r\n\r\nDestroy complete! Resources: 1 destroyed.\r\n<\/code><\/pre>\n<p>\u5df2\u7ecf\u5199\u660e\u4e86\u8be6\u7ec6\u4fe1\u606f\uff0c\u5220\u9664\u4e86\u540d\u4e3aterraform-web-server\u7684EC2\u670d\u52a1\u5668\uff01<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85a4913a08637a6b9be3\/32-0.png\" alt=\"image.png\" \/><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u4e3a\u4e86\u4ec0\u4e48\u800c\u505a \u4f7f\u7528Terraform\u6784\u5efaEC2\u4e0a\u5b89\u88c5Nginx\u5e76\u80fd\u591f\u4ece\u6d4f\u89c8\u5668\u4e0a\u786e\u8ba4\u8bbf\u95ee\u9ed8\u8ba4\u9875\u9762\u7684\u72b6\u6001\u662f\u6211\u4eec\u7684\u76ee [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-48533","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528terraform\u5728aws\u4e0a\u6784\u5efaweb\u670d\u52a1\u5668-3-\u301c\u5c1d\u8bd5\u4f7f\u7528terraform\u542f\u52a8ec2\u670d\u52a1\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c\" \/>\n<meta property=\"og:description\" content=\"\u4e3a\u4e86\u4ec0\u4e48\u800c\u505a \u4f7f\u7528Terraform\u6784\u5efaEC2\u4e0a\u5b89\u88c5Nginx\u5e76\u80fd\u591f\u4ece\u6d4f\u89c8\u5668\u4e0a\u786e\u8ba4\u8bbf\u95ee\u9ed8\u8ba4\u9875\u9762\u7684\u72b6\u6001\u662f\u6211\u4eec\u7684\u76ee [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528terraform\u5728aws\u4e0a\u6784\u5efaweb\u670d\u52a1\u5668-3-\u301c\u5c1d\u8bd5\u4f7f\u7528terraform\u542f\u52a8ec2\u670d\u52a1\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-13T17:41:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T22:23:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85a4913a08637a6b9be3\/23-0.png\" \/>\n<meta name=\"author\" content=\"\u5b87, \u534e\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u5b87, \u534e\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/\",\"name\":\"\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-12-13T17:41:26+00:00\",\"dateModified\":\"2024-04-28T22:23:07+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458\",\"name\":\"\u5b87, \u534e\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g\",\"caption\":\"\u5b87, \u534e\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yuhua\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528terraform\u5728aws\u4e0a\u6784\u5efaweb\u670d\u52a1\u5668-3-\u301c\u5c1d\u8bd5\u4f7f\u7528terraform\u542f\u52a8ec2\u670d\u52a1\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c","og_description":"\u4e3a\u4e86\u4ec0\u4e48\u800c\u505a \u4f7f\u7528Terraform\u6784\u5efaEC2\u4e0a\u5b89\u88c5Nginx\u5e76\u80fd\u591f\u4ece\u6d4f\u89c8\u5668\u4e0a\u786e\u8ba4\u8bbf\u95ee\u9ed8\u8ba4\u9875\u9762\u7684\u72b6\u6001\u662f\u6211\u4eec\u7684\u76ee [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528terraform\u5728aws\u4e0a\u6784\u5efaweb\u670d\u52a1\u5668-3-\u301c\u5c1d\u8bd5\u4f7f\u7528terraform\u542f\u52a8ec2\u670d\u52a1\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-12-13T17:41:26+00:00","article_modified_time":"2024-04-28T22:23:07+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85a4913a08637a6b9be3\/23-0.png"}],"author":"\u5b87, \u534e","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u5b87, \u534e","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/","name":"\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-12-13T17:41:26+00:00","dateModified":"2024-04-28T22:23:07+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Terraform\u5728AWS\u4e0a\u6784\u5efaWeb\u670d\u52a1\u5668 #3 \u301c\u5c1d\u8bd5\u4f7f\u7528Terraform\u542f\u52a8EC2\u670d\u52a1\u5668\u301c"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458","name":"\u5b87, \u534e","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g","caption":"\u5b87, \u534e"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yuhua\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e5%9c%a8aws%e4%b8%8a%e6%9e%84%e5%bb%baweb%e6%9c%8d%e5%8a%a1%e5%99%a8-3-%e3%80%9c%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8terraform%e5%90%af%e5%8a%a8ec2%e6%9c%8d%e5%8a%a1\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=48533"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48533\/revisions"}],"predecessor-version":[{"id":83579,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48533\/revisions\/83579"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=48533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=48533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=48533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}