AWS CLI를 사용하여 Amazon SQS 큐를 생성하고 확인하는 방법
1. 큐 생성
aws sqs create-queue --queue-name MyQueue
위 명령은 "MyQueue"라는 이름의 새로운 SQS 큐를 생성합니다. 큐 생성에 성공하면 큐의 URL이 출력됩니다.
2. 큐 확인
aws sqs list-queues
위 명령은 AWS 계정에 있는 모든 SQS 큐의 URL을 출력합니다. 출력된 URL에서 MyQueue의 URL을 찾을 수 있습니다.
{
"QueueUrls": [
"https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue",
"https://sqs.us-east-1.amazonaws.com/123456789012/YourQueue"
]
}
3. 큐 정보 확인
aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names All
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 SQS 큐의 모든 속성을 출력합니다. 출력된 결과에서 큐의 이름, URL, 생성일 등의 정보를 확인할 수 있습니다.
위의 명령은 AWS CLI를 사용하여 Amazon SQS 큐를 생성하고 확인하는 방법을 보여줍니다. 다른 SQS 관련 명령어를 사용하여 메시지 전송, 메시지 수신 등 다양한 작업을 수행할 수 있습니다.
4. 큐 삭제
aws sqs delete-queue --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 SQS 큐를 삭제합니다.
5. 메시지 전송
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --message-body "Hello World!"
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 SQS 큐에 "Hello World!"라는 메시지를 전송합니다.
6. 메시지 수신
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 SQS 큐에서 가장 오래된 메시지를 수신합니다. 출력된 결과에서 수신된 메시지의 ID, 본문 등의 정보를 확인할 수 있습니다.
위의 명령은 Amazon SQS 큐에 대한 간단한 작업을 AWS CLI를 사용하여 수행하는 방법을 보여줍니다. 더 많은 명령어와 옵션을 사용하여 더 다양한 작업을 수행할 수 있습니다.
7. 메시지 삭제
aws sqs delete-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --receipt-handle AQEBwEXAMPLEu+8IwvSQn2iFrMQ==
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 SQS 큐에서 지정된 receipt handle을 가진 메시지를 삭제합니다. receipt handle은 메시지를 수신할 때 받는 핸들 값입니다.
8. 메시지 일괄 삭제
aws sqs delete-message-batch --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --entries Id=1,ReceiptHandle=AQEBwEXAMPLEu+8IwvSQn2iFrMQ== Id=2,ReceiptHandle=AQEBwEXAMPLEu+8IwvSQn2iFrMQ==
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 SQS 큐에서 지정된 receipt handle을 가진 메시지를 일괄적으로 삭제합니다.
9. 큐 속성 업데이트
aws sqs set-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attributes VisibilityTimeout=3600
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 SQS 큐의 속성 중 VisibilityTimeout을 3600초(1시간)로 업데이트합니다. VisibilityTimeout은 메시지가 처리 중인 동안 해당 메시지를 다른 소비자가 처리하지 못하도록 지정하는 시간입니다.
이와 같이 AWS CLI를 사용하여 Amazon SQS 큐를 조작할 수 있습니다. AWS SDK를 사용하여 프로그래밍 방식으로 Amazon SQS를 사용할 수도 있습니다.
10. 큐 속성 확인
aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names VisibilityTimeout MaximumMessageSize
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 SQS 큐의 속성 중 VisibilityTimeout과 MaximumMessageSize를 확인합니다.
11. 큐 URL 목록 확인
aws sqs list-queues
위 명령은 현재 AWS 계정에서 사용 가능한 모든 Amazon SQS 큐 URL 목록을 반환합니다.
12. 큐 이름으로 URL 검색
aws sqs get-queue-url --queue-name MyQueue
위 명령은 "MyQueue"라는 이름의 Amazon SQS 큐의 URL을 검색합니다. 반환된 결과에서 큐의 URL을 확인할 수 있습니다.
이러한 AWS CLI 명령을 사용하여 Amazon SQS 큐를 조작할 수 있습니다. 이외에도 다양한 명령이 있으며, 사용자의 필요에 따라 적절한 명령을 선택하여 Amazon SQS를 사용할 수 있습니다.
13. 큐 삭제
aws sqs delete-queue --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 Amazon SQS 큐를 삭제합니다. 이 명령을 실행하면 해당 큐에서 모든 메시지가 삭제되고, 큐도 삭제됩니다.
14. 지역별 큐 목록 확인
aws sqs list-queues --region us-west-2
위 명령은 "us-west-2" 지역에서 사용 가능한 Amazon SQS 큐 URL 목록을 반환합니다.
15. 메시지 푸시 알림 구성
aws sqs create-queue --queue-name MyQueue --attributes "Policy={\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"sqs:SendMessage\",\"Resource\":\"arn:aws:sqs:us-east-1:123456789012:MyQueue\",\"Condition\":{\"ArnEquals\":{\"aws:SourceArn\":\"arn:aws:sns:us-east-1:123456789012:MyTopic\"}}}]}"
위 명령은 "MyQueue"라는 이름의 Amazon SQS 큐를 생성하고, 해당 큐로 메시지를 전송할 수 있는 권한을 가진 Amazon SNS 주제(arn:aws:sns:us-east-1:123456789012:MyTopic)에서 메시지를 보내도록 구성합니다. 이를 통해 Amazon SNS 주제에서 발생한 이벤트를 Amazon SQS 큐에 전달할 수 있습니다.
16. 메시지 수신 대기 시간 구성
aws sqs create-queue --queue-name MyQueue --attributes "ReceiveMessageWaitTimeSeconds=20"
위 명령은 "MyQueue"라는 이름의 Amazon SQS 큐를 생성하고, 해당 큐에서 메시지를 수신 대기할 때 20초 동안 대기하도록 구성합니다.
이러한 AWS CLI 명령을 사용하여 Amazon SQS 큐를 생성, 삭제, 수정 및 조회할 수 있습니다. 이외에도 다양한 명령이 있으며, 사용자의 필요에 따라 적절한 명령을 선택하여 Amazon SQS를 사용할 수 있습니다.
17. 큐에 메시지 전송
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --message-body "Hello World"
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 Amazon SQS 큐로 "Hello World" 메시지를 전송합니다.
18. 큐에서 메시지 수신
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 Amazon SQS 큐에서 메시지를 수신합니다. 이 명령은 큐에서 첫 번째 메시지를 수신하고 해당 메시지의 내용을 반환합니다.
19. 메시지 삭제
aws sqs delete-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --receipt-handle AQEBBX8r9rRv4syD0Z2kY47i4h4LxIv+3Ez0i0t1qbA9XneRRFYvd8mcMqbTcCj58iL0Q2A0dew78g32Jy45bH9XgADlE8bW+6ZjPfvFnBhdd2ndv+VAWthJy+hL/7e1R+Rv/YptEx1Z2enF4J4PqoMxqz3nSvpV7bKk3qYw7yW8dIPsxI7X9vp3tq+w=
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 Amazon SQS 큐에서 메시지를 삭제합니다. 이 명령은 삭제할 메시지의 ReceiptHandle을 지정하여 메시지를 삭제합니다.
20. 메시지 속성 확인
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names All
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 Amazon SQS 큐에서 메시지를 수신하고, 해당 메시지의 모든 속성을 반환합니다.
이러한 AWS CLI 명령을 사용하여 Amazon SQS 큐에서 메시지를 전송, 수신 및 삭제할 수 있습니다. 이외에도 다양한 명령이 있으며, 사용자의 필요에 따라 적절한 명령을 선택하여 Amazon SQS를 사용할 수 있습니다.
21. 메시지 대기 시간 확인
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names ApproximateReceiveCount, SentTimestamp, ApproximateFirstReceiveTimestamp, VisibilityTimeout
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 Amazon SQS 큐에서 메시지를 수신하고, 해당 메시지의 대기 시간 관련 속성을 반환합니다.
22. 메시지 수정
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
aws sqs change-message-visibility --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --receipt-handle AQEBBX8r9rRv4syD0Z2kY47i4h4LxIv+3Ez0i0t1qbA9XneRRFYvd8mcMqbTcCj58iL0Q2A0dew78g32Jy45bH9XgADlE8bW+6ZjPfvFnBhdd2ndv+VAWthJy+hL/7e1R+Rv/YptEx1Z2enF4J4PqoMxqz3nSvpV7bKk3qYw7yW8dIPsxI7X9vp3tq+w= --visibility-timeout 60
첫 번째 명령은 큐에서 첫 번째 메시지를 수신합니다. 두 번째 명령은 해당 메시지의 ReceiptHandle을 사용하여 메시지의 가시성을 60초 동안 변경합니다.
23. 메시지 크기 제한 설정
aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --attribute-names MaximumMessageSize
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 Amazon SQS 큐의 최대 메시지 크기 제한을 반환합니다.
24. 큐 삭제
aws sqs delete-queue --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
위 명령은 "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue" URL을 가진 Amazon SQS 큐를 삭제합니다.
이러한 명령을 사용하여 Amazon SQS 큐를 생성, 확인, 메시지 전송 및 삭제, 메시지 속성 확인, 메시지 수정, 큐 크기 제한 확인 및 큐 삭제를 수행할 수 있습니다. 이외에도 다양한 명령이 있으며, 사용자의 필요에 따라 적절한 명령을 선택하여 Amazon SQS를 사용할 수 있습니다.
25. AWS SDK를 사용하여 Amazon SQS 큐 생성
AWS SDK를 사용하면 다양한 프로그래밍 언어로 Amazon SQS를 사용할 수 있습니다. 아래는 Python을 사용하여 Amazon SQS 큐를 생성하는 예시 코드입니다.
import boto3
# Create SQS client
sqs = boto3.client('sqs')
# Create a SQS queue
response = sqs.create_queue(
QueueName='MyQueue',
Attributes={
'DelaySeconds': '60',
'MessageRetentionPeriod': '86400'
}
)
print(response['QueueUrl'])
위 코드는 boto3 라이브러리를 사용하여 Python으로 Amazon SQS 큐를 생성합니다. create_queue 메서드를 사용하여 큐 이름과 속성을 정의합니다. 생성된 큐의 URL은 response['QueueUrl']에서 확인할 수 있습니다.
26. AWS SDK를 사용하여 Amazon SQS 큐 확인
Python을 사용하여 Amazon SQS 큐를 확인하는 예시 코드입니다.
import boto3
# Create SQS client
sqs = boto3.client('sqs')
# List SQS queues
response = sqs.list_queues()
# Print out the queues
print('Queues:')
for url in response['QueueUrls']:
print(url)
위 코드는 list_queues 메서드를 사용하여 계정에 연결된 모든 Amazon SQS 큐의 URL 목록을 반환합니다. 반환된 URL은 response['QueueUrls']에서 확인할 수 있습니다.
27. AWS SDK를 사용하여 Amazon SQS 메시지 전송
Python을 사용하여 Amazon SQS 큐에 메시지를 전송하는 예시 코드입니다.
import boto3
# Create SQS client
sqs = boto3.client('sqs')
# Send message to SQS queue
response = sqs.send_message(
QueueUrl='https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue',
MessageBody='Hello world!'
)
print(response['MessageId'])
위 코드는 send_message 메서드를 사용하여 Amazon SQS 큐에 메시지를 전송합니다. QueueUrl 매개 변수에 큐 URL을, MessageBody 매개 변수에 전송할 메시지를 입력합니다. 전송된 메시지의 ID는 response['MessageId']에서 확인할 수 있습니다.
28. AWS SDK를 사용하여 Amazon SQS 메시지 수신
Python을 사용하여 Amazon SQS 큐에서 메시지를 수신하는 예시 코드입니다.
import boto3
# Create SQS client
sqs = boto3.client('sqs')
# Receive message from SQS queue
response = sqs.receive_message(
QueueUrl='https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue',
MaxNumberOfMessages=1,
VisibilityTimeout=30,
WaitTimeSeconds=20
)
message = response['Messages'][0]
receipt_handle = message['ReceiptHandle']
print(f"Received message: {message['Body']}")
# Delete the message from the queue
sqs.delete_message(
QueueUrl='https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue',
ReceiptHandle=receipt_handle
)
위 코드는 receive_message 메서드를 사용하여 Amazon SQS 큐에서 메시지를 수신합니다. QueueUrl 매개 변수에 큐 URL을, MaxNumberOfMessages 매개 변수에 한 번에 수신할 메시지 수를, VisibilityTimeout 매개 변수에 메시지의 가시성 제한 시간을, WaitTimeSeconds 매개 변수에 수신할 메시지를 기다릴 최대 시간을 입력합니다. 반환된 메시지 목록 중 첫 번째 메시지의 내용은 message['Body']에서 확인할 수 있습니다. ReceiptHandle은 메시지를 삭제할 때 사용됩니다. 메시지를 삭제하려면 delete_message 메서드를 사용하고 QueueUrl 매개 변수에 큐 URL을, ReceiptHandle 매개 변수에 삭제할 메시지의 ReceiptHandle 값을 입력합니다.
이상으로 AWS CLI와 AWS SDK를 사용하여 Amazon SQS 큐를 생성하고 확인하며 메시지를 전송 및 수신하는 방법에 대해 알아보았습니다. Amazon SQS를 사용하면 손쉽게 분산 시스템에서 메시지 전송 및 처리를 구현할 수 있습니다.
'퍼블릭 클라우드' 카테고리의 다른 글
[aws] Amazon Linux 2023(AL2023)의 상용 출시 (0) | 2023.03.26 |
---|---|
[aws] Amazon EC2 t3a.medium 인스턴스에서 NGINX와 PHP-FPM을 사용하여 웹 서버를 구축하고 최대 동시 접속자 수를 설정하는 방법 (0) | 2023.03.24 |
[aws] Amazon Simple Queue Service (SQS)란, 사용법 (0) | 2023.03.21 |
[aws] amazon-linux-extras 명령어 (0) | 2023.02.27 |
[aws] EFK 스택 구성하기(efk stack setup) (0) | 2023.02.24 |