セットアップ
前提条件
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 コマンドがインストールされているか、次のコマンドで確認します
- 予想される出力は /usr/local/bin/aws です
インスタンスに aws コマンドがインストールされていない場合は、次のコマンドを実行します
Terraform
Terraformは、リソースを構成ファイルで定義することで、デプロイ、管理、破棄するためのInfrastructure as Code(IaC)プラットフォームです。TerraformはHCLを使用してこれらのリソースを定義し、さまざまなプラットフォームやテクノロジのための複数のプロバイダーをサポートしています。
このワークショップでは、コマンドラインでTerraformを使用して、以下のリソースをデプロイします
- AWS API Gateway
- Lambda関数
- Kinesis Stream
- CloudWatchロググループ
- S3バケット
- およびその他のサポートリソース
Splunkが提供するワークショップインスタンスには、既に terraform がインストールされているはずです。
インスタンスに terraform コマンドがインストールされているか確認します
- 予想される出力は /usr/local/bin/terraform です
インスタンスに terraform コマンドがインストールされていない場合は、以下のTerraformが推奨するインストールコマンドを実行してください
ワークショップディレクトリ (o11y-lambda-workshop)
ワークショップディレクトリ o11y-lambda-workshop は、今日使用する例のLambdaベースのアプリケーションの自動計装と手動計装の両方を完了するための、すべての設定ファイルとスクリプトを含むリポジトリです。
ホームディレクトリにワークショップディレクトリがあることを確認します
- 予想される出力には o11y-lambda-workshop が含まれるはずです
o11y-lambda-workshop ディレクトリがホームディレクトリにない場合は、次のコマンドでクローンします
AWS & Terraform 変数
AWS
AWSのCLIでは、サービスによってデプロイされたリソースにアクセスし管理するための認証情報が必要です。このワークショップでは、TerraformとPythonスクリプトの両方がタスクを実行するためにこれらの変数を必要とします。
このワークショップのために awscli を access key ID、secret access key および region で構成します
このコマンドは以下のようなプロンプトを表示するはずです:
インスタンスで awscli が設定されていない場合は、次のコマンドを実行し、インストラクターから提供される値を入力してください。
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 ファイルを開きます
変数に値を設定します。CHANGEME プレースホルダーをインストラクターから提供された値に置き換えてください。
- 引用符(")や括弧 ( [ ] ) はそのまま残し、プレースホルダー
CHANGEMEのみを変更してください。 - prefix は、他の参加者のリソースと区別するため、任意の文字列で設定する固有の識別子です。氏名やメールアドレスのエイリアスを使用することをお勧めします。
- prefix には小文字のみを使用してください。S3 のような特定の AWS リソースでは、大文字を使用するとエラーが発生します。
- 引用符(")や括弧 ( [ ] ) はそのまま残し、プレースホルダー
ファイルを保存してエディタを終了します。
最後に、編集した terraform.tfvars ファイルを他のディレクトリにコピーします。
- これは、自動計装と手動計装の両方の部分で同じ値を使用するためです
ファイル権限
他のすべてのファイルはそのままでよいですが、auto と manual の両方にあるsend_message.pyスクリプトは、ワークショップの一部として実行する必要があります。そのため、期待通りに実行するには、適切な権限が必要です。以下の手順に従って設定してください。
まず、
o11y-lambda-workshopディレクトリにいることを確認します次に、以下のコマンドを実行して
send_message.pyスクリプトに実行権限を設定します
これで前提条件が整いましたので、ワークショップを始めることができます!
