Aws-cli: aws s3api create-bucketμ—μ„œ us-east-2에 λŒ€ν•œ 였λ₯˜ λ°œμƒ

에 λ§Œλ“  2017λ…„ 05μ›” 12일  Β·  16μ½”λ©˜νŠΈ  Β·  좜처: aws/aws-cli

aws s3api create-bucket --bucket dev-xxxx-com-state --region us-east-2

CreateBucket μž‘μ—…μ„ ν˜ΈμΆœν•  λ•Œ ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜(IllegalLocationConstraintException)κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ§€μ •λ˜μ§€ μ•Šμ€ μœ„μΉ˜ μ œμ•½ 쑰건이 이 μš”μ²­μ΄ μ „μ†‘λœ 지역별 μ—”λ“œν¬μΈνŠΈμ™€ ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

us-east-1κ³Ό 잘 μž‘λ™ν•©λ‹ˆλ‹€.

aws --버전
aws-cli/1.7.45 파이썬/2.7.10 λ‹€μœˆ/16.5.0

documentation guidance s3api service-api

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

CLIλ₯Ό 톡해 버킷을 μƒμ„±ν•˜λ €λŠ” 경우 λ‹€μŒμ„ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.

aws s3api create-bucket --bucket my-bucket-name --region us-west-2 --create-bucket-configuration LocationConstraint=us-west-2

λͺ¨λ“  16 λŒ“κΈ€

us-east-1 λ₯Ό μ œμ™Έν•œ λͺ¨λ“  지역에 λŒ€ν•΄ μœ„μΉ˜ μ œμ•½ 쑰건을 지정해야 ν•©λ‹ˆλ‹€. μ˜ˆμ œλŠ” λ¬Έμ„œ λ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

λ˜λŠ” mb λ₯Ό μ‚¬μš©ν•˜μ—¬ 이λ₯Ό μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

LocationConstraintλ₯Ό μ‚¬μš©ν–ˆμ§€λ§Œ κ²°κ΅­ μ˜ˆμ™Έκ°€ λ°œμƒν–ˆμ§€λ§Œ 맀개 λ³€μˆ˜μ˜ μ„ΈλΆ€ 정보λ₯Ό ν™•μΈν•˜λ©΄ μœ„μΉ˜μ— λŒ€ν•œ μœ ν•œ λͺ©λ‘μ΄ μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. AWS μ›Ή μ½˜μ†”μ„ μ‚¬μš©ν•˜μ—¬ 지역이 us-east-2인 버킷을 생성할 수 μžˆμ§€λ§Œ 지역이 us-east-2인 locationconstraintλ₯Ό μ‚¬μš©ν•œ 후에도 awscli create-bucket을 톡해 버킷을 생성할 수 μ—†μŠ΅λ‹ˆλ‹€.

{
"LocationConstraint": "EU"|"eu-west-1"|"us-west-1"|"us-west-2"|"ap-south-1"|"ap-southeast-1"|"ap -southeast-2"|"ap-northeast-1"|"sa-east-1"|"cn-north-1"|"eu-central-1"
}

mbλŠ” λŒ€μ²΄ 방법인 것 κ°™μœΌλ©° μ‹œλ„ν•  μ˜ˆμ •μ΄μ§€λ§Œ awscli create-bucket은 이 뢈일치λ₯Ό μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

좩돌.

이쀑성 / boto와 λ™μΌν•œ λ¬Έμ œμ— μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€ ... (eu-central-1)
버킷 생성 μ‹œλ„μ—μ„œ λ‹€μŒμ„ μ–»μŠ΅λ‹ˆλ‹€.

<Error><Code>IllegalLocationConstraintException</Code><Message>The EU location constraint is incompatible for the region specific endpoint this request was sent to.</Message><RequestId>237A164CEBB07087</RequestId><HostId>oEDaB4OT/MlUGIJ0j1GJH7ezXqldUZa2sFKRPz3iHqAZsnpOyKiRGDV69hP/FTXK1j90ogcJB/Y=</HostId></Error>

버킷을 μˆ˜λ™μœΌλ‘œ μƒμ„±ν•˜λ©΄ λͺ¨λ“  것이 잘 μž‘λ™ν•©λ‹ˆλ‹€...

둜그 νŒŒμΌμ„ λ΄μ£Όμ„Έμš”...

Boto3μ—μ„œ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

os.environ['AWS_DEFAULT_REGION'] = 'eu-west-2'
myS3 = boto3.resource('s3')
results = myS3.create_bucket(
                             Bucket='zxvxdvx.gsdrgerrrczxczxcgggzxczxczxc',
                             CreateBucketConfiguration={'LocationConstraint': AWS_DEFAULT_REGION}
                            )

CLIλ₯Ό 톡해 버킷을 μƒμ„±ν•˜λ €λŠ” 경우 λ‹€μŒμ„ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.

aws s3api create-bucket --bucket my-bucket-name --region us-west-2 --create-bucket-configuration LocationConstraint=us-west-2

후손을 μœ„ν•΄ 여기에 κ²Œμ‹œν•©λ‹ˆλ‹€. 버킷 이름은 μ „ μ„Έκ³„μ μœΌλ‘œ κ³ μœ ν•©λ‹ˆλ‹€! AWS CLIλŠ” 이미 μ‘΄μž¬ν•˜λŠ” 버킷 κ³Ό μΆ©λŒν•˜κ³  이미 μ‘΄μž¬ν•˜λŠ” λ²„ν‚·μ˜ 리전과 λ‹€λ₯Έ 리전을 μ§€μ •ν•œ 경우 IllegalLocationConstraintException λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. κΈ°μ‘΄ λ²„ν‚·μ˜ μ˜¬λ°”λ₯Έ 지역을 μΆ”μΈ‘ν•˜λ©΄ BucketAlreadyExists μ˜ˆμ™Έκ°€ λ°œμƒν•©λ‹ˆλ‹€.

