2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM Cloud Object Storage(ICOS)のバケットが削除できない場合の対処法について

Last updated at Posted at 2024-08-09

はじめに

自身が作成したICOSのバケットを削除する際、バケット内が空であるはずなのにバケット削除が出来ず困ったので、解決法をメモ書き程度ですがまとめておきました。

結論から述べるとバケット内に古いバージョンのオブジェクトおよび削除マーカーが残っていることが原因で削除が出来なくなっていました。一度でもバージョニングの設定をオンにしているとオブジェクトを全て削除しても過去に保存したオブジェクトの古いバージョンであったり削除マーカーが残ってしまうそうです。

ですのでこれらを削除してからバケットの削除を実施する必要があります。
削除方法として本記事でs3APIを使用した削除方法を記載します。

参考元としては以下の記事を使用しています。
AWS CLI を使ってバージョニングが有効化された Amazon S3 バケットを空にしてみた

環境確認

今回使用する環境は以下の通りです。
IBM Cloud Object Storage(Standartプラン), Smart Tierバケット(region : jp-osa)

バケット内が空のはずですが、バケットの削除に失敗する状態です。

スクリーンショット 2024-08-09 15.18.36.png

スクリーンショット 2024-08-09 15.18.46.png

バージョニング設定をオンにして確認してみると過去のバージョンや削除マーカーが残っていることが確認できます。

スクリーンショット 2024-08-09 15.19.15.png

また、実施手順でaws CLIを使用するのであらかじめインストールする必要があります。

実施手順

1. aws configの設定

はじめに対象となるICOSのサービス資格情報を登録します。
資格情報はポータルのICOSメニューから「サービス資格情報」→「新規資格情報」で作成できます。
S3互換性のある資格情報が必要なので作成時に「HMAC資格情報を含める」をオンにしてください。

作成後、「cos_hmac_keys」の二つの値をaws configureに入力します。

$ aws configure
AWS Access Key ID : $ACCESSKEYID
AWS Secret Access Key : $SECRETACCESSKEY
Default region name : $REGION
Default output format : json

regionは対象となるバケットのリージョンを入力します。(今回はjp-osa)

2. Version + DeleteMakersの削除

続いてs3apiを用いてVersionsとDeleteMarkersの削除を実施します。

$ aws --endpoint-url https://$ENDPOINT s3api delete-objects --bucket $BUCKETNAME --delete "$(aws --endpoint-url https://$ENDPOINT s3api list-object-versions --bucket $BUCKETNAME | jq '.Versions + .DeleteMarkers | {Objects: map({Key, VersionId})}')"
{
    "Deleted": [
        {
            "Key": "test1.png",
            "VersionId": "00000185-38b7-1295-06e3-7b14c1c37404"
        },
        {
            "Key": "test2.png",
            "VersionId": "0000018d-1706-10f5-06c2-5b9272eb7cd9",
            "DeleteMarker": true,
            "DeleteMarkerVersionId": "0000018d-1706-10f5-06c2-5b9272eb7cd9"
        },
        ...
    ]
}

deletedで削除しきれなかった過去versionやdeletemakerが削除されていることが確認できます。
実際にこの後にバケットの削除を実施すると削除することができました。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?