Last weekend, I had the amazing opportunity to be a speaker at AWS Community Day Indonesia 2025. It was one of the most rewarding and eye-opening experiences in my tech journey and in this post, I’d love to share what the day was like, what I learned, and why it meant so much to me. BTW, I shared about “Building a Multi-Tenant Machine Learning Platform on AWS EKS with Ray and JupyterHub”.
Before the Event: Preparation
A few days before the event, to be honest, I felt a mix of excitement and nervousness. Even though I’ve presented in smaller settings before, speaking at a community event like this felt special and a bit more serious!
Here’s what I did to prepare:
- Finalized my presentation topic, making sure the content was practical and relevant for developers and cloud enthusiasts.
- Practiced my talk several times out loud to get comfortable with the flow.
- Set my mindset: I’m not just here to present. I’m here to connect, share, and learn from others.
That mindset shift really helped me calm down before stepping on stage.
During the Event: On Stage and Beyond
When the day finally came, the atmosphere was incredible buzzing with conversations, excitement, and passion for AWS and cloud technologies.
Some of my favorite moments were:
- Meeting so many people from the AWS community, many of whom I had only interacted with online before.
- Taking the stage to deliver my session “Building a Multi-Tenant Machine Learning Platform on AWS EKS with Ray and JupyterHub”.
- Even though I was nervous at first, once I started talking, everything clicked. It didn’t feel like a “presentation” anymore it felt like a conversation with friends who shared the same curiosity and enthusiasm.
Key Takeaways & Reflections
Looking back, here are a few lessons that really stuck with me:
-Community is everything. Behind every technology, it’s always about people learning, sharing, and growing together.
-Preparation builds confidence. The more I practiced, the more natural it felt on stage.
-Sharing is a two-way process. I came to give a talk, but I left with more insights from the audience than I expected.
-Stay adaptable. Every crowd is different. Reading the room and adjusting how you explain something is an important skill.
-Keep growing. This experience reminded me that growth doesn’t just happen behind the keyboard it happens when you step out, speak, and share what you’ve learned.
What’s Next?
To be honest, there are still many aspects I haven’t fully covered in my presentation. After this event, I plan to expand this talk into a deeper technical series exploring the end-to-end ML lifecycle using Ray on AWS.
While this session mainly focused on the infrastructure layer, there’s so much more to uncover about how Ray can power the entire machine learning pipeline from data preprocessing and distributed training with Ray Train, to hyperparameter tuning with Ray Tune, and serving models in production with Ray Serve.
In this part of the Kubernetes series, we will explore how to create a Kubernetes cluster in different environments. Whether you’re running Kubernetes locally or in the cloud, understanding how to set up a cluster is fundamental to deploying and managing containerized applications efficiently.
We will cover three different ways to create a Kubernetes cluster:
- Kind (Kubernetes in Docker) - A lightweight way to run Kubernetes clusters locally for testing and development.
- K3D (K3S in Docker) - A more lightweight Kubernetes distribution, optimized for local development and CI/CD workflows.
- EKS (Amazon Elastic Kubernetes Service) - A managed Kubernetes service provided by AWS for running Kubernetes workloads in the cloud.
Each approach has its own use cases, advantages, and trade-offs. Let’s dive into each one and see how to set up a cluster.
Setting Up a Kubernetes Cluster with Kind
Kind (Kubernetes in Docker) is one of the simplest ways to spin up a Kubernetes cluster for local development and testing. It runs Kubernetes clusters inside Docker containers and is widely used for CI/CD and development workflows.
- Verify the Pod status and then try to access Nginx using your browser:
Terminal window
$kubectlgetpods
NAMEREADYSTATUSRESTARTSAGE
nginx-676b6c5bbc-wd87x1/1Running012m
- Delete the cluster when no longer needed
Terminal window
$kinddeletecluster--namekind-cluster
Deletingcluster"kind-cluster"...
Deletednodes: ["kind-cluster-control-plane"]
Setting Up a Kubernetes Cluster with K3D
K3D is a tool that allows you to run lightweight Kubernetes clusters using K3S inside Docker. It is a great choice for fast, local Kubernetes development.
2025-02-0120:52:13 [✔] kubeconfig has been updated
2025-02-0120:52:13 [ℹ] cleaning up AWS load balancers created by Kubernetes objects of Kind Service or Ingress
2025-02-0120:52:56 [ℹ]
...
2025-02-0121:02:00 [ℹ] waiting for CloudFormation stack "eksctl-cluster-1-nodegroup-node-group-1"
2025-02-0121:02:01 [ℹ] will delete stack "eksctl-cluster-1-cluster"
2025-02-0121:02:04 [✔] all cluster resources were deleted
Conclusion
Setting up a Kubernetes cluster is the first step in running containerized applications at scale. In this guide, we’ve explored three different ways to create a Kubernetes cluster and do a simple deployment: using Kind and K3D for local development and using EKS for cloud-based deployments. Each method has its own advantages depending on your use case.