Ответ
Да, имею обширный опыт работы с AWS, а также знаком с GCP и Azure. В основном моя работа включала:
- Развертывание и управление инфраструктурой: Использование Terraform (IaC) для декларативного описания и создания облачных ресурсов.
- Контейнеризация и оркестрация: Настройка и управление кластерами Kubernetes (EKS в AWS, GKE в GCP).
- Работа с управляемыми сервисами: Активно использовал облачные базы данных (AWS RDS, Cloud SQL), объектные хранилища (AWS S3) и очереди сообщений (AWS SQS).
- Serverless-вычисления: Разрабатывал и развертывал функции на AWS Lambda и Cloud Functions.
Пример: Список бакетов в AWS S3 с помощью Go SDK
Этот код демонстрирует базовое взаимодействие с API AWS для получения списка всех S3 бакетов в указанном регионе.
package main
import (
"fmt"
"log"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
func main() {
// Создаем сессию AWS, используя учетные данные из окружения
// или файла ~/.aws/credentials
sess, err := session.NewSession(&aws.Config{
Region: aws.String("us-east-1"), // Укажите ваш регион
})
if err != nil {
log.Fatalf("Failed to create session: %v", err)
}
// Создаем клиент для сервиса S3
svc := s3.New(sess)
// Вызываем API для получения списка бакетов
result, err := svc.ListBuckets(&s3.ListBucketsInput{})
if err != nil {
log.Fatalf("Unable to list buckets: %v", err)
}
fmt.Println("Buckets:")
for _, b := range result.Buckets {
fmt.Printf("* %sn", aws.StringValue(b.Name))
}
}
Также имею опыт настройки мониторинга и логирования с помощью CloudWatch и Prometheus/Grafana.