Skip to content

Commit 7d50c81

Browse files
Merge pull request #73 from anyscale/mas/decisions-doc
Pre-deployment decisions doc
2 parents 5fd6ed4 + f021cd3 commit 7d50c81

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

getting-started.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,5 +133,76 @@ terraform destroy -var-file="terraform.tfvars"
133133
```
134134
Type 'yes' when prompted to confirm the resource destruction.
135135

136+
## Decisions & Preferences
137+
138+
Before deploying the Anyscale platform, certain decisions need to be made with regards to the infrasture preferences and design. The following section outlines the major ones. Going over these before deployment can speed up the process:
139+
140+
### 1. Networking Architecture
141+
- Direct Networking (simple): Public subnets, public IPs, internet-facing
142+
- Customer Defined Networking (enterprise): Private subnets, NAT gateways, more secure
143+
- **Decision:** Most enterprises choose Customer Defined with --private-network flag
144+
145+
### 2. VPC Strategy
146+
- New VPC: Create dedicated (recommended /16 CIDR like 10.0.0.0/16)
147+
- Existing VPC: Integrate with current network infrastructure
148+
- **Decision:** Do you have existing VPC requirements or create new?
149+
150+
### 3. Subnet Design
151+
- Number: Minimum 2, recommended 3+ for multi-AZ
152+
- Size: /22 CIDR (1,024 IPs each) recommended
153+
- Type: Public only vs Private with NAT
154+
- **Decision:** How many subnets and in which availability zones?
155+
156+
### 4. Access Control
157+
- Ingress CIDR ranges: Which IPs can access clusters (office, VPN, CI/CD)
158+
- SSH access: Enable port 22 or use SSM only?
159+
- Machine pools: Up to 2 CIDR ranges maximum (AWS limit)
160+
- **Decision:** Define your security_group_ingress_allow_access_from_cidr_range
161+
162+
### 5. IAM Configuration
163+
- External ID: Use format org_id-custom_string for enhanced security
164+
- CloudWatch logs: Enable cluster logging to CloudWatch?
165+
- Custom policies: Additional permissions for Secrets Manager, RDS, etc.?
166+
- **Decision:** What additional AWS services will clusters need?
167+
168+
### 6. Storage Options
169+
S3 Bucket:
170+
- New dedicated vs existing bucket
171+
- Encryption: AES256 (default) or KMS
172+
- Lifecycle policies for cost optimization
173+
- **Decision:** KMS encryption required by compliance?
174+
175+
EFS (Optional):
176+
- Shared cluster storage
177+
- **Decision:** Set create_efs_resources true/false
178+
179+
MemoryDB (Optional):
180+
- Head node fault tolerance for Services
181+
- **Decision:** Set create_memorydb_resources true/false (recommend true for production)
182+
183+
### 7. Region & Availability
184+
- Region: Which AWS region? (no China/GovCloud)
185+
- Multi-AZ: Distribute across 2-3 availability zones
186+
- VPC Endpoints: Create S3 endpoint for cost/performance?
187+
- **Decision:** Primary region and DR strategy?
188+
189+
### 8. Resource Naming
190+
- Common naming: Use use_common_name=true for consistency
191+
- Prefix: Define common_prefix (e.g., "company-anyscale-")
192+
- Tags: Cost center, environment, owner tags
193+
- **Decision:** Naming convention and tagging strategy
194+
195+
### 9. Environment Strategy
196+
- Separation: Separate clouds per environment or shared?
197+
- Deployment env: Set anyscale_deploy_env (dev/staging/prod)
198+
- **Decision:** How many Anyscale clouds needed?
199+
200+
### 10. Compliance & Security
201+
- AWS Account: Dedicated or shared account?
202+
- KMS keys: Customer-managed keys required?
203+
- Audit logging: CloudWatch logs enabled?
204+
- **Decision:** What are your compliance requirements?
205+
206+
136207
## Conclusion
137208
In this guide, we have covered how to set up and use Terraform with Amazon Web Services from a local laptop. We used the Anyscale AWS cloudfoundation module to create resources based on the anyscale-v2-commonname example. Now you can create and manage your infrastructure on AWS using Terraform and the Anyscale module.

0 commit comments

Comments
 (0)