この記事は、ニフティグループ Advent Calendar 2019 の18日目の記事です。
昨日は @fuku710 さんのハッカソンのハックためになりましたね!
私は今月 AWS re:Invent 2019 に参加してきたのですが、同イベント中にも Hackathons and Jams というハッカソンが開催されていたので、次の機会があれば、@fuku710 さんの記事を参考にしながら参加したいですね!
残念ながら、ハッカソンには参加できませんでしたが、たくさんのセッションやワークショップに参加したので、その中から ARM ベースのEC2インスタンスを利用するワークショップ [CMP306 - Getting started with Arm-based Amazon EC2 instances]
(https://www.portal.reinvent.awsevents.com/connect/sessionDetail.ww?SESSION_ID=95746) を紹介したいと思います。
はじめに
AWS の ARM への取り組みは 2004年 Amazon Lab126 (Kindle などを作っているチーム) から始まったそうです。その後、ネットワークのオフロードや Nitro システムの構築など、カスタムシリコンの開発に情熱的に取り組んできたようです。
今年は Graviton2 を採用した次世代の ARM インスタンス(M6g/R6g/C6g)も発表されました。
Graviton と比べると性能も7倍に上がったようですし、コストも20%程度は削減できるということで、是非一度使ってみたい!と思いワークショップに参加しました。
ワークショップの内容
1. arm64 で Java を動かす
Amazon Corretto を使用したアプリを A1インスタンスで動作させます。
- インスタンスの作成(AMI は Amazon Linux 2 を選択し、アーキテクチャに 64-bit Arm を選ぶこと)
- SSH でログインし Amazon Corretto 8 を
amazon-linux-extras
でインストールします - 同様に
amazon-linux-extras
でtomcat8.5
もインストールし簡単のJSPを用意します - セキュリティグループで 8080 を開けて結果が表示されれば成功です!簡単ですね!
2. x86 と arm64 インスタンス混在でコンテナを動かす
- ELB のバックエンドに x86 と arm64 インスタンスを作成する(t3.small を追加)
-
docker buildx
を実行して x86 と arm64 のコンテナを同時に作成する
3.arm64 で CodeBuild を実行し BB を動かす
参考資料(※ワークショップで使ったURLなので1ヶ月程度で消えるかも)
https://arthurpt-public-ui.s3-eu-west-1.amazonaws.com/reInvent2019-cmp306-arm-instances/index.html