💭

dbt docsで作成したドキュメントをAmazon S3でホスティングする

2023/03/21に公開

はじめに

dbtで作成したドキュメントをAWS S3にホスティングする方法を書きます。

手順

1. ホスト用のS3バケットを作成

  • バケット名を入力します
  • 「バケットを作成」を押下します
  • 「パブリックアクセスをブロックするチェック」を外してください
  • (アクセス権限は適宜修正してください)

2. 「プロパティ」から「静的ウェブサイトホスティング」を編集

  • 「プロパティ」を押下します
  • 「静的ウェブサイトホスティング」の「編集」を押下します

3. 「静的ウェブサイトホスティング」を編集

  • 「静的ウェブサイトホスティング」を「有効」にします
  • 「ホスティングタイプ」を「静的ウェブサイトをホストする」にします
  • 「インデックスドキュメント」を入力します(例:index.html)

4. バケットポリシーを編集

  • 「バケットポリシー」の欄に下記のjsonファイルを張り付けます
  • バケット名は修正します
{
  "Id": "Policy1679385310623",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1679385306811",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::{バケット名}/*",
      "Principal": "*"
    }
  ]
}

5. 作成したバケットにファイルをアップロード

  • バケットにdbtドキュメントで使用するファイルをアップロードしていきます
  • dbtで使用するドキュメントは下記になります。「dbt docs generate」で作成してください
    • index.html
    • catalog.json
    • manifest.json

6. ドキュメントを開く

  • 再度「プロパティ」⇒「静的ウェブサイトホスティング」に遷移します
  • 作成したURLを押下します
  • dbtのドキュメントを確認でします

おわりに

サクッとホスティングできることが分かりました。権限周りは実務で使うなら修正が必要だと思います。また今後はmainブランチにプッシュした際に、ドキュメントが更新されるように対応していきたいです。

Discussion