@thetomasz μ •ν™•νžˆ 같은 λ¬Έμ œκ°€ λ°œμƒν•˜κΈ° 21μ‹œκ°„ 전에 이 글을 κ²Œμ‹œν–ˆλ‹€λŠ” 제 ν–‰μš΄μ„ 믿을 수 μ—†μŠ΅λ‹ˆλ‹€. 정말 κ³ λ§™μŠ΅λ‹ˆλ‹€; 이것이 λ°”λ‘œ λ‚΄ λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€.

λ‹€μŒμ€ λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
aws s3api create-bucket --bucket avengers-docker-eb --region us-east-1 --create-bucket-configuration LocationConstraint=us-east-1

였λ₯˜:
CreateBucket μž‘μ—…μ„ ν˜ΈμΆœν•  λ•Œ 였λ₯˜(IllegalLocationConstraintException)κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. us-east-1 μœ„μΉ˜ μ œμ•½ 쑰건은 이 μš”μ²­μ΄ μ „μ†‘λœ 지역별 μ—”λ“œν¬μΈνŠΈμ™€ ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@tomasz κ²Œμ‹œλ¬Όμ„ μ˜¬λ €μ£Όμ…”μ„œ 정말 κ°μ‚¬ν•©λ‹ˆλ‹€! λ‚˜λŠ” λ§ˆμΉ¨λ‚΄ 이것을 슀슀둜 κΉ¨λ‹«κΈ° 전에 λ¨Όμ € λ‹Ήμ‹ μ˜ κ²Œμ‹œλ¬Όμ„ λ³΄μ•˜λ”λΌλ©΄ μ’‹μ•˜μ„ κ²ƒμž…λ‹ˆλ‹€. λ©”μ‹œμ§€λŠ” 참으둜 ν˜Όλž€μŠ€λŸ½κ³  μ˜€ν•΄μ˜ μ†Œμ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€.

이름이 이미 μ‚¬μš© 쀑인지 ν™•μΈν•˜κ³  μ‹€μ œλ‘œ μ‚¬μš©λœ 경우 버킷이 μžˆλŠ” 지역을 νŒŒμ•…ν•˜λ €λ©΄ "your-bucket-name.s3.amazonaws.com"μ΄λΌλŠ” μ΄λ¦„μ˜ DNS λ ˆμ½”λ“œλ₯Ό ν™•μΈν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄:

$ dig test8765.s3.amazonaws.com

; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> test8765.s3.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39766
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;test8765.s3.amazonaws.com. IN  A

;; ANSWER SECTION:
test8765.s3.amazonaws.com. 2016 IN  CNAME   s3-us-west-2-w.amazonaws.com.
s3-us-west-2-w.amazonaws.com. 5 IN  A   52.218.216.10

;; Query time: 16 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Jan 03 15:16:11 AEDT 2019
;; MSG SIZE  rcvd: 99

이것은 "testbucket"μ΄λΌλŠ” 버킷 이름이 ν†΅κ³Όν•˜μ§€ λͺ»ν•˜λŠ” 이유λ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 같은 λ¬Έμ œκ°€ μžˆμ—ˆλ‹€. aws s3 mb s3://<bucket-name> --region us-east-2 λ₯Ό μ‚¬μš©ν•˜λ©΄ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

방금 이 버그가 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. AWS둜 μ˜€μ„Έμš”. μˆ˜μ •ν•©λ‹ˆλ‹€. 였λ₯˜κ°€ μ „μ—­ λͺ…λͺ… 좩돌인 경우 κ·Έλ ‡κ²Œ λ§ν•©λ‹ˆλ‹€.

λ‚΄ λžŒλ‹€ μŠ€ν¬λ¦½νŠΈμ—μ„œ 버킷 μ•”ν˜Έν™”λ₯Ό μˆ˜ν–‰ν•  λ•Œ 이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. λˆ„κ΅°κ°€ λ„μšΈ 수 μžˆμŠ΅λ‹ˆκΉŒ?

PutBucketEncryption μž‘μ—…μ„ ν˜ΈμΆœν•  λ•Œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€(IllegalLocationConstraintException): ap-east-1 μœ„μΉ˜ μ œμ•½ 쑰건이 이 μš”μ²­μ΄ μ „μ†‘λœ 지역별 μ—”λ“œν¬μΈνŠΈμ™€ ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.: ClientError

CLIλ₯Ό 톡해 버킷을 μƒμ„±ν•˜λ €λŠ” 경우 λ‹€μŒμ„ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.

aws s3api create-bucket --bucket my-bucket-name --region us-west-2 --create-bucket-configuration LocationConstraint=us-west-2

λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆλ‹€

us-east-1μ—μ„œ 버킷을 μƒμ„±ν•˜λ €λŠ” λͺ¨λ“  μ‚¬λžŒμ€ --region us-east-2λ₯Ό λ³€κ²½ν•˜κΈ°λ§Œ ν•˜λ©΄ μ™„λ²½ν•˜κ²Œ μƒμ„±λ˜μ–΄ aws μ½˜μ†”μ— ν‘œμ‹œλ©λ‹ˆλ‹€.

""""--create-bucket-configuration LocationConstraint=us-west-2"""' λ§€κ°œλ³€μˆ˜ μ˜΅μ…˜μ„ μ „λ‹¬ν•œ 후에도 μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

aws s3api create-bucket --bucket my-bucket-name --region us-west-2 --create-bucket-configuration LocationConstraint=us-west-2

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