OSSの作成

AlibabaCloudの基本プロダクトサービスであるObject Storage Serviceの作成方法を解説します。

1. OSS

  Object Storage Service (OSS)は、クラウド内の任意の量のデータの保存、バックアップ、およびアーカイブを可能にするストレージサービスです。


2. コンポーネント

  OSSはTerraform モジュールを使用して、バケットとオブジェクトを管理できます。 例として、

などが上げられます。


3. OSSのTerraformについて

  本題、OSS作成に移ります。プライベートバケットを作成するという簡単なソースを作ってみます。

resource "alicloud_oss_bucket" "bucket-acl"{
  bucket = "bucket-170309-acl"
  acl = "private"
}

alicloud_oss_bucket

他、OSSに関してはalicloud_oss_bucketだけで色々なリソース作成が可能です。例えば以下の例があります。


静的Webサイト

resource "alicloud_oss_bucket" "bucket-website" {
  bucket = "bucket-170309-website"

  website = {
    index_document = "index.html"
    error_document = "error.html"
  }
}


ロギングを有効化

resource "alicloud_oss_bucket" "bucket-target"{
  bucket = "bucket-170309-acl"
  acl = "public-read"
}

resource "alicloud_oss_bucket" "bucket-logging" {
  bucket = "bucket-170309-logging"

  logging {
    target_bucket = "${alicloud_oss_bucket.bucket-target.id}"
    target_prefix = "log/"
  }
}


参照元の構成確認

resource "alicloud_oss_bucket" "bucket-referer" {
  bucket = "bucket-170309-referer"
  acl = "private"

  referer_config {
      allow_empty = false
      referers = ["http://www.aliyun.com", "https://www.aliyun.com"]
  }
}


OSSライフサイクルルールの設定

resource "alicloud_oss_bucket" "bucket-lifecycle" {
  bucket = "bucket-170309-lifecycle"
  acl = "public-read"

  lifecycle_rule {
    id = "rule-days"
    prefix = "path1/"
    enabled = true

    expiration {
      days = 365
    }
  }
  lifecycle_rule {
    id = "rule-date"
    prefix = "path2/"
    enabled = true

    expiration {
      date = "2018-01-12"
    }
  }
}


バケットのアクセスポリシー設定

resource "alicloud_oss_bucket" "bucket-policy" {
  bucket = "bucket-170309-policy"
  acl = "private"

  policy = <<POLICY
  {"Statement":
      [{"Action":
          ["oss:PutObject", "oss:GetObject", "oss:DeleteBucket"],
        "Effect":"Allow",
        "Resource":
            ["acs:oss:*:*:*"]}],
   "Version":"1"}
  POLICY
}


低コストアクセスソリューション(IA)を実施

resource "alicloud_oss_bucket" "bucket-storageclass"{
  bucket = "bucket-170309-storageclass"
  storage_class = "IA"
}


バケットにて暗号化ルールを付与

resource "alicloud_oss_bucket" "bucket-sserule"{
  bucket = "bucket-170309-sserule"
  acl = "private"

  server_side_encryption_rule {
    sse_algorithm = "AES256"
  }
}


バケットにタグを付与

resource "alicloud_oss_bucket" "bucket-tags"{
  bucket = "bucket-170309-tags"
  acl = "private"

  tags {
    key1 = "value1"
    key2 = "value2"
  }
}


バケットのバージョニングを有効化

resource "alicloud_oss_bucket" "bucket-versioning"{
  bucket = "bucket-170309-versioning"
  acl = "private"

  versioning {
    status = "Enabled"
  }
}

他に入力パラメータ、出力パラメータがいくつかありますので、こちらも是非参照してみてください。 https://www.terraform.io/docs/providers/alicloud/r/oss_bucket.html


以下にOSSの実際のサンプルを入れていますので、こちらも参照してみてください。

example: Webアプリケーションの構築