Skip to content

Commit 90c8239

Browse files
committed
Tezos. Fixed S3 access problem with Sync nodes
1 parent 3547ce7 commit 90c8239

File tree

5 files changed

+41
-15
lines changed

5 files changed

+41
-15
lines changed

lib/tezos/README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,36 @@ echo "INSTANCE_ID=" $INSTANCE_ID
215215
aws ssm start-session --target $INSTANCE_ID --region $AWS_REGION
216216
sudo cat /var/log/cloud-init-output.log
217217
```
218+
2. How can check the status of the node service?
219+
``` bash
220+
export INSTANCE_ID=$(cat single-node-deploy.json | jq -r '..|.node-instance-id? | select(. != null)')
221+
echo "INSTANCE_ID=" $INSTANCE_ID
222+
aws ssm start-session --target $INSTANCE_ID --region $AWS_REGION
223+
sudo systemctl status node
224+
```
225+
226+
3. How to check the logs of the clients running on my node?
227+
228+
```bash
229+
pwd
230+
# Make sure you are in aws-blockchain-node-runners/lib/solana
231+
232+
export INSTANCE_ID=$(cat single-node-deploy.json | jq -r '..|.node-instance-id? | select(. != null)')
233+
echo "INSTANCE_ID=" $INSTANCE_ID
234+
aws ssm start-session --target $INSTANCE_ID --region $AWS_REGION
235+
sudo su bcuser
236+
sudo journalctl -o cat -fu node
237+
```
238+
239+
3. How to check the logs of data backup service on sync node?
240+
241+
```bash
242+
pwd
243+
# Make sure you are in aws-blockchain-node-runners/lib/solana
244+
245+
export INSTANCE_ID=$(cat sync-node-deploy.json | jq -r '..|.node-instance-id? | select(. != null)')
246+
echo "INSTANCE_ID=" $INSTANCE_ID
247+
aws ssm start-session --target $INSTANCE_ID --region $AWS_REGION
248+
sudo su bcuser
249+
sudo journalctl -o cat -fu s3-sync
250+
```

lib/tezos/lib/ha-nodes-stack.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,9 @@ export class TzHANodesStack extends cdk.Stack {
6868
path: path.join(__dirname, "assets")
6969
});
7070

71-
const snapshotBucket = s3.Bucket.fromBucketName(this, "snapshots-s3-bucket", cdk.Fn.importValue('TezosSnapshotBucket'))
71+
const snapshotBucketName = cdk.Fn.importValue('TezosSnapshotBucket');
7272

7373
asset.bucket.grantRead(instanceRole);
74-
snapshotBucket.grantRead(instanceRole);
7574

7675
// parsing user data script and injecting necessary variables
7776
const nodeScript = fs.readFileSync(path.join(__dirname, "assets", "user-data", "node.sh")).toString();
@@ -89,7 +88,7 @@ export class TzHANodesStack extends cdk.Stack {
8988
_LIFECYCLE_HOOK_NAME_: lifecycleHookName,
9089
_AUTOSCALING_GROUP_NAME_: autoScalingGroupName,
9190
_ASSETS_S3_PATH_: `s3://${asset.s3BucketName}/${asset.s3ObjectKey}`,
92-
_S3_SYNC_BUCKET_: cdk.Fn.importValue('TezosSnapshotBucket'),
91+
_S3_SYNC_BUCKET_: snapshotBucketName,
9392
_INSTANCE_TYPE_: "HA"
9493
});
9594

lib/tezos/lib/snapshot-node-stack.ts

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ export class TzSnapshotNodeStack extends cdk.Stack {
5858
// getting the IAM Role ARM from the common stack
5959
const importedInstanceRoleArn = cdk.Fn.importValue("TzNodeInstanceRoleArn");
6060

61-
const instanceRole = iam.Role.fromRoleArn(this, "iam-role", importedInstanceRoleArn);
61+
const snapshotInstanceRole = iam.Role.fromRoleArn(this, "iam-role", importedInstanceRoleArn);
6262

6363
// making our scripts and configs from the local "assets" directory available for instance to download
6464
const asset = new s3Assets.Asset(this, "assets", {
6565
path: path.join(__dirname, "assets")
6666
});
6767

68-
asset.bucket.grantRead(instanceRole);
68+
asset.bucket.grantRead(snapshotInstanceRole);
6969

7070

7171
const snapshotsBucket = new SnapshotsS3BucketConstruct(this, "snapshots-s3-bucket", {
@@ -76,15 +76,7 @@ export class TzSnapshotNodeStack extends cdk.Stack {
7676
service: ec2.GatewayVpcEndpointAwsService.S3,
7777
});
7878

79-
const snapshotInstanceRole = new iam.Role(this, `snapshot-instance-role`, {
80-
assumedBy: new iam.ServicePrincipal("ec2.amazonaws.com"),
81-
managedPolicies: [
82-
iam.ManagedPolicy.fromAwsManagedPolicyName("CloudWatchAgentServerPolicy"),
83-
],
84-
});
85-
86-
asset.bucket.grantRead(snapshotInstanceRole);
87-
snapshotInstanceRole.addToPolicy(
79+
snapshotInstanceRole.addToPrincipalPolicy(
8880
new iam.PolicyStatement({
8981
resources: [
9082
snapshotsBucket.bucketArn,
@@ -126,7 +118,7 @@ export class TzSnapshotNodeStack extends cdk.Stack {
126118
}),
127119
vpc,
128120
availabilityZone: chosenAvailabilityZone,
129-
role: instanceRole,
121+
role: snapshotInstanceRole,
130122
securityGroup: instanceSG.securityGroup,
131123
vpcSubnets: {
132124
subnetType: ec2.SubnetType.PUBLIC,

lib/tezos/test/ha-nodes-stack.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ describe("TzHANodesStack", () => {
2323
snapshotsUrl:config.baseNodeConfig.snapshotsUrl,
2424
dataVolume: config.baseNodeConfig.dataVolume,
2525
downloadSnapshot: Boolean(config.baseNodeConfig.downloadSnapshot),
26+
octezDownloadUri: config.baseNodeConfig.octezDownloadUri,
2627

2728
albHealthCheckGracePeriodMin: config.haNodeConfig.albHealthCheckGracePeriodMin,
2829
heartBeatDelayMin: config.haNodeConfig.heartBeatDelayMin,

lib/tezos/test/single-node-stack.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ describe("TZSingleNodeStack", () => {
2222
historyMode: config.baseNodeConfig.historyMode,
2323
snapshotsUrl:config.baseNodeConfig.snapshotsUrl,
2424
dataVolume: config.baseNodeConfig.dataVolume,
25+
octezDownloadUri: config.baseNodeConfig.octezDownloadUri,
2526
downloadSnapshot: true
2627
});
2728

0 commit comments

Comments
 (0)