EBS スナップショットは「ボリューム1本のある時点のコピー」、AMI は「スナップショットに起動のための設定を加えたもの」です。 スナップショットからはボリュームを、AMI からはインスタンスをまるごと作り直せます。

この記事では、同じインスタンスに create-snapshot と create-image の両方を実行し、返ってくる JSON と、AMI の中に入っているスナップショット ID を並べて、この関係を出力で確かめます。復元と削除の手順、順番を入れ替えたときのエラー文、boto3 版、一覧取得のワンライナーまで載せています。

確認環境:Ubuntu 24.04、AWS CLI 1.46.1、Python 3.11 / boto3 1.43.103。AWS の API をローカルで再現するツール(moto 5.2.3)で実行しています。掲載するコマンドは、実際の AWS でそのまま使える形で書いています。

スナップショットと AMI の比較早見表

項目 EBS スナップショット AMI
何を保存するか EBS ボリューム1本の、ある時点のデータ スナップショット + 起動設定(デバイスの割り当て、アーキテクチャなど)
作成コマンド aws ec2 create-snapshot --volume-id vol-… aws ec2 create-image --instance-id i-… --name 名前
指定する対象 ボリューム インスタンス
返ってくる ID SnapshotId(snap-…) ImageId(ami-…)。スナップショットも裏で作られる
復元で得られるもの ボリューム インスタンス
復元コマンド create-volume --snapshot-id → attach-volume run-instances --image-id
完了待ち aws ec2 wait snapshot-completed aws ec2 wait image-available
削除コマンド delete-snapshot deregister-image → delete-snapshot
削除の順番 AMI から使われていなければいつでも 先に AMI の登録解除、次にスナップショット
向いている用途 データ用ボリュームのバックアップ、作業前の退避 同じ構成のサーバーを増やす、サーバーごと作り直す

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「EBSスナップショットとAMIの違い|AWS CLIで作成・復元・削除」

2つの関係を図で見る

flowchart LR
  I["インスタンス i-…"] --> V["EBS ボリューム vol-…"]
  V -- create-snapshot --> S1["スナップショット A"]
  I -- create-image --> A["AMI ami-…"]
  A -. BlockDeviceMappings .-> S2["スナップショット B"]
  S1 -- create-volume --> NV["新しいボリューム"]
  A -- run-instances --> NI["新しいインスタンス"]

create-image を実行すると、AMI と一緒にスナップショット B が自動で作られます。AMI はそのスナップショットの ID を BlockDeviceMappings という項目で持っています。

同じインスタンスに両方を実行して見比べる

準備:インスタンスのボリュームを調べる

INSTANCE_ID=i-49e1452005a13d990   # 自分のインスタンス ID に置き換える

aws ec2 describe-volumes \
  --filters Name=attachment.instance-id,Values=$INSTANCE_ID \
  --query 'Volumes[].[VolumeId,Size,AvailabilityZone,Attachments[0].Device]' --output text
vol-78fbdfa899ff468f0   8   ap-northeast-1a /dev/sda1

8GiB のボリュームが1本、/dev/sda1 として付いています。ボリューム ID とアベイラビリティゾーンを変数に入れておきます。

VOLUME_ID=vol-78fbdfa899ff468f0
AZ=ap-northeast-1a

create-snapshot:ボリュームを指定する

aws ec2 create-snapshot \
  --volume-id $VOLUME_ID \
  --description "web-01 before update" \
  --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=web-01-manual}]' \
  --query '{SnapshotId:SnapshotId,VolumeId:VolumeId,VolumeSize:VolumeSize,Description:Description,Encrypted:Encrypted}'
{
    "SnapshotId": "snap-6d8e1a53e062f21ca",
    "VolumeId": "vol-78fbdfa899ff468f0",
    "VolumeSize": 8,
    "Description": "web-01 before update",
    "Encrypted": false
}

返ってくるのはスナップショット1件の情報で、元のボリューム ID とサイズが入っています。 インスタンスの種類や起動に関する情報は含まれません。

