WiseN

[속보] EC2 계열 리소스 ID 길이 연장 소식 (8월부터 적용)

Jul 26,2018   |   AWS

작성자_최준승

페이스북 공유하기 트위터 공유하기
Blog thumbnail

여기서 다루는 내용



· 들어가며
· Opt-In 기간이란?
· 적용대상 객체
· 적용시점 확인 및 영향도
· 마치며







무슨 리소스ID 길이가 연장된다구요?






안녕하십니까, GS네오텍 최준승입니다.

오늘은 최근에 AWS에서 공지하고 있는 리소스ID 길이 연장 관련한 포스팅을 하려고 합니다.
메일도 자꾸 날아오고. EC2 콘솔 띄울때마다 우측 상단에 뭔가 시커멓게 뜨던 알림을 여러분도 기억하실겁니다.


※ 자꾸 신경쓰이게 뜨는 팝업.. 뭔가 길어진다는건 알겠는데.. 어쩌라는거지.. 몰라 무서워 귀찮아..

비슷한 사례가 2016년쯤에도 한번 있었고, 올해 초에도 공지가 여러번 나간 내용이긴 합니다만.
그래도 혹시 모르니 돌다리 한번 더 뚜들긴다고 생각하고 관련 내용을 한번 더 살펴보도록 하겠습니다.

우선 대체 무엇이 바뀐다는 것이냐?
예를 들면 VPC subnet 객체 ID 중 고유값 항목이 아래처럼 8자리에서 17자리로 변경됩니다.

  • subnet-12345678 에서

  • subnet-12345678901234567 형식으로 변경됩니다



기본적으로 모든 객체의 ID는 객체가 생성되는 시점에 할당을 받습니다. 그리고 해당 객체가 삭제되기 전까지는 유지됩니다.

8월부터 적용되는 사항은

  • 일부 항목의 객체 ID가 생성시 이렇게 길어진다는 것

  • 그리고 이 변경이 해당 시점부터 강제로 적용된다는 것입니다

  • ※ 단, 기존 객체의 ID는 길이를 포함하여 변경되지 않습니다


올해초부터 지금까지는 Opt-In 기간이라고 해서
원하는 사용자에 한해 원하는 항목에 이 변경사항을 적용할 수 있도록 계도(?)하는 시범 기간이었는데요.
이제 시범 기간이 끝난 셈입니다. 그렇다면 Opt-In 기간이란 과연 무엇일까요?





Opt-In 기간이란?






질답으로 살펴보겠습니다.

▨ Opt-In 기간은 무엇인가요?
→ 일시 적용에 따른 부작용을 막기 위해, 원하는 사용자에 대해 원하는 항목을 先적용할 수 있도록 하는 일종의 계도 기간입니다.

▨ 선적용을 선택하면 어떻게 되는 건가요?
→ 해당 Region / 해당 항목에 대해, 이후 시점부터 새로 생성되는 객체 ID가 긴 길이에 맞게 생성됩니다. (기존 객체 ID는 변경되지 않음)

▨ 이번 연장건은 언제부터 선적용이 가능했나요?
→ `18년 2월경부터 AWS Manangement Console에 선적용 항목 선택 메뉴가 추가되었습니다. (CLI/SDK로도 제공)

▨ 저는 그런거 못봤는데요. 어디 있었나요?
→ [AWS Management Console] ▷ [EC2] ▷ [EC2 Dashboard] ▷ 우측 상단 Resource ID length management



▨ 선적용을 설정하는 단위는?
→ 기본적으로 설정은 Region 단위로 독립적입니다. 따라서 원칙적으로는 각 Region별로 원하는 항목을 개별적으로 선택해야 합니다.


※ 다행히 AWS는 짜증이 폭발하는 사용자를 위해 "모든 Region/모든 항목"이 일괄적용되는 "Switch to longer IDs" 버튼을 만들어 놓았다

이번 ID 길이 변경건은 `18년 1월에 최초 공지되었고, `18년 2월부터 Opt-In 기간을 제공했으며, 이번 `18년 8월부터 강제 적용됩니다.

