diff --git a/.gitignore b/.gitignore
index 492dd61..dfab1a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,8 @@
 .checkstyle
 .externalToolBuilders
 oap-server/oal-grammar/**/gen/
+aws/.terraform/
+aws/.terraform.lock.hcl
 
 # This serves as a template but will ONLY be updated when building a source release tar,
 # so we don't track future updates of this file.
diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg
new file mode 100644
index 0000000..c11055e
--- /dev/null
+++ b/ansible/ansible.cfg
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+[defaults]
+inventory = inventory/
+timeout = 60
+
+[privilege_escalation]
+become = yes
+become_method = sudo
+become_flags = 'su -c'
diff --git a/ansible/inventory/hosts b/ansible/inventory/hosts
new file mode 100644
index 0000000..ae1e83e
--- /dev/null
+++ b/ansible/inventory/hosts
@@ -0,0 +1,14 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/ansible/playbooks/ping.yml b/ansible/playbooks/ping.yml
new file mode 100644
index 0000000..beba91e
--- /dev/null
+++ b/ansible/playbooks/ping.yml
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+- name: Ping hosts
+  hosts: skywalking_server
+  gather_facts: false
+
+  tasks:
+    - name: Ping the hosts
+      ping:
diff --git a/aws/ec2.tf b/aws/ec2.tf
new file mode 100644
index 0000000..c4d4f7b
--- /dev/null
+++ b/aws/ec2.tf
@@ -0,0 +1,46 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+resource "aws_instance" "skywalking" {
+  ami = "ami-026ebd4cfe2c043b2"
+  instance_type = "t2.medium"
+  tags = {
+    Name = "skywalking-terraform"
+    Description = "Skywalking installed on RHEL"
+  }
+  vpc_security_group_ids = [ aws_security_group.ssh-access.id ]
+}
+
+resource "aws_security_group" "ssh-access" {
+  name = "ssh-access"
+  description = "Allow SSH access from the Internet"
+  ingress = [
+    {
+      from_port = 22
+      to_port = 22
+      protocol = "tcp"
+      cidr_blocks = ["0.0.0.0/0"]
+      description     = "SSH access rule"
+      ipv6_cidr_blocks = []
+      prefix_list_ids = []
+      security_groups = []
+      self            = false
+    }
+  ]
+}
+
+output publicip {
+  value = aws_instance.skywalking.public_ip
+}
diff --git a/aws/provider.tf b/aws/provider.tf
new file mode 100644
index 0000000..6b18cca
--- /dev/null
+++ b/aws/provider.tf
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+provider "aws" {
+    region = "us-east-1"
+}