完了を待ってから状態を確認します。

SNAPSHOT_ID=snap-6d8e1a53e062f21ca

aws ec2 wait snapshot-completed --snapshot-ids $SNAPSHOT_ID
aws ec2 describe-snapshots --snapshot-ids $SNAPSHOT_ID \
  --query 'Snapshots[0].[SnapshotId,State,Progress]' --output text
snap-6d8e1a53e062f21ca  completed   100%

create-image:インスタンスを指定する

aws ec2 create-image \
  --instance-id $INSTANCE_ID \
  --name web-01-20261005 \
  --description "web-01 image" \
  --tag-specifications 'ResourceType=image,Tags=[{Key=Name,Value=web-01-image}]'
{
    "ImageId": "ami-2ad63e27c4d280408"
}

返ってくるのは ImageId だけです。 中身は describe-images で見ます。

IMAGE_ID=ami-2ad63e27c4d280408

aws ec2 wait image-available --image-ids $IMAGE_ID
aws ec2 describe-images --image-ids $IMAGE_ID \
  --query 'Images[0].{ImageId:ImageId,Name:Name,State:State,Architecture:Architecture,VirtualizationType:VirtualizationType,RootDeviceName:RootDeviceName,BlockDeviceMappings:BlockDeviceMappings[].{DeviceName:DeviceName,SnapshotId:Ebs.SnapshotId}}'
{
    "ImageId": "ami-2ad63e27c4d280408",
    "Name": "web-01-20261005",
    "State": "available",
    "Architecture": "x86_64",
    "VirtualizationType": "hvm",
    "RootDeviceName": "/dev/sda1",
    "BlockDeviceMappings": [
        {
            "DeviceName": "/dev/sda1",
            "SnapshotId": "snap-066a84eead4cb6f7f"
        }
    ]
}

並べると「AMI = スナップショット + 起動設定」が見える

create-snapshot の結果 create-image の結果(describe-images)
ID snap-6d8e1a53e062f21ca ami-2ad63e27c4d280408
スナップショット 自分自身 BlockDeviceMappings の中に snap-066a84eead4cb6f7f
起動に関する情報 なし Architecture、VirtualizationType、RootDeviceName、DeviceName

AMI の BlockDeviceMappings に、create-snapshot で作ったものとは別のスナップショット ID(snap-066a…)が入っています。このスナップショットの説明欄を見ると、どの操作で作られたかがわかります。

AMI_SNAPSHOT_ID=$(aws ec2 describe-images --image-ids $IMAGE_ID \
  --query 'Images[0].BlockDeviceMappings[0].Ebs.SnapshotId' --output text)

aws ec2 describe-snapshots --snapshot-ids $AMI_SNAPSHOT_ID \
  --query 'Snapshots[0].Description' --output text
Created by CreateImage(i-49e1452005a13d990) for ami-2ad63e27c4d280408

「CreateImage が、このインスタンスから、この AMI のために作った」と記録されています。 AMI のスナップショットにはタグが付いていなかったので、あとで探しやすいように Name タグを付けておきます。

aws ec2 create-tags --resources $AMI_SNAPSHOT_ID --tags Key=Name,Value=web-01-image

create-image の再起動について

公式リファレンスによると、create-image は既定でインスタンスを再起動してからイメージを作ります。メモリ上やバッファにあるデータをボリュームに書き出してから取得するためです。

オプション 動き 取得されるデータ
(既定)--reboot 再起動してから作成 バッファやメモリ上のデータを書き出したあとの状態
--no-reboot 再起動せずに作成 その時点でボリュームに書き込み済みのデータ

止めたくないサーバーでは --no-reboot を付け、書き込みの少ない時間帯に実行すると安心です。

一覧を取得するワンライナー

自分のスナップショット一覧

--owner-ids self を付けて、自分のアカウントのものに絞ります。ここでは Name タグでさらに絞っています。

aws ec2 describe-snapshots --owner-ids self \
  --filters 'Name=tag:Name,Values=web-01-*' \
  --query 'Snapshots[].[SnapshotId,State,Tags[0].Value,Description]' --output table
