2022
この記事は、Japan APN Ambassador Advent Calendar 2022の9日目のエントリになります。 はじめに 2022年10月に「金融リファレンスアーキテクチャ 日本版」も一般公開され、ミッションクリティカルなシステムへのクラウド活用が加速していくと思われます。 そのような潮流のなか、システムの信頼性(安全性)に対し、従来製造業を中心に活用されている「FMEA(Failure Mode and Effects Analysis)」(故障モード・影響解析)が、ソフトウェア開発でも有効なアプローチではないかと思い、ここに簡単にご紹介したいと思います。 サマリ AWSホワイトペーパ「AWSでのミッションクリティカルな金融サービスアプリケーションの構築」から、FMEAサンプル2件(アプリ分析、インフラ分析)を確
Read more
はじめに 前回は、VPCにInternet Gatewayを設置しない完全にプライベートな環境での、ブラウザを使うEC2操作を見ました。 しかしこのままでは、yumの更新、npmなど各種パッケージ経由でのツール導入、(インターネットにあるRESTエンドポイントを使う)AWS CLI操作などできません。 そこで今回は、インターネットへのアウトバウンド通信を許可するためにNAT GWを設置しようと思います。トラフィックを少し管理するために。Network Firewall というIPS/IDS相当のサービスを設置したいと思います。 なお、今回の検証で、Network Firewallは1,400円/日程度の費用が発生しました。(1 endpoints x 24 hours x 0.395 USD = 9.48 USD 148円/USD 換算
Read more
はじめに VPCにInternet GWを割当てず、プライベートサブネットにあるサーバ(EC2)を操作する方法です。Cloud9(Amazon Linux)と、Windows Server(ブラウザを使ったGUI操作)を説明します。 [参考]Systems Manager を使用してインターネットアクセスなしでプライベート EC2 インスタンスを管理できるように、VPC エンドポイントを作成するにはどうすればよいですか? 構成 基盤構築(Terraform) ネットワークなどの基盤構築には、Terraformを活用しました。コードはこちら(GitHub)からダウンロードできます。 VPCパラメータ resource "aws_vpc" "Main" { cidr_block = var.main_vpc_cidr instance_tenancy = "default" enable_dns_hostnames = true enable_dns_support = true tags = { Name = "${var.system_name}-vpc" } } Bastionサブネットパラメー
Read more
1. はじめに ここでは、前回の記事「AWS App2Container(お試し編)」では触れられなかったデプロイについて試してみます。 実際は、次の3ステップでデプロイできて衝撃的でした! deployment.jsonを編集し、「ECS」か「EKS」を選択(AppRunnerも選択可)。 app2containerコマンド(オプションgenerate app-deployment)でマニフェスト作成(一部S3に格納される) CloudFormationでデプロイ そして、ステップ2の「app2containerコマンド」の引数オプションとして「–deploy」を指定すると、ステップ3すら不要です^^ それでは試してみましょう。 2. マニフェス
Read more
はじめに 唐突ですが、AWS Workshopsというサイトをご存知でしょうか? AWS Workshopsは、AWSが公式に提供しているハンズオンコンテンツで、AWS各種サービスについて、実際に手を動かしてみたい場合に大変重宝するサイトです。 https://workshops.aws/ さてこのサイト、とてもお洒落な作りになっていますが、どのように作られているのでしょうか? 答えは、Hugoと言われるGo製の静的サイトジェネレータと、Learnと呼ばれるテーマ(Theme)を使って作られているようです。 https://gohugo.io/ https://jamstackthemes.dev/theme/hugo-theme-learn/ 実はこのAWS Workshopsのコンテンツの一つに、このようなハンズオンサイトの作り方のハンズオンがあります!折角なので、試してみたいと思います。 https://hosting-hugo-content.workshop.aws/ ※ハンズオンの主目的は、Hugoの
Read more
はじめに AWS App2Containerは、起動中のjavaアプリをコンテナイメージに変換し、ECSやEKSで稼働させるためのテンプレートを生成するツールになります。 Accelerating your Migration to AWS 下記、App2ContainerのUerGuideにある通り、サポートされるプラットフォームと、そうでない場合で挙動が変わるため、本記事ではその辺を試してみたいと思います(ここでは、ECSやEKSでの稼働検証は含まれません)。 For supported application frameworks, App2Container targets only the application files and dependencies that are needed for containerization, thereby minimizing the size of the resulting container image. This is known as application mode. If App2Container does not find a supported framework running on your application server, or if you have other dependent processes running on your server, App2Container takes a conservative approach to identifying dependencies. This is known as process mode. For process mode, all non-system files on the application server are included in the container image. 本記事のスコープは下記になります。 以降、次の流れで検証します。 App2
Read more
はじめに 前回(「AWS App2Container(お試し編)」)で試した非サポートアプリの場合(ex. SpringBootアプリ)、サポートされるtomcatアプリと比較すると(802MB)、デフォルトで生成されたコンテナイメージは16.1GBとかなりのサイズとなっていました。 root@ip-10-0-1-112:~# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE java-generic-6ef9339e latest 8ef7ef3e7db0 38 minutes ago 16.1GB java-tomcat-5da060de latest cc2de1db6ef8 58 minutes ago 802MB そこで、ここでは、下記ガイドラインに従いサイズをスリム化してみようと思います。 Optimize AWS App2Container generated Docker images ポイントは、App2Containerは、分析結果であるanalysis.jsonをベースにイメージを生成するため、不要なファイルを含めないようにanalysis.jsonを編集することになります。 コンテナイメージ分析(di
Read more