column
コラム
Mountpoint for Amazon S3 CSI driverを試してみた
-
TAG
EKS Mountpoint for Amazon S3 -
UPDATE
2024/01/12
実際に試した様子を記載します。
[cloudshell-user@ip-10-134-76-71 ~]$ kubectl version Client Version: v1.28.1-eks-43840fb Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 The connection to the server localhost:8080 was refused - did you specify the right host or port?
[cloudshell-user@ip-10-134-76-71 ~]$ kubectl config view apiVersion: v1 clusters: null contexts: null current-context: "" kind: Config preferences: {} users: null
aws eks update-kubeconfig --region us-west-2 --name mountpoint-s3-csi-test
kubectl config view
[cloudshell-user@ip-10-134-76-71 ~]$ aws s3 mb s3://mountpoint-s3-csi-test-20240108 make_bucket: mountpoint-s3-csi-test-20240108
参考:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "MountpointFullBucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::mountpoint-s3-csi-test-20240108" ] }, { "Sid": "MountpointFullObjectAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::mountpoint-s3-csi-test-20240108/*" ] } ] }
[cloudshell-user@ip-10-134-76-71 ~]$ kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE aws-node-4m5m9 2/2 Running 0 45m coredns-59754897cf-b6gxr 1/1 Running 0 59m coredns-59754897cf-bshqq 1/1 Running 0 59m eks-pod-identity-agent-dbnx5 1/1 Running 0 45m kube-proxy-p6dv6 1/1 Running 0 45m s3-csi-node-22r9p 3/3 Running 0 2m41s
[cloudshell-user@ip-10-134-76-71 ~]$ kubectl get pod -o yaml -n kube-system s3-csi-node-22r9p | grep -i serviceaccount: serviceAccount: s3-csi-driver-sa [cloudshell-user@ip-10-134-76-71 ~]$ kubectl get sa -n kube-system s3-csi-driver-sa -o yaml | grep -i role-arn eks.amazonaws.com/role-arn: arn:aws:iam::<ACCOUNTID>:role/AmazonEKS_S3_CSI_DriverRole-20240108
[cloudshell-user@ip-10-134-76-71 ~]$ wget https://raw.githubusercontent.com/awslabs/mountpoint-s3-csi-driver/main/examples/kubernetes/static_provisioning/non_root.yaml
[cloudshell-user@ip-10-134-76-71 ~]$ sdiff -s non_root.yaml non_root.yaml.org - allow-delete < - region us-west-2 < bucketName: mountpoint-s3-csi-test-20240108 | bucketName: s3-csi-driver
[cloudshell-user@ip-10-134-76-71 ~]$ kubectl apply -f non_root.yaml persistentvolume/s3-pv created persistentvolumeclaim/s3-claim created pod/s3-app created [cloudshell-user@ip-10-134-76-71 ~]$ kubectl get pv,pvc,pod NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE persistentvolume/s3-pv 1200Gi RWX Retain Bound default/s3-claim 30s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/s3-claim Bound s3-pv 1200Gi RWX 30s NAME READY STATUS RESTARTS AGE pod/s3-app 1/1 Running 0 30s
[cloudshell-user@ip-10-134-76-71 ~]$ kubectl exec -it s3-app -- bash bash-4.4$ mount | grep s3 mountpoint-s3 on /data type fuse (rw,nosuid,nodev,noatime,user_id=0,group_id=0,default_permissions,allow_other) bash-4.4$ cd /data/ bash-4.4$ ls 'Mon Jan 8 13:36:27 UTC 2024.txt' bash-4.4$ cat 'Mon Jan 8 13:36:27 UTC 2024.txt' Hello from the container! bash-4.4$ rm 'Mon Jan 8 13:36:27 UTC 2024.txt' bash-4.4$ ls
おわりに
制約事項も多いですが、S3をファイルシステムライクに扱えて、かつ高性能で利用できることは大きなメリットだと思います。
また、CSIに準拠したドライバーとしてアドオンが提供され、EKSアドオンとしても手軽に導入できるという点から、EKS環境でも積極的に採用できそうな下地が整っているなと感じました。
適切なワークロードに直面したら、
-
PICK UP
ピックアップ
-
ピックアップコンテンツがありません
-
RANKING
人気の記事
-
-
1
Infrastructure as Codeを理解…
Infrastructure as Codeを理解する(第1回)
2020/04/15
-
2
62人分のIAMユーザの発行と通知をLambdaと…
62人分のIAMユーザの発行と通知をLambdaとSESで自動化してみた
2023/04/05
-
3
EKSを理解する(第1回)eksctl・IAM・R…
EKSを理解する(第1回)eksctl・IAM・RBAC
2020/04/09
-
4
ECS on Fargateの良いところ ~性能・…
ECS on Fargateの良いところ ~性能・拡張性~
2022/03/28
-
5
クラウド移行とモダン化の考え方
クラウド移行とモダン化の考え方
2023/05/23
-
-
ARCHIVE
アーカイブ
-
- July 2024 (1)
- January 2024 (1)
- December 2023 (2)
- June 2023 (2)
- May 2023 (1)
- April 2023 (1)
- March 2023 (2)
- February 2023 (2)
- January 2023 (1)
- December 2022 (2)
- October 2022 (2)
- September 2022 (2)