-----------------------------------------------------------------------------------------------------------------------------------
|                                                        DescribeSnapshots                                                        |
+------------------------+------------+----------------+--------------------------------------------------------------------------+
|  snap-6d8e1a53e062f21ca|  completed |  web-01-manual |  web-01 before update                                                    |
|  snap-066a84eead4cb6f7f|  completed |  web-01-image  |  Created by CreateImage(i-49e1452005a13d990) for ami-2ad63e27c4d280408   |
+------------------------+------------+----------------+--------------------------------------------------------------------------+

特定のボリュームから取ったスナップショット

aws ec2 describe-snapshots --owner-ids self \
  --filters Name=volume-id,Values=$VOLUME_ID \
  --query 'Snapshots[].[SnapshotId,StartTime,Description]' --output text
snap-6d8e1a53e062f21ca  2026-10-05T06:10:29.000Z    web-01 before update

自分の AMI と、その中のスナップショット ID

aws ec2 describe-images --owners self \
  --filters 'Name=name,Values=web-01-*' \
  --query 'sort_by(Images,&CreationDate)[].[ImageId,Name,State,CreationDate,BlockDeviceMappings[0].Ebs.SnapshotId]' --output table
-----------------------------------------------------------------------------------------------------------------
|                                                DescribeImages                                                 |
+-----------------------+------------------+------------+----------------------------+--------------------------+
|  ami-2ad63e27c4d280408|  web-01-20261005 |  available |  2026-10-05T06:10:32.000Z  |  snap-066a84eead4cb6f7f  |
+-----------------------+------------------+------------+----------------------------+--------------------------+

あるスナップショットを使っている AMI を逆引きする

aws ec2 describe-images --owners self \
  --query "Images[?BlockDeviceMappings[?Ebs.SnapshotId=='$AMI_SNAPSHOT_ID']].[ImageId,Name]" --output text
ami-2ad63e27c4d280408   web-01-20261005
知りたいこと コマンドの要点
自分のスナップショット describe-snapshots --owner-ids self
ボリュームごとの履歴 --filters Name=volume-id,Values=vol-…
自分の AMI describe-images --owners self
AMI の中のスナップショット --query 'Images[].BlockDeviceMappings[].Ebs.SnapshotId'
スナップショットを使っている AMI --query "Images[?BlockDeviceMappings[?Ebs.SnapshotId=='snap-…']]"

--owner-ids self や --owners self を付けずに実行すると、公開されているものまで対象になり、件数がとても多くなります。

復元する

スナップショットから復元:create-volume → attach-volume

スナップショットから新しいボリュームを作り、インスタンスに取り付けます。

NEW_VOLUME_ID=$(aws ec2 create-volume \
  --snapshot-id $SNAPSHOT_ID \
  --availability-zone $AZ \
  --volume-type gp3 \
  --tag-specifications 'ResourceType=volume,Tags=[{Key=Name,Value=web-01-restored}]' \
  --query VolumeId --output text)
aws ec2 wait volume-available --volume-ids $NEW_VOLUME_ID
echo $NEW_VOLUME_ID
vol-5de91bb2b92a26e87
aws ec2 attach-volume \
  --volume-id $NEW_VOLUME_ID --instance-id $INSTANCE_ID --device /dev/sdf
{
    "VolumeId": "vol-5de91bb2b92a26e87",
    "InstanceId": "i-49e1452005a13d990",
    "Device": "/dev/sdf",
    "State": "attaching",
    "AttachTime": "2026-10-05T06:10:39.000Z"
}

公式ドキュメントで確認できるポイントは次の3つです。

ポイント 内容
アベイラビリティゾーン ボリュームとインスタンスは同じアベイラビリティゾーンにある必要がある。--availability-zone にはインスタンスと同じ値を指定する
復元できる場所 スナップショットのデータはリージョン内で複製されており、そのリージョンのどのアベイラビリティゾーンにもボリュームを復元できる
取り付けたあと OS から使えるようにする作業(マウントなど)が別に必要

