2021-01-01から1年間の記事一覧

本番前総復習

Direct Connect DirectConnectのインターフェースを整理する。 DirectConnectLocation DirectConnectと顧客側の回線が接続される物理インターフェース部分。世界中のあらゆる箇所にある。各DirectConnectLocationは特定のリージョンが担当を受け持つが、その…

CHAPTER8 Deployment and Operation

Container Service 前提として、AWSではコンテナオーケストレーションの方法としてECSとKubanetes両方を提供している。ECSの方が先に提供され、また管理も遥かに自動化されている。その後後発としてAWS ManagedのKubanetesが提供されたが、これはKubanetesが…

CHAPTER6 Architecting to Scale

CloudFront-"Behavior" CloudFrontでマルチオリジンとCache Behavior設定してみた | DevelopersIO AWSの試験の中に、CloudFrontの機能としてBehaviorと呼ばれる機能が出てくる(日本語で何と訳されるかは謎)。 これはURLのパスごとにオリジンとするインスタン…

CHAPTER3 Security

KMSとSecret Manager Secret Managerの役割 コード内のハードコードされた認証情報 (パスワードを含む) を、Secrets Manager への API コールで置き換えて、プログラムでシークレットを取得することができます。 既に作成済のキー(パスワード)を暗号化して保…

CHAPTER2 Networking

SNI SNIとはServer Domain Indicationの略。 これを理解するにはまずTLSの仕組みを抑えておく。 TLS 確認すべきはTLSはOSI参照モデルのセッション層のプロトコルであり、HTTPレイヤよりもずっと下ということである。 TLSは本来クライアントが「接続するサー…

CHAPTER1 Data Stores

Glaicer Vlotlock Amazon S3 Glacier ボールトロック - Amazon S3 Glacier Glaicerには Vlotロック Vlotアクセスポリシー が存在する。VlotとはS3でいうところのバケットであり、バケットに対するアクセスポリシーとバケットそのものに対するロックに2つがサ…

Ch8. 既存ソリューションの継続的改善

lambdaのインターネット接続 そもそもlambdaは自分のVPCの中で立ち上げることも、VPCの外で立ち上げることも出来る。 All Lambda functions run securely inside a default system-managed virtual private cloud (VPC). However, you can also configure yo…

Ch7. コスト管理

スポットフリート スポットインスタンスは設定した入札価格を上回る使用料が設定された場合に使用できなくなってしまうことから、限られた場合にしか利用できないとされていた。 スポットフリートでは指定した分のリソースが確保できるように、スポットイン…

Ch6. 移行の計画

CloudFront クエリ文字列パラメータに基づくコンテンツのキャッシュ - Amazon CloudFront CloudFrontによるコンテンツのキャッシュはURLを元に行われる。URLの?より後ろクエリ文字列パラメータに応じてキャッシュするコンテンツを変更したいような場合に、上…

Ch5. 新しいソリューションの設計

フロントエンドリスナー Application Load Balancer 用の HTTPS リスナーを作成する - Elastic Load Balancing リスナーとは接続リクエストをチェックするプロセスです。 アプリケーションロードバランサに紐付ける、接続を確認するためのプロセスをフロント…

Ch4. 組織の複雑さに対応する設計

AWSアカウントを跨いだリソースアクセス 別のAWSアカウントで実行されているアプリケーションに対して、自分のAWSアカウントのリソースへのアクセスを実現したい場合、IAMロールによる権限の委任(Assume Role)を利用することが出来る。 Assume Roleとは IAM …

Ch14. Well-Architected Framework

