Fastly CLIの導入と実際にコマンドラインからCDNサービスを構築してみた

2024.02.27

こんにちは、AWS事業本部の平木です!

以前、FastlyとS3を使用して静的コンテンツの配信する環境を構築してみました。

調べてみると、FastlyのCDNサービスはコマンドラインツールでも作成可能なようなので、
今回はFastlyのコマンドラインツールであるFastly CLIのインストールとFastly CLIからCDNサービスを構築してみました。

Fastly CLIのインストール

Fastly CLIはMacOS、Windows、Linuxと複数のOSで使用可能です。

今回はAWS CloudShellにインストールしてみたいと思います。

まず下記リリースノートから最新バージョンの.rpmファイルをダウンロードします。

2024年2月25日現在時点では、10.8.3が最新なためこのバージョンのパッケージをダウンロードします。

~$ wget https://github.com/fastly/cli/releases/download/v10.8.3/fastly_10.8.3_linux_amd64.rpm

ダウンロードしたファイルを使ってインストールします。

~$ sudo dnf install fastly_*_linux_amd64.rpm

これでインストールは完了です!

バージョンの確認

Fastly CLIのバージョンを確認するには下記コマンドで確認できます。

~$ fastly version

Fastly CLIのバージョンが古い場合は下記のようなメッセージが出ます。

[cloudshell-user@ip-10-130-48-50 ~]$ fastly version
Fastly CLI version v10.8.2 (a42020cf)
Built with go version go1.22.0 linux/amd64 (2024-02-25)

A new version of the Fastly CLI is available.
Current version: 10.8.2
Latest version: 10.8.3
Run `fastly update` to get the latest version.

[cloudshell-user@ip-10-130-48-50 ~]$

Fastly CLIを最新のバージョンに更新したい場合は下記コマンドで実施できます。

~$ fastly update

更新時は/usr/local/bin/fastlyへの権限を有するユーザー(rootユーザーなど)である必要があるため必要に応じてsudoを頭へ付けるなどしてください。

プロファイルの設定

Fastly CLIを使用して操作を行うには。認証情報を設定する必要があります。 認証情報の使用方法は以下3種類があります。

  • fastly profile createコマンドの実行(推奨)
    • 対話型プロンプトに従って設定する方法です。
  • --tokenまたは-tのフラグの使用
    • 実行するコマンドに明示的にトークンを指定する方法です。
  • FASTLY_API_TOKENの環境変数を設定する方法

今回はfastly profile createコマンドの実行で設定してみます。

APIトークンの取得

APIトークンは下記URLより確認できます。
https://manage.fastly.com/account/personal/tokens

まず右上の「Create Token」を選択します。

続いて追加の認証を実施します。

追加の認証が完了したら、下記の通りAPIトークンの使用用途や権限について設定を行います。

入力できたら「Create Token」を押下するとAPIトークンが発行できます。
※トークンは後で確認はできないため必ず控えておいてください。

APIトークンの反映

APIトークンを今度コマンドラインツールから登録します。

Fastly API token:の後に入力を求められるためここに先ほどのAPIトークンを設定すると完了です。

[cloudshell-user@ip-10-132-67-30 ~]$ fastly profile create

An API token is used to authenticate requests to the Fastly API. To create a token, visit
https://manage.fastly.com/account/personal/tokens

Fastly API token: XXXXXXXXXXXXXXXX ←ここに入力(NoEcho)

✓ Validating token
✓ Getting user data
✓ Persisting configuration

You can find your configuration file at:
        /home/cloudshell-user/.config/fastly/config.toml

SUCCESS: Profile 'user' created
[cloudshell-user@ip-10-132-67-30 ~]$

これで準備完了です。

CLIでサービスを作成してみる

Fastly CLIのリファレンスは下記となるのでこちらを参照します。

Fastly CDNを構築するためにはまずサービスを作成する必要があるため下記コマンドを実行します。
--nameオプションは指定しなくても大丈夫ですが、自動で名前が付与されます。

fastly service create --name (サービス名)

続いてサービス内にCDNの設定を行います。

まずは、ドメインの設定です。
バージョンの指定は必須です。

fastly domain create \
 --version latest \
 --name (Fastly CDNのドメイン) \
 --service-name (作成したいサービス名)

サービスのバックエンドを下記コマンドで作成します。
こちらもバージョンの指定は必須です。

fastly backend create \
 --version latest \
 --address (オリジンのFQDN) \
 --name (作成したいバックエンド名) \
 --service-name (作成したいサービス名)

最後アクティベートが必要なので下記コマンドを実行します。

fastly service-version activate \
 --version latest \
 --service-name (作成したサービス名)

以上で作成が完了です。

片づけ

基本、サービスの無効化をしてから削除することになりますが、
強制的に削除するオプション--forceを指定することでアクティブな状態でサービスを丸ごと削除できます。

fastly service delete \
 --service-name (作成したサービス名) \
 --force

参考

おわりに

今回は、Fastly CLIの導入と実際に使ってみるところまで実施してみました。

Fastlyのサービスは、今回ご紹介したようにコマンドラインツールで構築することや、
後日執筆したいと考えているTerraformでのデプロイも可能です。

ぜひコンソール以外でのデプロイやリソース管理を行いたい場合は使用してみていただければと思います。

この記事がどなたかの役に立つと嬉しいです。