AMI から復元:run-instances

AMI からは、インスタンスをまるごと起動します。

NEW_INSTANCE_ID=$(aws ec2 run-instances \
  --image-id $IMAGE_ID \
  --instance-type t3.micro \
  --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=web-02}]' \
  --query 'Instances[0].InstanceId' --output text)
aws ec2 wait instance-running --instance-ids $NEW_INSTANCE_ID

aws ec2 describe-instances --instance-ids $NEW_INSTANCE_ID \
  --query 'Reservations[0].Instances[0].[InstanceId,ImageId,State.Name]' --output text
i-4e60bddc10aca9f8f ami-2ad63e27c4d280408   running

サブネットやセキュリティグループを指定する場合は、--subnet-id と --security-group-ids を足します。

やりたいこと 使うもの 手順
データだけ取り戻したい スナップショット create-volume → attach-volume → OS でマウント
サーバーごと作り直したい AMI run-instances
同じ構成のサーバーを増やしたい AMI run-instances を必要な台数分

削除する:順番は deregister-image → delete-snapshot

順番を逆にするとどうなるか(InvalidSnapshot.InUse)

AMI が残っている状態で、AMI のスナップショットを先に消そうとした結果です。

aws ec2 delete-snapshot --snapshot-id $AMI_SNAPSHOT_ID
An error occurred (InvalidSnapshot.InUse) when calling the DeleteSnapshot operation: The snapshot snap-066a84eead4cb6f7f is currently in use by ami-2ad63e27c4d280408

エラー文の最後に、このスナップショットを使っている AMI の ID が出ます。 公式リファレンスにも、登録されている AMI が使っているルートデバイスのスナップショットは削除できず、先に AMI を登録解除する必要があると書かれています。

正しい順番で消す

AMI を登録解除すると、スナップショットの ID を AMI から引けなくなります。先にスナップショット ID を変数に控えてから 登録解除するのがコツです(ここではすでに AMI_SNAPSHOT_ID に入っています)。

# 1. AMI を登録解除する
aws ec2 deregister-image --image-id $IMAGE_ID

# 2. AMI が使っていたスナップショットを削除する
aws ec2 delete-snapshot --snapshot-id $AMI_SNAPSHOT_ID

登録解除の直後に一覧を見ると、AMI は0件になり、スナップショットは2つとも残っていました。

aws ec2 describe-snapshots --owner-ids self \
  --filters 'Name=tag:Name,Values=web-01-*' \
  --query 'Snapshots[].[SnapshotId,Tags[0].Value]' --output text
snap-6d8e1a53e062f21ca  web-01-manual
snap-066a84eead4cb6f7f  web-01-image

deregister-image だけでは、スナップショットは残ります。 手順 2 の delete-snapshot まで実行して、後片付けが完了します。今度はエラーなく削除できました。

create-snapshot で作ったほうのスナップショットは、AMI とは関係がないので、いつでも削除できます。

aws ec2 delete-snapshot --snapshot-id $SNAPSHOT_ID

aws ec2 describe-snapshots --owner-ids self \
  --filters 'Name=tag:Name,Values=web-01-*' --query 'length(Snapshots)'
0

登録解除と同時にスナップショットも消すオプション

公式リファレンスによると、deregister-image には --delete-associated-snapshots というオプションがあり、登録解除と同時に関連するスナップショットを削除できます。確認環境の AWS CLI 1.46.1 のヘルプにも、このオプションが載っています。

aws ec2 deregister-image --image-id $IMAGE_ID --delete-associated-snapshots
項目 内容(公式リファレンスより)
既定 スナップショットは削除されない
複数の AMI が使っているスナップショット このオプションを付けても削除されない(AMI の登録解除は行われる)
結果の確認 応答の DeleteSnapshotResults に、スナップショットごとの結果(success、skipped など)が入る
起動済みのインスタンス 登録解除しても、その AMI から起動済みのインスタンスはそのまま残る

