[アップデート] AWS Cloud9が大阪リージョンに対応しました

大阪リージョンでAWS Cloud9が利用可能になりました! 早速使ってみました。
2021.09.08

どうも、あしさんです。

みなさん、AWS Cloud9は使っていますか?

先日、AWS Cloud9が大阪リージョンに対応したというアップデートが来ましたので、早速試してみました。

Cloud9 is now available in 2 more regions

AWS Cloud9 is now available in Asia Pacific (Osaka) and Africa (Cape Town). AWS Cloud9 is a cloud-based integrated development environment (IDE) that lets you write, run, and debug your code with just a browser.

Learn more about AWS Cloud9 by visiting our product page or the AWS console. For a full list of AWS Regions where AWS Cloud9 is available, please visit our region table.

2行まとめ

  • 大阪リージョンでAWS Cloud9が使えるようになったぞ!
  • 大阪リージョンの一部のAZでは、t2系インスタンスに対応していないので注意!

実際に構築してみた

マネジメントコンソール(マネコン)から確認すると、大阪リージョンが選べるようになっていました!

マネコンポチポチで構築したらエラー出た

その後、意気揚々とマネコンポチポチ&デフォルト設定でCloud9環境を構築したところ、エラーとなってしまいました。

なんだなんだ?と思い、Cloud Formationのログを確認してみると、

t2.microインタンスはap-northeast-3bに対応してないよ、というエラーが出ました。

エラー内容から読み解くと、Cloud9作成時に選択されたデフォルトVPCのAZがap-northeast-3bだったようです。

※ちなみに私の環境のap-northeast-3bのZoneIdは、apne3-az1です。

% aws ec2 describe-availability-zones \
>  --region ap-northeast-3 \
>  --query 'AvailabilityZones[].{RegionName:RegionName, ZoneName:ZoneName, ZoneId:ZoneId}' \
>  --output table
----------------------------------------------------
|             DescribeAvailabilityZones            |
+----------------+-------------+-------------------+
|   RegionName   |   ZoneId    |     ZoneName      |
+----------------+-------------+-------------------+
|  ap-northeast-3|  apne3-az3  |  ap-northeast-3a  |
|  ap-northeast-3|  apne3-az1  |  ap-northeast-3b  |
|  ap-northeast-3|  apne3-az2  |  ap-northeast-3c  |
+----------------+-------------+-------------------+

大阪リージョン(各AZ)はどのインススタンスタイプが使える?

よく使うt2,t3系のインスタンスタイプのうちで使用可能なものをAWS CLIを使用して調べてみました。

現状下記の状況になっているとわかりました。

  • t2系インスタンスはap-northeast-3a(apne3-az3)のみ対応している。
  • t3系インスタンスはap-northeast-3a,3b,3c(apne3-az1〜3)どのリージョンも対応している。
## 以下t2について ##
$ aws ec2 describe-instance-type-offerings \
> --location-type "availability-zone" \
> --filters Name=location,Values=ap-northeast-3a \
> --region ap-northeast-3 \
> --query 'InstanceTypeOfferings[].InstanceType[]' \
> | egrep "t2.*"
    "t2.2xlarge", 
    "t2.micro", 
    "t2.small", 
    "t2.medium", 
    "t2.xlarge", 
    "t2.large", 
    "t2.nano", 
$ aws ec2 describe-instance-type-offerings \
> --location-type "availability-zone" \
> --filters Name=location,Values=ap-northeast-3b \
> --region ap-northeast-3 \
> --query 'InstanceTypeOfferings[].InstanceType[]' \
> | egrep "t2.*"

#### 出力なし ####

$ aws ec2 describe-instance-type-offerings \
> --location-type "availability-zone" \
> --filters Name=location,Values=ap-northeast-3c \
> --region ap-northeast-3 \
> --query 'InstanceTypeOfferings[].InstanceType[]' \
> | egrep "t2.*"

#### 出力なし ####


## 以下t3について ##
$ aws ec2 describe-instance-type-offerings \
> --location-type "availability-zone" \
> --filters Name=location,Values=ap-northeast-3a \
> --region ap-northeast-3 \
> --query 'InstanceTypeOfferings[].InstanceType[]' \
> | egrep "t3.*"
    "t3.2xlarge", 
    "t3.xlarge", 
    "t3.nano", 
    "t3.small", 
    "t3.large", 
    "t3.medium", 
    "t3.micro", 
$ aws ec2 describe-instance-type-offerings \
> --location-type "availability-zone" \
> --filters Name=location,Values=ap-northeast-3b \
> --region ap-northeast-3 \
> --query 'InstanceTypeOfferings[].InstanceType[]' \
> | egrep "t3.*"
    "t3.large", 
    "t3.micro", 
    "t3.medium", 
    "t3.nano", 
    "t3.xlarge", 
    "t3.2xlarge", 
    "t3.small", 
$ aws ec2 describe-instance-type-offerings \
> --location-type "availability-zone" \
> --filters Name=location,Values=ap-northeast-3c \
> --region ap-northeast-3 \
> --query 'InstanceTypeOfferings[].InstanceType[]' \
> | egrep "t3.*"
    "t3.xlarge", 
    "t3.2xlarge", 
    "t3.large", 
    "t3.micro", 
    "t3.small", 
    "t3.medium", 
    "t3.nano",

t3.smallインスタンスで作り直し!

再度、t3系のt3.smallインスタンスでCloud9環境を作り直しました。

無事、大阪リージョンでCloud9環境を構築することができました。

大阪リージョンに構築できているか?

念の為、グローバルIPアドレスを確認してみると、、、

$ curl https://ifconfig.io
15.152.86.216

確かにグローバルIPアドレスが、大阪リージョンのIPアドレスレンジ内にあることが分かりますね。

(今回はCloud9のIPアドレスレンジではなく、EC2のIPアドレスレンジで作成されているようにみえます。)

#### ap-northeast-3における、Cloud9用のグローバルIPレンジ ####
$ curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.region=="ap-northeast-3") | select(.service=="CLOUD9") | .ip_prefix'                                   
15.152.24.0/27
15.152.24.32/27

#### ap-northeast-3における、EC2用のグローバルIPレンジ ####
$ curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.region=="ap-northeast-3") | select(.service=="EC2") | .ip_prefix'                                       
13.208.0.0/16
15.177.77.0/24
3.5.240.0/22
## ↓ おそらくここのセグメントから払い出されたと思われる ##
15.152.0.0/16
43.250.194.0/24
99.77.140.0/24
52.95.225.0/24
52.94.249.96/28
99.150.96.0/21

最後に

AWS Cloud9 は、ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) です。Cloud9 には、JavaScript、Python、PHP などの一般的なプログラム言語に不可欠なツールがあらかじめパッケージ化されているため、新しいプロジェクトを開始するためにファイルをインストールしたり、開発マシンを設定したりする必要はありません。

共同開発環境として利用できたりと、とても便利なサービスですが、今までは東京リージョンでしか利用できませんでした。 大阪リージョンでも利用可能になったことで、レイテンシの抑制や東京リージョンとの冗長構成など様々な新しい構成の検討が可能になりますね!

みなさん、大阪リージョンでのCloud9利用を検討してみてはいかがでしょうか?

参考リンク