セットアップ
前提条件
Observability ワークショップインスタンス
Observability ワークショップは、多くの場合、Splunk が提供する事前設定済みの Ubuntu EC2 インスタンス上で実施されます。
ワークショップのインストラクターから、割り当てられたワークショップインスタンスの認証情報が提供されます。
インスタンスには以下の環境変数が既に設定されているはずです:
- ACCESS_TOKEN
- REALM
- これらはワークショップ用の Splunk Observability Cloud の Access Token と Realm です。
- これらは OpenTelemetry Collector によって、データを正しい Splunk Observability Cloud 組織に転送するために使用されます。
また、Multipass を使用してローカルの Observability ワークショップインスタンスをデプロイすることもできます。
AWS Command Line Interface (awscli)
AWS Command Line Interface、またはawscli
は、AWS リソースと対話するために使用される API です。このワークショップでは、特定のスクリプトがデプロイするリソースと対話するために使用されます。
Splunk が提供するワークショップインスタンスには、既に awscli がインストールされているはずです。
インスタンスに aws コマンドがインストールされているか、次のコマンドで確認します:
which aws
- 予想される出力は /usr/local/bin/aws です
インスタンスに aws コマンドがインストールされていない場合は、次のコマンドを実行します:
sudo apt install awscli
Terraform
Terraform は、リソースを構成ファイルで定義することで、デプロイ、管理、破棄するための Infrastructure as Code(IaC)プラットフォームです。Terraform は HCL を使用してこれらのリソースを定義し、さまざまなプラットフォームやテクノロジのための複数のプロバイダーをサポートしています。
このワークショップでは、コマンドラインで Terraform を使用して、以下のリソースをデプロイします:
- AWS API Gateway
- Lambda 関数
- Kinesis Stream
- CloudWatch ロググループ
- S3 バケット
- およびその他のサポートリソース
Splunk が提供するワークショップインスタンスには、既に terraform がインストールされているはずです。
インスタンスに terraform コマンドがインストールされているか確認します:
which terraform
- 予想される出力は /usr/local/bin/terraform です
インスタンスに terraform コマンドがインストールされていない場合は、以下の Terraform が推奨するインストールコマンドを実行してください:
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list sudo apt update && sudo apt install terraform
ワークショップディレクトリ (o11y-lambda-workshop)
ワークショップディレクトリ o11y-lambda-workshop
は、今日使用する例の Lambda ベースのアプリケーションの自動計装と手動計装の両方を完了するための、すべての設定ファイルとスクリプトを含むリポジトリです。
ホームディレクトリにワークショップディレクトリがあることを確認します:
cd && ls
- 予想される出力には o11y-lambda-workshop が含まれるはずです
o11y-lambda-workshop ディレクトリがホームディレクトリにない場合は、次のコマンドでクローンします:
git clone https://github.com/gkono-splunk/o11y-lambda-workshop.git
AWS & Terraform 変数
AWS
AWS の CLI では、サービスによってデプロイされたリソースにアクセスし管理するための認証情報が必要です。このワークショップでは、Terraform と Python スクリプトの両方がタスクを実行するためにこれらの変数を必要とします。
このワークショップのために awscli を access key ID、secret access key および region で構成します:
aws configure
このコマンドは以下のようなプロンプトを表示するはずです:
AWS Access Key ID [None]: XXXXXXXXXXXXXXXX AWS Secret Acces Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Default region name [None]: us-east-1 Default outoput format [None]:
インスタンスで awscli が設定されていない場合は、次のコマンドを実行し、インストラクターから提供される値を入力してください。
aws configure
Terraform
Terraform では、機密情報や動的データを.tf 設定ファイルにハードコーディングさせない、またはそれらの値をリソース定義全体で再利用できるようにするため、変数の受け渡しをサポートしています。
このワークショップでは、OpenTelemetry Lambda layer の適切な値で Lambda 関数をデプロイするため、Splunk Observability Cloud の取り込み値のため、そして環境とリソースを独自で即座に認識できるようにするための変数を Terraform で必要とします。
Terraform 変数(variable)は以下の方法で定義されます:
- 変数を main.tf ファイルまたは variables.tf に定義する
- 以下のいずれかの方法で変数の値を設定する:
- ホストレベルで環境変数を設定し、その定義と同じ変数名を使用して、接頭辞として TF_VAR をつける
- terraform.tfvars ファイルに変数の値を設定する
- terraform apply 実行時に引数として値を渡す
このワークショップでは、variables.tf と terraform.tfvars ファイルの組み合わせを使用して変数を設定します。
vi または nano のいずれかを使用して、auto または manual ディレクトリにある terraform.tfvars ファイルを開きます
vi ~/o11y-lambda-workshop/auto/terraform.tfvars
変数に値を設定します。CHANGEME プレースホルダーをインストラクターから提供された値に置き換えてください。
o11y_access_token = "CHANGEME" o11y_realm = "CHANGEME" otel_lambda_layer = ["CHANGEME"] prefix = "CHANGEME"
- 引用符(")や括弧 ( [ ] ) はそのまま残し、プレースホルダー
CHANGEME
のみを変更してください。 - prefix は、他の参加者のリソースと区別するため、任意の文字列で設定する固有の識別子です。氏名やメールアドレスのエイリアスを使用することをお勧めします。
- prefix には小文字のみを使用してください。S3 のような特定の AWS リソースでは、大文字を使用するとエラーが発生します。
- 引用符(")や括弧 ( [ ] ) はそのまま残し、プレースホルダー
ファイルを保存してエディタを終了します。
最後に、編集した terraform.tfvars ファイルを他のディレクトリにコピーします。
cp ~/o11y-lambda-workshop/auto/terraform.tfvars ~/o11y-lambda-workshop/manual
- これは、自動計装と手動計装の両方の部分で同じ値を使用するためです
ファイル権限
他のすべてのファイルはそのままでよいですが、auto
とmanual
の両方にあるsend_message.pyスクリプトは、ワークショップの一部として実行する必要があります。そのため、期待通りに実行するには、適切な権限が必要です。以下の手順に従って設定してください。
まず、
o11y-lambda-workshop
ディレクトリにいることを確認します:cd ~/o11y-lambda-workshop
次に、以下のコマンドを実行して
send_message.py
スクリプトに実行権限を設定します:sudo chmod 755 auto/send_message.py manual/send_message.py
これで前提条件が整いましたので、ワークショップを始めることができます!