スナップショットを消しても、作ったボリュームは使える

復元の手順で作ったボリュームは、元のスナップショットを削除したあとも、そのまま使えています。

aws ec2 describe-volumes --volume-ids $NEW_VOLUME_ID \
  --query 'Volumes[0].[VolumeId,State,SnapshotId]' --output text
vol-5de91bb2b92a26e87   in-use  snap-6d8e1a53e062f21ca

SnapshotId の欄には「どのスナップショットから作ったか」の記録が残ります。

取り付け中のボリュームを消そうとすると(VolumeInUse)

aws ec2 delete-volume --volume-id $NEW_VOLUME_ID
An error occurred (VolumeInUse) when calling the DeleteVolume operation: Volume vol-5de91bb2b92a26e87 is currently attached to i-49e1452005a13d990

先に取り外してから削除します。

aws ec2 detach-volume --volume-id $NEW_VOLUME_ID --instance-id $INSTANCE_ID --device /dev/sdf
aws ec2 wait volume-available --volume-ids $NEW_VOLUME_ID
aws ec2 delete-volume --volume-id $NEW_VOLUME_ID

削除順とエラーのまとめ

消したいもの 先に済ませること 順番が違うときのエラーコード
AMI のスナップショット deregister-image で AMI を登録解除 InvalidSnapshot.InUse
手動のスナップショット なし (なし)
AMI スナップショット ID を控える (なし)
取り付け中のボリューム detach-volume で取り外す VolumeInUse

スナップショットの増分保存と削除の関係

公式ドキュメントによると、スナップショットは増分バックアップで、直前のスナップショット以降に変更されたブロックだけが保存されます。また delete-snapshot のリファレンスには、スナップショットを削除しても、ほかのスナップショットが必要とするデータは残り、残っているスナップショットはどれも単体でボリュームを復元できると書かれています。

つまり、途中のスナップショットを消しても、残したスナップショットからの復元には影響しません。 世代を間引くときは、消したい日付のものをそのまま delete-snapshot に渡せます。

boto3 で同じ操作を書く

作成・AMI のスナップショット ID の取得・順番を守った削除を、関数にまとめました。インスタンス ID を引数に渡して実行します。

import boto3
from botocore.exceptions import ClientError

ec2 = boto3.client("ec2", region_name="ap-northeast-1")


def backup(instance_id, name):
    """同じインスタンスにスナップショットと AMI の両方を作る"""
    volume_id = ec2.describe_volumes(
        Filters=[{"Name": "attachment.instance-id", "Values": [instance_id]}]
    )["Volumes"][0]["VolumeId"]

    snapshot_id = ec2.create_snapshot(
        VolumeId=volume_id,
        Description=f"{name} before update",
        TagSpecifications=[{"ResourceType": "snapshot",
                            "Tags": [{"Key": "Name", "Value": f"{name}-manual"}]}],
    )["SnapshotId"]
    ec2.get_waiter("snapshot_completed").wait(SnapshotIds=[snapshot_id])

    image_id = ec2.create_image(InstanceId=instance_id, Name=f"{name}-image")["ImageId"]
    ec2.get_waiter("image_available").wait(ImageIds=[image_id])
    return snapshot_id, image_id


def snapshots_of(image_id):
    """AMI が参照しているスナップショット ID の一覧"""
    image = ec2.describe_images(ImageIds=[image_id])["Images"][0]
    return [m["Ebs"]["SnapshotId"] for m in image["BlockDeviceMappings"] if "Ebs" in m]


def delete_image(image_id):
    """登録解除 → スナップショット削除の順で消す"""
    snapshot_ids = snapshots_of(image_id)      # 登録解除の前に控える
    ec2.deregister_image(ImageId=image_id)
    for snapshot_id in snapshot_ids:
        ec2.delete_snapshot(SnapshotId=snapshot_id)
    return snapshot_ids