信頼性 復旧手順のテスト オンプレミスのシステムではロードバランサやネットワーク機器はシステム間で共有されており、「一つを意図的にダウンさせて障害をシミュレートする」と言った使い方はほとんどできない。 クラウドでは各システムごとに(そして各環…

Ch.8 セキュリティとアイデンティティ

アカウントの種類 アカウントの種類は AWSアカウント(ルートユーザー) IAMユーザー が存在する。更にAWSアカウントを束ねたAWS Organizations(組織アカウント)も存在する。これは複数のアカウントの請求を一括決済するために行われる。 AWSアカウントは全サ…

Ch12. 分析サービス

Amazon EMR Amazon Redshiftと似た分散処理フレームワーク。Redshiftとの大きな違いについては下記に述べられているが、Redshiftが企業の生産活動を記録した構造化されたデータを分析するのに対して、EMRは非構造データに対する分析に対応する。 よくある質…

Ch11. プロビジョニングサービス

AWS上での環境構築を自動化するサービス。各種インスタンスの用意やApachのインストールと設定などを自動化してくれる。 Elastic Beanstalk 定番のWebアプリケーション構成・バッチサーバ構成を雛型としてAWS側が用意しており、その環境をAWS上に素早く導入…

Ch10. 開発者ツール

Code Commit Code CommitはGitの中央リポジトリ(リモートレポジトリ)を提供してくれるサービス。 Github(.comの方)のAWS版であり、リポジトリ管理のためのインフラ構築の労力を省くことが出来る。 開発の携わる全てのメンバがAIMユーザである必要があり、こ…

Ch.9 アプリケーションサービス

AWSでのアプリケーションサービスは、外部のアプリケーションをEC2インスタンスなどを利用して自前で運用することも可能である。 AWSのマネージドサービスを利用すると、AWSインフラ上に冗長性とコスト最低化が図られた状態でサービスが用意される。AWSの認…

Ch7. データベース

RDS RDSはマネージドサービスではあるものの、保存するストレージはEBSから選択することになる。(OracleやPostgresql等アプリケーションが実行されるコンピューティングをマネージドサービスとして提供してくれている。) RDSでは各DBの全ての機能を利用でき…

Ch6. ストレージ

ストレージサービスは大きく3つに分類できる。 【ブロックストレージ】データを物理的なディスクブロックに保存するサービス。データベースの保存領域はここに該当する。この3つの中で最もパフォーマンスの高いストレージである。 【ファイルストレージ】フ…

Ch.5 監視

Cloud Watch Cloud Watch AWSの各種サービスの状況を監視する。このような各サービスの状態のことを【メトリクス】と呼んでおりEC2のCPU使用率やlambdaのエラーの回数などがそれにあたる。 CloudWatch メトリクスを発行する AWS のサービス - Amazon CloudWa…

Ch3. Computing

EC2 インスタンスタイプ EC2を起動するときは「インスタンスタイプ」というハードウェアの選択が必要になる。 インスタンスタイプには例えば「t2.micro」といった形式名がついていて、この名前がインスタンスのハードウェアの特徴を示している。 記号 説明 t…

Ch2. CDNとDNS

Content Delivery Network AWS Cloud Frontでは世界中に存在するAWSのローケーションを利用してCDNを構築することが出来る。 コンテンツの格納にはバックエンドサーバ(オリジンサーバ)が必要になるが、そのオリジンサーバとして ELB EC2 S3 オンプレミスの…

Ch1. ネットワーク

Multi-AZ 1つのリージョンには複数のAZが存在する。各AZ間は高速なインターネット回線で結ばれているのでレイテンシはほとんど問題にならない。 単一のAZのみでシステムを構築した場合、システムの信頼性はオンプレミスと大差ない。 リージョンを跨いだ構成…

Ch11. JDBC

JDBCのクラス Connection con = null; Statement stmt = null; ResultSet rs = null; String url = "jdbc:mysql://localhost/golddb"; con = DriverManager.getConnection(url,"root", "*****"); stmt = con.createStatement(); String sql = "SELECT dept_c…

Ch9. NIO2

Pathクラス import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; public class TryNIO2 { public static void main(String[] args) throws IOException { Path pathToTextFile = Paths.get("C:", "Users", "broad", "Deskt…

Ch12. ローカライズ

ロケールクラス ただの「地域」と「言語」を入れておくための入れ物。標準出力したとき、デフォルトでは環境の言語で表示される。設定した言語で表示される訳ではないので注意する。 標準出力で特定の言語で表示させたい場合は、表示するときのメソッドの引…

Ch10. マルチスレッド

マルチスレッド マルチスレッドの実現方法は2通り。 Threadクラスを継承したクラスを作って、並行処理されたい内容をrunメソッドに実装する。 Runnableインターフェースを実装して、並行処理させたい内容をrunメソッドに実装する。 Runnableインターフェース…

Ch.8 入出力

Fileクラス ファイル名やディレクトリ名の取得に用いられる。 import java.io.File; import java.util.Arrays; public class FileIO { public static void main (String args[]){ File thisDr = new File("C:\\Users\\broad\\Desktop"); Arrays.stream(thisD…

Ch.7 日付・時刻API

日付時刻クラス import java.time.*; public class DataTimeSample { public static void main(String[] args){ System.out.println("LocalDate :" + LocalDate.now()); // 'LocalDate :2021-03-28' System.out.println("LocalTime :" + LocalTime.now()); /…

Ch6. 例外処理

マルチキャッチ catchする例外クラスを複数並べて記述できる。 ただし、並べて書く際は継承関係のある例外クラスを記述できない。 public class ExceptionSample { public static void main(String[] args){ try{ throw new SubSubException(); }catch (Exce…