그렇다면 이번에 ID가 길어지는 대상 객체는 무엇일까요?





8월부터 ID 길이가 길어지는 대상 객체






8월부터 강제 적용되는 긴길이 객체 ID 대상은 다음과 같습니다. (엄밀히 얘기하면 강제 적용 Deadline은 `18년 7월 30일)

총 27개 항목입니다.


  • bundle

  • conversion-task

  • customer-gateway

  • dhcp-options

  • elastic-ip-allocation

  • elastic-ip-association

  • export-task

  • flow-log

  • image

  • import-task

  • internet-gateway

  • network-acl

  • network-acl-association

  • network-interface

  • network-interface-attachment

  • prefix-list

  • route-table

  • route-table-association

  • security-group

  • subnet

  • subnet-cidr-block-association

  • vpc

  • vpc-cidr-block-assocation

  • vpc-endpoint

  • vpc-peering-connection

  • vpn-connection

  • vpn-gateway



넓은 범위에서는 EC2 관련 객체가 대부분이고, 좁게 보면 VPC 관련 객체가 主네요.





적용시점 확인 및 영향도






재밌는 부분은 강제로 적용이 되는 시점 또한 AWS 계정별 Region 별로 다르다는 점입니다.

위에서 소개드린 Resource ID length management 메뉴에서 확인해 보시면 Deadline을 확인하실 수 있는데요.
보시다시피, 제 계정 서울 리전의 경우 데드라인이 8월 1일 9시인것을 확인할 수 있습니다.


※ 다른 Region도 확인해보시면 Deadline은 상이합니다

혹시나 해서 다른 AWS 계정의 동일 Region 데드라인도 확인을 해봤는데요. 일부는 같고 일부는 다릅니다.
즉, 계정별로 Region별로 적용 시점이 다릅니다. 따라서 반드시 본인 계정의 적용 시점을 직접 확인해 보셔야 합니다.

자, 이제 마지막으로 가장 중요한 영향도를 생각해 볼 차례인데요.
먼저 AWS에서 제공하는 SDK/CLI의 경우엔 아래 버전에서 긴길이 ID에 영향을 받지 않습니다. (버전 표시가 없는 것은 SDK 버전 무관)


  • AWS CLI v1.10.2+

  • AWS Tools for Windows PowerShell

  • PHP v1

  • PHP v2.8.27+

  • PHP v3.15.0+

  • Boto v1/v2

  • Boto3 v1.2.1+

  • Botocore v1.3.24+

  • Ruby v1/v2

  • Java

  • JavaScript

  • .NET

  • Go



문제는 객체 ID가 포함된 정보를 관리하는 별도 시스템을 구축한 경우, 길이 변경에 따른 영향이 없는지를 확인해 봐야 한다는 점입니다.
테이블 필드 길이가 너무 빡빡하게 설정되어 있거나. 객체 ID를 파싱하는 길이가 상수이거나 하는 경우엔 문제가 되겠죠.

그간 히스토리를 보면, 길이 변경에 따른 큰 이슈는 따로 접해보지 못했습니다.
어떻게 보면 객체 ID를 따로 관리하고 이런 부분이 일반 AWS 사용자에겐 좀처럼 없었을 것 같기도 하구요.





마치며






오늘은 오는 8월부터 강제 적용되는 긴길이 객체 ID에 대해 살펴보았습니다.

제 예상으로는 크게 이슈가 없을 것 같긴 한데요.
새로 생성되는 객체에 한해 적용되니, 뭔가 이슈가 생기더라도 새로 뭔가를 만들었을때 발생할 겁니다.

유념하셔서, 돌발치 못한 이슈에 대응하는데 도움이 되시길 바라구요.
좀 더 자세한 내용은 AWS 공식 링크(LINK1, LINK2)를 확인해보시기 바랍니다.

그럼 마치겠습니다. 끝!