if __name__ == "__main__":
    import sys
    instance_id = sys.argv[1]
    snapshot_id, image_id = backup(instance_id, "web-01")
    ami_snapshots = snapshots_of(image_id)
    print("スナップショット     :", snapshot_id)
    print("AMI                  :", image_id)
    print("AMI のスナップショット:", ami_snapshots)

    try:                                        # 順番を逆にした場合
        ec2.delete_snapshot(SnapshotId=ami_snapshots[0])
    except ClientError as e:
        print("エラーコード         :", e.response["Error"]["Code"])

    print("削除したスナップショット:", delete_image(image_id))
    ec2.delete_snapshot(SnapshotId=snapshot_id)
    print("手動スナップショットも削除:", snapshot_id)
python3 ebs_boto3.py i-497ba6911be6de90a
スナップショット     : snap-ce9dd40cbd9f92953
AMI                  : ami-4e340064f3e81d675
AMI のスナップショット: ['snap-adf06964627af1cd4']
エラーコード         : InvalidSnapshot.InUse
削除したスナップショット: ['snap-adf06964627af1cd4']
手動スナップショットも削除: snap-ce9dd40cbd9f92953

delete_image() の中で、登録解除の前に snapshots_of() でスナップショット ID を取り出している のがポイントです。boto3 では、エラーコードを e.response["Error"]["Code"] で受け取れます。

AWS CLI boto3
aws ec2 create-snapshot --volume-id ec2.create_snapshot(VolumeId=...)
aws ec2 create-image --instance-id --name ec2.create_image(InstanceId=..., Name=...)
aws ec2 wait snapshot-completed ec2.get_waiter("snapshot_completed").wait(SnapshotIds=[...])
aws ec2 wait image-available ec2.get_waiter("image_available").wait(ImageIds=[...])
aws ec2 deregister-image ec2.deregister_image(ImageId=...)
aws ec2 delete-snapshot ec2.delete_snapshot(SnapshotId=...)

よくある質問

Q. AMI を作れば、スナップショットを別に取る必要はありませんか? A. サーバーをまるごと作り直す目的なら AMI だけで足ります。データ用のボリュームだけを細かい間隔で残したいときは、スナップショットを個別に取るほうが扱いやすくなります。

Q. AMI を登録解除したら、そこから起動したインスタンスはどうなりますか? A. 公式リファレンスによると、登録解除しても起動済みのインスタンスは削除されません。登録解除した AMI からは、新しいインスタンスを起動できなくなります。

Q. スナップショットはどこに保存されますか? A. 公式ドキュメントによると Amazon S3 に保存されますが、利用者が直接アクセスできるバケットではありません。操作は EC2 の API(describe-snapshots など)で行います。

Q. InvalidSnapshot.InUse が出たとき、どの AMI が使っているかを調べるには? A. エラー文の最後に AMI の ID が出ます。一覧で確認したい場合は、この記事の「あるスナップショットを使っている AMI を逆引きする」のワンライナーが使えます。

まとめ

  • スナップショットはボリューム1本のコピー、AMI はスナップショットに起動設定を加えたもの
  • create-snapshot はボリュームを、create-image はインスタンスを指定する。AMI の BlockDeviceMappings に、自動で作られたスナップショットの ID が入る
  • 復元は、スナップショットなら create-volume → attach-volume、AMI なら run-instances
  • 削除は deregister-image → delete-snapshot の順。逆にすると InvalidSnapshot.InUse で止まる
  • 登録解除の前に、スナップショット ID を控えておく。deregister-image だけではスナップショットは残る
  • 一覧は --owner-ids self / --owners self と --query で絞り込む

参考・出典

  • Amazon EBS User Guide: Amazon EBS snapshots(https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html)
  • AWS CLI Command Reference: create-image(https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html)
  • AWS CLI Command Reference: deregister-image(https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-image.html)
  • AWS CLI Command Reference: delete-snapshot(https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-snapshot.html)
  • AWS CLI Command Reference: attach-volume(https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html)
  • Amazon EC2 API Reference: Error codes(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html)

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「EBSスナップショットとAMIの違い|AWS CLIで作成・復元・削除」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?