diff --git a/common/component_interface_tools/CMakeLists.txt b/common/component_interface_tools/CMakeLists.txt
index a5ebc29463bec..2b896a951b8ed 100644
--- a/common/component_interface_tools/CMakeLists.txt
+++ b/common/component_interface_tools/CMakeLists.txt
@@ -3,5 +3,14 @@ project(component_interface_tools)
 
 find_package(autoware_cmake REQUIRED)
 autoware_package()
-ament_auto_add_executable(service_log_checker src/service_log_checker.cpp)
+
+ament_auto_add_library(${PROJECT_NAME} SHARED
+  src/service_log_checker.cpp
+)
+
+rclcpp_components_register_node(${PROJECT_NAME}
+  PLUGIN "ServiceLogChecker"
+  EXECUTABLE service_log_checker_node
+)
+
 ament_auto_package(INSTALL_TO_SHARE launch)
diff --git a/common/component_interface_tools/launch/service_log_checker.launch.xml b/common/component_interface_tools/launch/service_log_checker.launch.xml
index f3099b3238096..c7845198955c1 100644
--- a/common/component_interface_tools/launch/service_log_checker.launch.xml
+++ b/common/component_interface_tools/launch/service_log_checker.launch.xml
@@ -1,3 +1,3 @@
 <launch>
-  <node pkg="component_interface_tools" exec="service_log_checker" name="service_log_checker"/>
+  <node pkg="component_interface_tools" exec="service_log_checker_node"/>
 </launch>
diff --git a/common/component_interface_tools/package.xml b/common/component_interface_tools/package.xml
index cff1829473e86..6df07af8729ff 100644
--- a/common/component_interface_tools/package.xml
+++ b/common/component_interface_tools/package.xml
@@ -13,6 +13,7 @@
   <depend>diagnostic_updater</depend>
   <depend>fmt</depend>
   <depend>rclcpp</depend>
+  <depend>rclcpp_components</depend>
   <depend>tier4_system_msgs</depend>
   <depend>yaml_cpp_vendor</depend>
 
diff --git a/common/component_interface_tools/src/service_log_checker.cpp b/common/component_interface_tools/src/service_log_checker.cpp
index ce89573356412..18f90af5737d2 100644
--- a/common/component_interface_tools/src/service_log_checker.cpp
+++ b/common/component_interface_tools/src/service_log_checker.cpp
@@ -22,7 +22,8 @@
 #define FMT_HEADER_ONLY
 #include <fmt/format.h>
 
-ServiceLogChecker::ServiceLogChecker() : Node("service_log_checker"), diagnostics_(this)
+ServiceLogChecker::ServiceLogChecker(const rclcpp::NodeOptions & options)
+: Node("service_log_checker", options), diagnostics_(this)
 {
   sub_ = create_subscription<ServiceLog>(
     "/service_log", 50, std::bind(&ServiceLogChecker::on_service_log, this, std::placeholders::_1));
@@ -98,13 +99,5 @@ void ServiceLogChecker::update_diagnostics(diagnostic_updater::DiagnosticStatusW
   }
 }
 
-int main(int argc, char ** argv)
-{
-  rclcpp::init(argc, argv);
-  rclcpp::executors::SingleThreadedExecutor executor;
-  auto node = std::make_shared<ServiceLogChecker>();
-  executor.add_node(node);
-  executor.spin();
-  executor.remove_node(node);
-  rclcpp::shutdown();
-}
+#include <rclcpp_components/register_node_macro.hpp>
+RCLCPP_COMPONENTS_REGISTER_NODE(ServiceLogChecker)
diff --git a/common/component_interface_tools/src/service_log_checker.hpp b/common/component_interface_tools/src/service_log_checker.hpp
index 32c7f02e757c6..9579753dfd900 100644
--- a/common/component_interface_tools/src/service_log_checker.hpp
+++ b/common/component_interface_tools/src/service_log_checker.hpp
@@ -26,7 +26,7 @@
 class ServiceLogChecker : public rclcpp::Node
 {
 public:
-  ServiceLogChecker();
+  explicit ServiceLogChecker(const rclcpp::NodeOptions & options);
 
 private:
   using ServiceLog = tier4_system_msgs::msg::ServiceLog;