'aws'에 해당되는 글 16건

  1. 2020.04.11 Hardware | EPS32 PWM 기능 확인해 보기
  2. 2020.04.09 Hardware | ESP32 의 internal sensor 확인해 보기 2
  3. 2020.04.08 Hardware | ESP32 의 Dual core 확인해 보기 2
  4. 2020.02.02 Software | AWS Certified 자격증 취득기 - 3 12
  5. 2019.09.24 Software | AWS Certified 자격증 취득기 - 2 8
  6. 2019.09.04 Software | AWS Certified 자격증 취득기 - 1 12

Hardware | EPS32 PWM 기능 확인해 보기

|

ESP32 에 관한 포스트는 아래를 참고해 주세요.


* Hardware | ESP32 의 internal sensor 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-internal-sensors

* Hardware | ESP32 의 Dual core 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-Dual-core

* Hardware | ESP32 스펙 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-spec-check

* Hardware | ESP32 간단 사용기
    - https://chocoball.tistory.com/entry/Hardware-simple-review-ESP32




1. PWM


ESP32 에는 PWM (Pulse Width Modulation) 기능이 들어가 있습니다.

LED 의 dimming (밝기) 조절이나, LCD panel 의 색조절 등에 사용되는 기법입니다.


일전에 8x8 LED matrix 를 다양한 색을 표현하기 위해, PWM 을 구현해 주는 전용 보드를 사용해서 확인해 본 적이 있습니다.


* Hardware | 8x8 LED matrix 와 Colorduino 이용해 보기
    - https://chocoball.tistory.com/entry/Hardware-8x8-LED-matrix-Colorduino


이반적인 Arduino 에는 이 기능이 기본 내장이 아닌지라, PWM 을 구현하려면 대응 보드를 사용해야 하는 번거로움이 존재합니다.

그치만, ESP32 는 기본 내장이에요!



PWM 을 통한 활용은 LED 뿐 만 아니라, step motor 난 piezo speaker 등에서도 활용할 수 있습니다.



기본 동작은 높은 주파수를 통해, on/off 를 해주는 시간 (duty) 를 변경하면서 조절하는 방법입니다.

당연히 duty 가 길면 길수록 밝기가 세다거나, 지속적인 동작을 보여주는 원리 입니다.

LED, Step motor, 그리고 Piezo 스피커를 작동시키는 동작원리와 완벽히 같습니다.




2. 코딩


지금까지 몇 번 봐왔던 원리인지라, 바로 코딩에 들어가 봅니다. 참조한 사이트는 아래 입니다.


* ESP32 PWM Example
    - https://circuits4you.com/2018/12/31/esp32-pwm-example/


PWM 을 구현하기 위한 명령어는 라이브러리에 준비되어 있으니, 그냥 사용해 줍니다.


* ledcSetup(PWM_Channel_Number, Frequency, resolution)

- Pass three arguments as an input to this function, channel number, frequency and the resolution of PWM channel at inside the setup function only.


* ledcAttachPin(GPIO_PIN , CHANNEL)

- Two arguments. One is the GPIO pin on which we want to get the OUTPUT of signal and second argument is the channel which we produce the signal.


* ledcWrite(CHANNEL, DUTY_CYCLE)

- ledcWrite function is used to generate the signal with a duty cycle value.


ledcSetupledcAttachPin 은 setup() 에서, 실제 구동은 loop() 에서 ledcWrite 를 사용합니다. digitalWrite 와 비슷하죠.

최종적으로 ESP32 보드에 실장되어 있는 LED 를 가지고 PWM 을 확인한 코드가 아래 입니다.


// Generates PWM on Internal LED Pin GPIO 2 of ESP32
#define LED 2 //On Board LED

int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by

// setting PWM properties
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 10; // Resolution 8, 10, 12, 15

void setup() {
	Serial.begin(115200);
	pinMode(LED, OUTPUT);
	
	// configure LED PWM functionalitites
	ledcSetup(ledChannel, freq, resolution);
	
	// attach the channel to the GPIO2 to be controlled
	ledcAttachPin(LED, ledChannel);
}

void loop() {
	// PWM Value varries from 0 to 1023
	Serial.println("10 % PWM");
	ledcWrite(ledChannel, 102);
	delay(2000);
	
	Serial.println("20 % PWM");
	ledcWrite(ledChannel,205);
	delay(2000);
	
	Serial.println("40 % PWM");
	ledcWrite(ledChannel,410);
	delay(2000);
	
	Serial.println("70 % PWM");
	ledcWrite(ledChannel,714);
	delay(2000);
	
	Serial.println("100 % PWM");
	ledcWrite(ledChannel,1024);
	delay(2000);
	
	// Continuous Fading
	Serial.println("Fadding Started");
	while(1) {
		// set the brightness of pin 2:
		ledcWrite(ledChannel, brightness);
		
		// change the brightness for next time through the loop:
		brightness = brightness + fadeAmount;
		
		// reverse the direction of the fading at the ends of the fade:
		if (brightness <= 0 || brightness >= 1023) {
			fadeAmount = -fadeAmount;
		}
		
		// wait for 30 milliseconds to see the dimming effect
		delay(10);
	}
}




3. LED_BUILTIN


위의 코드를 실행하면 Serial Monitor 에서는 다음과 같이 표시됩니다.


소스에서도 알 수 있듯이, 10% > 20% > 40% > 70% > 100% 으로 LED 를 키고, 그 다음부터는 5/1024 씩 증감하면서 dimming 을 표현해 줍니다.

실제 동작 동영상은 다음과 같습니다.




4. 오실로스코프 확인


여기서 끝내면 심심하니, 실제 파형을 확인해 보려 합니다. 참고한 사이트는 다음과 같습니다.


* ESP32 PWM with Arduino IDE (Analog Output)
    - https://randomnerdtutorials.com/esp32-pwm-arduino-ide/


소스 코드는 다음과 같습니다.


// the number of the LED pin
const int ledPin = 16;  // 16 corresponds to GPIO16
const int ledPin2 = 17; // 17 corresponds to GPIO17
const int ledPin3 = 5;  // 5 corresponds to GPIO5

// setting PWM properties
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8;
 
void setup() {
	// configure LED PWM functionalitites
	ledcSetup(ledChannel, freq, resolution);
	
	// attach the channel to the GPIO to be controlled
	ledcAttachPin(ledPin, ledChannel);
	ledcAttachPin(ledPin2, ledChannel);
	ledcAttachPin(ledPin3, ledChannel);
}

void loop() {
	// increase the LED brightness
	for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++) {
		// changing the LED brightness with PWM
		ledcWrite(ledChannel, dutyCycle);
		delay(15);
	}
	
	// decrease the LED brightness
	for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--) {
		// changing the LED brightness with PWM
		ledcWrite(ledChannel, dutyCycle);
		delay(15);
	}
}


3개의 LED 에 PWM 을 거는 소스 입니다.

2개 pin 에는 실제로 LED 를 연결해서 dimming 을 확인하고, 나머지 하나의 pin 에는 오실로스코프를 연결하여 파형을 확인해 봅니다.



이론과 실험이 만나는 동영상 입니다.



당연히 이렇게 될 것이라 알지만, 너무 이쁘게 그래프가 나와서 조금 놀랬습니다. Frequency 와 Duty 값이 정확하게 측정되는 군요.

ESP32 의 PWM 기능은 완벽하군요.




5. Piezo 연결


원리는 같으나, 눈으로 보면 다르게 느껴지는 Piezo 스피커도 확인해 보았습니다. 아래 링크를 참조하였습니다.


* ESP32 Arduino: Controlling a buzzer with PWM
    - https://techtutorialsx.com/2017/07/01/esp32-arduino-controlling-a-buzzer-with-pwm/


PWM 동작하는 GPIO 하나 잡아서 연결하면 됩니다.



저는 piezo 를 D4 = GPIO4 에 연결했습니다.


int freq = 2000;
int channel = 0;
int resolution = 8;
  
void setup() {
	Serial.begin(115200);
	ledcSetup(channel, freq, resolution);
	ledcAttachPin(4, channel);
}
  
void loop() {
	ledcWriteTone(channel, 2000);
	for (int dutyCycle = 0; dutyCycle <= 255; dutyCycle = dutyCycle + 10) {
		Serial.println(dutyCycle);
		ledcWrite(channel, dutyCycle);
		delay(1000);
	}
	
	ledcWrite(channel, 125);
	for (int freq = 255; freq < 10000; freq = freq + 250){
		Serial.println(freq);
		ledcWriteTone(channel, freq);
		delay(1000);
	}
}


처음에는 2000Hz 에서 duty 사이클을 10씩 증가하는 소리이고,

그 다음은 duty 를 125로 고정한 다음, 주파수만 바꿔가면서 소리를 내는 소스 입니다.





FIN


지금까지 ESP32 의 내부 기능들을 확인해 봤습니다.

확인하지 않고 남아있는 기능들이 Deep Sleep 과 Hardware Acceleration (Cryptographic) 정도가 남았네요.


And

Hardware | ESP32 의 internal sensor 확인해 보기

|

지금까지 ESP32 에 대한 글은 아래 링크들에서 확인해 보세요.


* Hardware | ESP32 의 Dual core 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-Dual-core

* Hardware | ESP32 스펙 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-spec-check

* Hardware | ESP32 간단 사용기
    - https://chocoball.tistory.com/entry/Hardware-simple-review-ESP32

이번 글은, ESP32 에 내장된 센서들에 관한 이야기 입니다.




1. 온도 센서


첫 번째로 온도센서에 대해 확인해 봅니다.

내장 센서이다 보니, 회로를 구성할 필요 없이, internal 값만 찾아서 확인해 보면 됩니다.


아래는 소스 입니다.


/* 
 *  ESP32 Internal Temperature Sensor Example
 */
 
 #ifdef __cplusplus
  extern "C" {
 #endif
 
  uint8_t temprature_sens_read();
 
#ifdef __cplusplus
}
#endif
 
uint8_t temprature_sens_read();
//====================================================
//         Setup
//====================================================
void setup() {
  Serial.begin(115200);
}
 
//====================================================
//         Loop
//====================================================
void loop() {
  Serial.print("Temperature: ");
  
  // Convert raw temperature in F to Celsius degrees
  Serial.print((temprature_sens_read() - 32) / 1.8);
  Serial.println(" C");
  delay(1000);
}


내부 함수 "temprature_sens_read()" 를 사용하여 내부 온도 센서 값을 읽어오는 루틴 입니다.



음? 뭔가 이상하군요. 계속 53.33 도씨만을 리턴합니다. 구글링 해봅니다.


* ESP32 internal temperature sensor not working #2422

https://github.com/espressif/arduino-esp32/issues/2422


아... CPU 버전업 되면서, 온도센서가 없어졌네요. -_-;



어쩐지, 예전 CPU diagram 에는 온도센서가 존재하지만,



최신 spec. 문서에는 Temperature sensor 가 없어지고, Embedded Flash 가 대신 들어가 있습니다.



그리하여, Internal temperature sensor 의 값을 불러오면, 정해진 값 - 128 - 만 리턴하게 만들어 진 것을 확인할 수 있었습니다.



2. Hall 센서


자력을 측정하는 센서 입니다. 보통 전류 센서에도 붙어 있죠.



Examples > ESP32 > HallSensor



소스를 보면, "hallRead()" 를 통해서 자력 값을 읽을 수 있습니다.


//Simple sketch to access the internal hall effect detector on the esp32.
//values can be quite low. 
//Brian Degger / @sctv  

int val = 0;
void setup() {
	Serial.begin(115200);
}

void loop() {
	// put your main code here, to run repeatedly:
	val = hallRead();
	// print the results to the serial monitor:
	// Serial.print("sensor = ");
	Serial.println(val); // to graph
	
	delay(50);
}


마침 가지고 있던 네오디뮴 자석으로 확인해 봅니다.



양의 값 (+) 와 음의 값 (-) 이 잘 읽힙니다.

개인적으로는 이 센서가 ESP32 에 필요한 이유는 잘 모르겠습니다. 누가 아시는 분은 댓글로 남겨 주세요.



동영상도 올려 봅니다.





3. 터치 센서


ESP32 에는 터치 센싱을 하는 pin 이 10 개 달려 있습니다.



마찬가지로, 왜 이리 touch sensor 를 많이 가지고 있는지 의문이지만, 스펙상으로는 10개 입니다.

스펙 문서에는 10개로 되어 있지만, Pinheader 로는 9개만 보이네요.



아래처럼 터치를 읽어들이는 소스가 기본 제공됩니다.


Examples > ESP32 > Touch > TouchRead



이미 "touchRead()" 라는 함수가 라이브러리에 준비되어 있군요.


// ESP32 Touch Test
// Just test touch pin - Touch0 is T0 which is on GPIO 4.

void setup() {
	Serial.begin(115200);
	delay(1000); // give me time to bring up serial monitor
	Serial.println("ESP32 Touch Test");
}

void loop() {
	Serial.println(touchRead(T0)); // get value using T0
	delay(1000);
}


결과는 다음과 같이 표시 됩니다. 터치되지 않은 상태는 95 정도이고, 해당 pin 을 손으로 만지면 10 이하로 내려갑니다.



해당 pin 을 터치했을 때, 내장 LED 의 불을 켜주는 소스 입니다. touchRead 의 기준 값은 50 으로 설정되어 있습니다.


// ESP32 Touch Test
// Just test touch pin - Touch0 is T0 which is on GPIO 4.

int LED_BUILTIN = 2;

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
  
  Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  Serial.println("ESP32 Touch Test");
}

void loop() {
  int x = 0;
  Serial.println( x = touchRead(T0) ); // get value using T0
  //delay(1000);
  
  if( x < 50 ) {
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.println("Turn on LED");
    delay(500);
  } else {
    digitalWrite(LED_BUILTIN, LOW);
    Serial.println("Turn off LED");
    delay(500);
  }
}


주의할 것은, LED_BUILTIN 값은 보통 arduino 들은 자동으로 잡아 주지만, IDE 에서 board 선택을 ESP32 Dev Module 로 하면 제대로 동작하지 않습니다. 아마 DOIT ESP32 DEVKIT V1 은 LED_BUILTIN 이 정의되어 있지만, ESP32 Dev Module 은 해당 정의가 없는 듯 합니다.


ESP32 의 내장 LED 는 digital pin 2 이므로, "int LED_BUILTIN = 2" 를 선언해 주면 됩니다.



동영상도 올려 봅니다.





FIN


Arduino 와 비교하여 CPU 도 넘사벽이지만, 내장 센서도 다채롭게 구비되어 있는 ESP32 테스트 해 봤습니다.

다음 글에서는 ESP32 의 PWM 기능에 대해 확인해 보도록 하겠습니다.


And

Hardware | ESP32 의 Dual core 확인해 보기

|

ESP32 대한 지금까지 글은 아래 포스팅들을 참고해 주세요.


* Hardware | ESP32 스펙 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-spec-check

* Hardware | ESP32 간단 사용기
    - https://chocoball.tistory.com/entry/Hardware-simple-review-ESP32




1. Dual core 활용에 앞서


ESP32 의 최장점 중 하나인, dual core 활용에 앞서 개념적인 이야기들이 조금 필요하다고 생각되었다.



그 이유는, 제가 dual core 활용을 이해하고 실행해 보기까지 삽질한 흔적들을 공유하기 위해서 이다.

아직 100% 맞는 이야기 인지는 확신이 들지 않지만, 대략 문제는 없어 보이니, 서두를 조금 길게 하겠다.




2. Arduino IDE 와 ESP-IDF


우선 ESP32 에 프로그램을 올리기 위해서는 coding 하는 환경이 필요한데, 이 개발환경이 ESP-IDF 이다.

보통 ESP-IDF framework 라 부른다.



다만, 우리가 친숙한 Arduino IDE 환경에서도 개발할 수 있도록, Arduino IDE 의 Arduino Core 가 ESP-IDF 를 포함하고 있다.

말하자면, ESP-IDF 의 간편한 interface 인 셈이다.


참고로, Arduino IDE 에서 컴파일한 결과물 보다, ESP-IDF 환경에서 컴파일한 결과물이 대략 65% 정도의 더 빠르다고 하니, ESP32 개발은 가능하면, ESP-IDF 프레임워크에서 개발하는 것이 좋다 하겠다.


살짝 다른 이야기 이지만, 위의 글에서도 설명 되어 있 듯, ESP32 세계에서 이야기 하는 firmware 는, 흔히 OS 기저에 존재하는 HW/OS 사이를 interfacing 해주는 미들웨어가 아니라, 구동 프로그램 자체를 이야기 한다. 헷갈리지 말자.


이 용어의 혼란 때문에, ESP32 의 firmware 를 업데이트 하고자 답도 없는 웹페이지들을 읽어댓다.




3. ESP-IDF FreeRTOS


그럼 자주 등장하는 FreeRTOS 는 도대체 뭔가?


* Quality RTOS & Embedded Software
    - https://www.freertos.org/a00106.html


이름의 약자 부분이 "RTOS - Real Time OS" 인 실시간 처리를 위한 OS이고, 그 중에 가장 유명한 open source 인 RTOS 를 뜻한다.

결국, 아래 발췌한 문구에서 볼 수 있 듯, ESP-IDF framework 는 이 FreeRTOS 실시간 운영 체제를 기반으로 하고 있다.


The ESP-IDF FreeRTOS is a modified version of vanilla FreeRTOS which supports symmetric multiprocessing (SMP).

이 FreeRTOS 덕에, 이 글의 목적인 dual core 를 활용할 수 있게 된 것이다.

처음엔 ESP32Arduino + WiFi 정도로 생각하고 덤볐는데, 완전 deep 하게 들어온 듯 하다.

상하 관계를 정리하면, FreeRTOS + Components > ESP-IDF > Arduino Core > Arduino IDE 되겠다.



AWS 에서도 MQTT 를 위해 FreeRTOS 서비스를 지원하고 있지만, 아래 그림에서 보면 살짤 달라 보인다.

ESP32 에서는 ESP-IDF 하위 layer 에 FreeRTOS 가 위치하지만, AWS FreeRTOS 는 ESP-IDF 상위에 자리하고 있다.





4. SMP


ESP32 에서 dual core 는 CPU 0 - Protocol CPU (PRO_CPU) CPU 1 - Application CPU (APP_CPU)두 가지로 정의되어 사용된다.

보통, PRO_CPU 는 백그라운드 작업이나 WiFi 인터페이싱 쪽을, APP_CPU 는 어플리케이션 쪽에 우선 순위를 둬서 동작하게 된다.

그러다 보니, APP_CPU 는 항상 바쁘고, PRO_CPU 는 많은 시간 놀게 되는, 좋지 않은 효율을 보일 수 있다.


Arduino IDE 에서 코딩하게 되면, setup() / loop() 는 CPU 1 에서 실행되고, 무선관련 동작은 CPU 0 에서 실행된다고 한다.



효율이 좋지 않다고 하더라도, 엄연한 dual core architecture 이며, memory 와 cache 및 외부기기 접근을 공유한다.



Core 이름에서도 알 수 있듯, 통신에 관한 background 처리는 CPU 0 에서 처리하고, 어플리케이션은 CPU 1 에서 하려고 하기 때문에, 효율 좋게 동작할 수 있도록 아래와 같이 CPU core 지정 명령어를 구비해 놓았습니다.


|------------------------------------------------------------------|
| instruction               | meaning                              |
|------------------------------------------------------------------|
| xTaskCreate()             | for single core tasks                |
| xTaskCreatePinnedToCore() | for assigning tasks to specific core |
| xTaskCreateUniversal()    | for making cores used evenly         |
|------------------------------------------------------------------|


Single core 에는 "xTaskCreate()" 를 사용하고, 특정 core 에 할당하고 싶을 때에는 "xTaskCreatePinnedToCore()" 을 사용합니다.

Core 수를 확인하여, core 갯수에 알맞게 task 를 할당하는 것이 "xTaskCreateUniversal()" 입니다.


우리는 core 를 편중되지 않고, 조금 강제적으로 균등하게 사용하기 위해 "xTaskCreatePinnedToCore()" 을 사용할 껍니다.

참고로, 함수의 첫번째 부분에 표시되는 "x..." 는 FreeRTOS 네이티브 명령어를 지정하는 것이라 하네요.




5. Source 기본 구조


기존 Arduino 처럼 코딩하는 것이 아닌, Dual core 만의 규칙이 있습니다. 사실 FreeRTOS 의 규칙이겠죠.

void task1(void *pvParameters) {
	while (1) {
		...
		...
		delay(10);
	}
}

void task2(void *pvParameters) {
	while (1) {
		...
		...
		delay(10);
	}
}


우선 각 core 에 시킬 일들을 미리 정의해 놓습니다. Function 정의와 비슷합니다.

다만, "while(1)" 구문 안에 작업 루틴이 들어가고, 필히 "delay(10)" 가 필요합니다.

Delay 는 10 microseconds 미만이면, 균등하게 core 끼리 일을 나눠 갖지 못합니다. 꼭 10 microseconds 이상으로 설정해야 합니다.


참고로 Arduino IDE 에서 제공하는 "delay(10)" 함수를 사용해도 되나, FreeRTOS 용으로 표현해 보면 다음과 같습니다.
ESP32 를 활용함에 있어, FreeRTOS 용 함수를 사용하는 것이 좀더 빠를 듯 해서입니다.

portTickType delay_10 = 10 / portTICK_RATE_MS;

...
		vTaskDelay(delay_10);
...

setup()loop() 는 다음과 같은 형식 입니다.

void setup() {
	Serial.begin(115200);
	delay(50); // wait for initialization
	
	xTaskCreatePinnedToCore(
		task1,
		"task1",
		8192,
		NULL,
		1,
		NULL,
		PRO_CPU_NUM
	);
	
	xTaskCreatePinnedToCore(
		task2,
		"task2",
		8192,
		NULL,
		0,
		NULL,
		APP_CPU_NUM
	);
}

void loop() {
}


위에서 언급 했던, core 할당 방법 - xTaskCreate() / xTaskCreatePinnedToCore() / xTaskCreateUniversal() - 과, 어느 CPU - PRO_CPU_NUM / APP_CPU_NUM - 를 사용할 것인지를 정의해 줍니다.


위의 예시는, Core 0 / 1 에 강제적으로 task 를 할당한 예 입니다.

자세한 설명은 아래 FreeRTOS 문서를 참고해 보세요.


* FreeRTOS

- https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos.html




6. Single Core 활용


Core 한개만을 이용하여, 2승을 계산하는 간단한 코드를 만들어 봤습니다.


portTickType delay_10 = 10 / portTICK_RATE_MS;
int countX = 0;

void task1(void *pvParameters) {
	while (1) {
		for ( int i = 0 ; i < 1000 ; i++ ) {
			pow(2, i);
		}
		countX++;
		vTaskDelay(delay_10);
	}
}
 
void setup() {
	Serial.begin(115200);
	delay(50); // wait for initialization
	
	xTaskCreatePinnedToCore(
		task1,
		"task1",
		8192,
		NULL,
		1,
		NULL,
		PRO_CPU_NUM
	);
}
 
void loop() {
	Serial.println(countX);
	delay(100);
}


2의 1000 승이 완료되면 countX 에 1을 증가하는 방식으로, 일정한 시간 동안 Single 과 Dual 의 계산량 차이를 보기 위한 것입니다.


int countX = 0;

...

		for ( int i = 0 ; i < 1000 ; i++ ) {
			pow(2, i);
		}
		countX++;
...

void loop() {
	Serial.println(countX);
	delay(100);
}


setup() 에서 xTaskCreatePinnedToCore 를 이용하여 task1 하나만 정의하여 돌려 봤습니다.


...

	xTaskCreatePinnedToCore(
		task1,
		"task1",
		8192,
		NULL,
		1,
		NULL,
		PRO_CPU_NUM
	);

...


위에서 CPU core 지정 부분을 PRO_CPU_NUMAPP_CPU_NUM 을 바꿔 해봤지만, 동일한 결과를 보여 줬습니다.



약 50 초 동안, 2의 1000 승을 1600 회 정도 계산했습니다.




7. Dual Core 활용


xTaskCreatePinnedToCorePRO_CPU_NUM / APP_CPU_NUM 를 모두 사용하는 코드 입니다.


portTickType delay_10 = 10 / portTICK_RATE_MS;
int countX = 0;

void task1(void *pvParameters) {
	while (1) {
		for ( int i = 0 ; i < 1000 ; i++ ) {
			pow(2, i);
		}
		countX++;
		vTaskDelay(delay_10);
	}
}

void task2(void *pvParameters) {
	while (1) {
		for ( int i = 0 ; i < 1000 ; i++ ) {
			pow(2, i);
		}
		countX++;
		vTaskDelay(delay_10);
	}
}
 
void setup() {
	Serial.begin(115200);
	delay(50); // wait for initialization
	
	xTaskCreatePinnedToCore(
		task1,
		"task1",
		8192,
		NULL,
		1,
		NULL,
		PRO_CPU_NUM
	);
 
	xTaskCreatePinnedToCore(
		task2,
		"task2",
		8192,
		NULL,
		1,
		NULL,
		APP_CPU_NUM
	);
}
 
void loop() {
	Serial.println(countX);
	delay(100);
}


약 3200 개 정도를 계산해 냈네요. Single core 사용할 때보다, 딱 2배의 숫자 입니다. 이로써, dual core 가 사용되었다는 것을 알 수 있습니다.



Single core 의 계산 처리값과 한 그래프에서 비교하고 싶어서 index 를 추가하고 EXCEL 에서 그래프를 그려 보았습니다.


int x = 0;

...
 
void loop() {
  x++;
  Serial.print(x);
  Serial.print("\t");
  Serial.println(countX);
  delay(100);
}

왼쪽이 index, 오른쪽이 100 마이크로초 동안 2 의 1000 승을 계산한 횟수를 보여줍니다.


생각 외로 처리량이 꽤 좋습니다. Arduino Nano 와는 넘사벽인 성능입니다.


ESP32_dual_core_calc.xlsx



그래프에서 선이 겹쳐 보여 잘 보이지 않지만, PRO_CPU_NUM 이 조금 낮게 나올 것이라고 예상 했지만, WiFi 등을 사용하고 있지 않기 때문에, APP_CPU_NUM 과 동일하게 나왔습니다.


Dual core 를 활용하면서, 정확하게 2배의 계산 처리량을 보여 줬습니다.




FIN


CPU 도 Dual core 에다가 내장 센서, 그리고 Arduino IDE 에서 코딩할 수 있다는 점은 엄청나게 큰 장점일 듯 합니다.

거의 왠만한 프로젝트는 ESP32 하나로 커버 가능할 것 같습니다. EPS32 에 대해 다른 기능들도 차차 알아 보겠습니다.




참고 사이트


- https://www.hackster.io/rayburne/esp32-in-love-with-both-cores-8dd948

- https://www.mgo-tec.com/blog-entry-ledc-pwm-arduino-esp32.html/2

- https://qiita.com/makotaka/items/dd035f4b2db94f87b63c

- https://lang-ship.com/blog/work/esp32-freertos-l03-multitask/

- https://techtutorialsx.com/2017/05/16/esp32-dual-core-execution-speedup/



And

Software | AWS Certified 자격증 취득기 - 3

|

이 포스트는 AWS 인증 자격시험 세 번째인,

AWS Certified Solutions Architect - Professional 취득기가 되겠습니다.


* Exam Name - AWS Certified Solutions Architect - Professional

* Exam Code - SAP-C01

* Online Class - Exam Readiness: AWS Certified Solutions Architect - Professional


이 시험준비에 앞서 "Cloud Practitioner" 과,

중간 레벨인 "Solution Architect - Associate"도전기는 아래 포스트를 참고해 주세요.


* Software | AWS Certified 자격증 취득기 - 1

https://chocoball.tistory.com/entry/Software-AWS-Certified-1


* Software | AWS Certified 자격증 취득기 - 2

https://chocoball.tistory.com/entry/Software-AWS-Certified-2




1. Professional 시험 개요


이 Professional 시험은, 당연 AWS Solution Architect - Associate 의 상위 난위도 시험 입니다.


Associate 에서는 조금 단순한 내용을 물어봤다면, Professional 에서는, 자잘한 기능들을 가지고 전체 시스템을 어떤 식으로 구축하는지,

문제 발생시에는 어떤 대처가 필요한지, 원하는 바를 어떻게 이룰 것인 지 등, 시나리오를 가지고 AWS 활용 방법을 물어 봅니다.


그냥, AWS 에 대해 다 알고 있어야 한다는 이야기 겠네요. 자세한 사항은 아래 공식 문서에서 확인해 보세요.


AWS_Certified_Solutions_Architect_Professional-Exam_Guide_EN_1.2.pdf


찾아보니, 유료 강의도 많이 준비되어 있었습니다. (저는 무료 강의만...)



읽어 놔야 할 Whitepaper 들의 목록 입니다.



숙달 될 때 까지 익혀야 하니, 이 시험을 위해 구비했던 Kindle 에 싹다 넣어서 가지고 다니면서 공부 했습니다.



길고 긴 나와의 싸움의 시작 입니다.




2. 자료


AWS 에서 제공하고 있는 Whitepaper 들 입니다.


* Whitepaper: AWS Security Best Practices

AWS_Security_Best_Practices.pdf


* Whitepaper: AWS Well-Architected Framework

AWS_Well-Architected_Framework.pdf


* Whitepaper: Architecting for the Cloud: AWS Best Practices

AWS_Cloud_Best_Practices.pdf


* Whitepaper: Practicing Continuous Integration and Continuous Delivery on AWS: Accelerating Software Delivery with DevOps

practicing-continuous-integration-continuous-delivery-on-AWS.pdf


* Whitepaper: Microservices on AWS

microservices-on-aws.pdf


* Whitepaper: Amazon Web Services: Overview of Security Processes

AWS_Security_Whitepaper.pdf


추가적으로 읽은 웹페이지 자료 입니다.


* AWS Documentation

https://docs.aws.amazon.com/


* AWS Architecture Center

https://aws.amazon.com/architecture/


Professional 시험에 대한 셈플 문제 입니다.


AWS_certified_solutions_architect_professional_examsample.pdf


문제를 읽고 이해하고, 제시된 선택지들을 시나리오에 맞게 끼워 맞추는 대에도 상당한 시간이 필요하다는 것을 알 수 있습니다.

시험을 조금이나마 느껴볼 수 있는 좋은 자료 라고 생각해요. 바짝 긴장하게 만들어 주는 sample 입니다.


다음으로, AWS training 사이트에서 제공하는 무료 강의들을 듣고 정리해 봤습니다.


AWS_SAP-C01_20190908_chocoball_part1.pptx

AWS_SAP-C01_20190908_chocoball_part2.pptx

AWS_SAP-C01_20190908_chocoball_part3.pptx

AWS_SAP-C01_20190908_chocoball_part4.pptx


저는 VCE 파일을 열 수 있는 어플이 없어서 (구매 해야 함 - 한달 5만원 정도로 알고 있슴) 못 열어봤지만,

자료 찾으면서 얻게 된 덤프를 올려 놓습니다.


Amazon.Certkey.AWS Certified Solutions Architect - Professional.v2019-08-15.by.Maverick.302q.vce

gratisexam.com-Amazon.Certkiller.AWS-Architect-Professional.v2016-12-23.by.Smith.65q.vce


아래에서 설명 되겠지만, 모의 시험이 존재합니다. 시험 코드는 SAP-P01. 5만원짜리 20문항 시험인데, 최대한 실제 시험과 비슷합니다.

이 Practice 시험을 보고 캡춰 해 봤습니다. 표시된 답은 제가 직접 작성한 답안이라 정답이 안닌것도 있습니다.


AWS_SAP-P01_20200130_chocoball.pptx


이 외에 참고한 사이트들이 엄청 많지만, Professional 문제가 조금 나와있는 사이트를 여기서 공유해 봅니다.


* Jayendra's Blog

http://jayendrapatil.com/category/whitepaper/




4. 알아두면 좋은 시나리오들


회사 내에 먼저 취득한 분이 계셔서, 그 분이 추가로 알려준 LINK 들 입니다.

시나리오들은 많이 접할 수록 좋습니다.


보면서 알게된 것인데, 끝이 없네요...


aws_additional_document_20200131.txt


그래도 시험 선배가 알려준 것인데, 속속들이 익혀 봅니다.




5. 비 영어권자를 위한 30분 추가 요청


모든 용어가 영어이므로, 영어로 시험을 보는 것을 원칙으로 하고 있습니다.

다만, 앞전의 두 시험에서 겪었 듯, 지문이 많은 시험인지라 독해하고 생각하고 문제푸는 시간이 빠듯합니다.


그래서, 시험 "등록 전" 에 영어가 모국어가 아닌 사람들을 위해 30분 추가해 주는 옵션이 있어요.



이미 시험이 예정되어 있으면, 어떠한 accommodation 도 요청이 안됩니다.

예약한 시험을 취소하고, accommodation 신청 후, 다시 예약하는 방법 밖에는 없습니다.



시험 등록 사이트에서 "Request Accommodation" 를 선택합니다.



비 영어권자를 위한 30분 추가 신청은, 한번만 하면 향후 모든 시험에 적용시킬 수 있습니다.

조금 cheating 하는 기분이 들지만, 1분이 아쉬운 시험이니 감사히 쓰면 되겠습니다.



"ELS +30 MINUTES" 를 선택합니다.

Accommodation 옵션 중에는 500 파운드를 견디는 의자라던가, 높이 조정 가능한 책상이라던가 여러가지가 있습니다.

시험 응시자 개인의 불편함을 최대한 배려해 주고 싶은 생각에서 나온 옵션이 아닌가 합니다.


외국은 모르겠지만, 한국에서 이 옵션들이 유효한지가 궁금하군요.



이제 저는 AWS 시험볼 때, 30분 추가 혜택이 주어졌습니다.





6. Practice 시험 먼저 쳐보기


60분짜리 (+30분) Professional 연습시험이 존재합니다.



인터넷을 통해, 자기가 원하는 시간과 PC (장소) 에서 볼 수 있는 5만원짜리 시험 입니다.

저번 Associate 따고 받은, 연습 시험 무료 쿠폰을 사용해서 공짜로 시험을 쳤습니다.



등록을 하면, 바로 시험을 칠 수 있습니다. 어떤 시험이든 항상 긴장은 되는군요.



연습 시험도 시험인지라, 컨텐츠의 보호를 강력하게 이야기 하고 있습니다.



90분 짜리지만, 20문제를 50분 정도 보고 마무리.



뜨헉, 55% 정답률. 이러면 떨어진다는 거지요. 정답률이 70% 이상이어야 합니다.

이게 시험 보기 바로 전날인데, 바짝 긴장되더군요.


작년 9월부터 준비했던 만큼, 맥도 끊기고 처음 공부한 내용들이 흐릿해진 결과인 듯.



시험을 하루 남기고, 예전 Associate 문제들 부터 시작하여, 기존에 정리한 문서들을 다시금 모두 훑었습니다.

봐야 할 양이 너무너무 많아, 4시간만 자고 거의 모든 시간은 공부에 쏟아 부으며, 머릿속에 꾸격꾸격 우겨 넣었습니다.




7. 시험 등록


시험 등록은, 이번 설 전에 급하게 등록 했습니다. 시험 일자는 1월 31일! 2020년 1월 마지막 날로 정했습니다.



시험은 아침 9시에 하는 장소가 가능한 곳으로 찾다 보니, 문정역 근처의 시험장이 적절해 보이네요.

시험 보는 것이 자주 있는게 아닌만큼, 익숙한 곳도 좋지만, 새로운 장소에서 보는 것도 살짝 스릴 있습니다.



비과세 포함 37만 4천원!!!!!! 떨어지면 망하는 겁니다.

참고로 Pearson VUE 에서는 응시료가 살짝 더 싸다고 합니다.



9시 시험이니, 시험장에 미리 도착하여 다시한번 공부하는 시간 1시간을 생각하면, 5시 38분 첫처를 타야 하는군요.

아하하하하하... 아침 목욕 재계도 해야 하니, 새벽 3시에는 일어나야 합니다.



새벽 첫차로 달리는 버스와 지하철 이지만, 정말 많은 사람들이 일찍 일어나 부지런히 갈길 가는 모습을 볼 수 있습니다.

나 또한 그 물결에 동참하고 있으면 묘한 기분이 듭니다. 삶이란...




8. 시험장으로...


시간 안배가 중요합니다. 시험 시간이 긴 만큼, 칼로리 소모도 심합니다.

아침에 일어나 충분히 음식을 섭취해, 강도높은 집중력을 요하는 시험 대비 칼로리를 섭취해 놔야 합니다.

아침에 일어나 물 한컴, 바나나 한개, 샤워 30분, 콘프레이크 한접시, 그리고 바나나 하나 더 먹고 갔습니다.



1시간 50여분이 걸려, 문정역 테라타운에 도착했습니다. 어슴푸레 어둠이 겉이기 시작하네요.



테라타운 B동 13층에 내리니, SRTC 시험장 안내판이 눈에 띕니다.



뜨헉!!! 일찍 왔더니, 아직 open 전... 한시간 반동안 바짝 마무리 공부 해야 하는데...



화장실 변기에 앉아서 공부할까, 비상계단에서 할까 잠시 고민한 뒤, 비상계단에서 하기로 합니다.



조용하면서, 조명도 적절하군요.



시험보기 전에 항상 하게 되는 칼로리 부스터. 오늘도 맥콜을 마시면서 마무리 공부 합니다.

추가로 비타민제와 바나나 하나를 더 먹습니다.




9. 결과


시험 시간은 30분 연장받아 210분. 즉, 3시간 30분 입니다.

한 문제당 글자 수가 많고 영어다 보니, 독해 -> 이해 -> 선택지 문장과 대조 -> 최고로 적절한 답 선택 사이클을 반복합니다.

이렇게 하다 보면 3시간 반 후딱 지나갑니다.


그런데, 시간이 너무 촉박합니다.

왜냐하면 시나리오 설명과 선택지의 글이 엄청 많거든요.

30분 추가 혜택 받지 못했으면 어떨까 했습니다.


시간이 촉박한 것보다 더 힘들었던 것은, "봉크" 였습니다.

보통, 봉크는 사이클 선수들이 과격한 칼로리 소모로 인해, 벽에 부딪치는 것처럼 레이스 중 갑짜기 푹 쓰러져 버리는 것을 지칭합니다.


우리의 머리도, 높은 집중력으로 계속 사용하다 보면, 어느 순간부터 사고가 멈추게 되는 경험을 할 수 있습니다.

3시간 30분 중에, 2시간 30분만 지속해도 이 "봉크" 가 오는 것이 느껴 집니다.

추가적인 칼로리 보충이 없으면, 비축된 열량을 모두 소모하고 정지하는 것이죠.


나머지 한시간은 알고있는 지식을 박박 긁어 내는 것과 동시에, 회전하지 않는 머리를 부여잡고 억지로 돌리는 시간이었습니다.

"나중에 보기 flag" 기능이 존재하지만, 이 시간 이후에는 검수할 기력도 남아있지 않다는 것을 알기에,

거의 본능만을 가지고 문제를 풀어 나아 갔습니다.


23초를 남겨두고 "End Test" 버튼을 눌렀습니다.

몇 가지 시험 자체에 대한 소감을 묻는 질문들을 마치면 마지막 결과가 나옵니다.

클릭 하면서 자연스럽게 눈을 감게 되더군요. 이번에도 패스할 것 같은 느낌은 전혀 없었습니다. 아... 37만원.


눈을 뜨면서 슬로우 모션으로 화면이 보입니다. Congratulation!

으아아아아아아아아아아~!!!!!!!!!!!!!!!!!!!!!!!!



그날 저녁쯤 되니, 결과가 올라 왔네요.

750점 커트라인데 777점. 커트라인에서 한 두 세문제 더 맞았네요.


Design for Organizational ComplexityCost Control 이 부족하군요.

시간 날 때마다, 관련 문서로 보충해야 겠습니다.



이제, 저도 AWS Solution Architect - Professional 이 되었습니다.

이 시험을 보신 모든 분들에게 존경을 보냅니다.


이로써, 5개월간의 여정이 마무리 되었습니다.


And

Software | AWS Certified 자격증 취득기 - 2

|

이 포스트는 AWS 인증 자격시험 두 번째인,

AWS Certified Solutions Architect - Associate 취득기가 되겠습니다.


* Exam Name - AWS Certified Solutions Architect - Associate

* Exam Code - SAA-C01

* Online Class - Exam Readiness: AWS Certified Solutions Architect - Associate


이 시험준비에 앞서 AWS 기초격인 "Cloud Practitioner" 도전기는 아래 포스트를 참고해 주세요.


* Software | AWS Certified 자격증 취득기 - 1

https://chocoball.tistory.com/entry/Software-AWS-Certified-1


이 온라인 강의에 접근하는 방법은, 위의 1편에서 다루어졌으니, 모르시는 분은 1편을 참고해 주세요.





0. 시작하기


이 시험이 묻고자 하는 내용과 범위 입니다.



Cloud Practitioner 와 취급하는 서비스 자체는 같은 것이나,

추구하고자 하는 목적에 부합하는 기능이나 case 들을 이용하여 어떻게 서비스 구성하는 것이 적절한지를 물어보는 형식입니다.


아래에서는 온라인 강의와 예시로 풀어진 문제들 위주로 정리했습니다.

시험보기 전, 이 포스트를 보고 다시금 요약 내용을 확인하는 용도로 생각하면 될 것 같습니다.





1. Design Resilient Architectures


* EC2 Instance Store

- Ephemeral volumes

- Only certain EC2 instances

- Fixed capacity

- Disk type and capacity depends on EC2 instance type

- Application-level durability


* Elastic Block Store

- Different types

- Encryption

- Snapshots

- Provisioned capacity

- Independent lifecycle than EC2 instance

- Multiple volumes striped to create large volumes



* Amazon EFS

- File storage in the AWS Cloud

- Shared storage

- Petabyte-scale file system

- Elastic capacity

- Supports NFS v4.0 and 4.1 (NFSv4) protocol

- Compatible with Linux-based AMIs for Amazon EC2



* Amazon S3

- Consistency model

- Storage classes & Durability - Standard, Standard-IA

- Encryption (data at rest) - SSE-S3, SSE-KMS, SSE-C

- Encryption (data in transit) - HTTPS

- Versioning

- Access control

- Multi-part upload

- Internet-API accessible

- Virtually unlimited capacity

- Regional Availability

- Highly Durable - 99.999999999%


* Amazon Glacier

- Data backup and archive storage

- Vaults and archives

- Retrievals - expedited, standard, bulk

- Encryption

- Amazon S3 object lifecycle policy

- Regionally availability

- Highly durable - 99.999999999%




* Fault Tolerance

The more loosely your system is coupled, the more easily it scales and the more fault-tolerant it can be


* CloudFormation

- Declarative programming language for deploying AWS resources.

- Uses templates and stacks to provision resources.

- Create, update, and delete a set of resources as a single unit (stack).


* AWS Lambda

- Fully managed compute service that runs stateless code (Node.js, Java, C#, Go and Python) in response to an event or on a time-based interval.

- Allows you to run without managing infrastructure like Amazon EC2 instances and Auto Scaling groups.


* Test Axioms

- Expect "Single AZ" will never be a right answer

- Using AWS managed services should always be preferred

- Fault tolerant and high availability are not the same thing

- Expect that everything will fail at some point and design accordingly












2. Design Performance Architectures


* Amazon EBS Volume Types


* Amazon S3 Buckets

- To upload your data (photos, videos, documents)

1. Create a bucket in one of the AWS Regions.

2. Upload any number of objects to the bucket.

- Bucket (Virtural hosted-based URLs)

http://bucket.s3.amazonaws.com

http://bucket.s3-aws-region.amazonaws.com

- Object

https://s3-ap-northeast-1.amazonaws.com/[bucket name]/Key (file name)


* Amazon S3: Payment Model

- Pay only for what you use

-- GBs per month

-- Transfer out of region

-- PUT, COPY, POST, LIST, and GET requests

- Free of charge

-- Transfer in to Amazon S3

-- Transfer out from Amazon S3 to Amazon CloudFront or the same region


* Amazon S3: Storage Classes

- General purpose: Amazon S3 Standard

-- Higher availability requirements: Use cross-region replication.

- Infrequently accessed data: Amazon S3 Standard - Infrequent Access

-- Lower cost per GB stored

-- Higher cost per PUT, COPY, POST, or GET request

-- 30-day storage minimum


* Lifecycle Policies

- Amazon S3 lifecycle policies allow you to delete or move objects based on age.

-- until 30 Days : Amazon S3 Standard

-- until 60 Days : Amazon S3 Standard - Infrequent Access

-- until 365 Days : Amazon Glacier

-- after 365 Days : Delete


* Amazon Databases

- Amazon Relational Database Service

- Amazon DynamoDB

- Amazon Redshift


* When to Use Amazon RDS

- Use Amazon RDS

-- Complex transactions or complex queries

-- A medium-to-high query/write rate

-- No more than a single worker node/shard

-- High durability

- Do not use Amazon RDS

-- Massive read/write rates (e.g., 150 K write/second)

-- Sharding

-- Simple GET/PUT requests and queries

-- RDBMS customization


* RDS Read Replicas


* DynamoDB: Provisioned Throughput

- Allocates resources based on throughput capacity requirements (read/write)

-- Read capacity unit (for an item up to 4 KB in size)

One strongly consistent read per second

Two eventually consistent reads per second

-- Write capacity unit (for an item up to 1 KB in size)

One write per second


* Caching in CloudFront

1. Request is routed to most optimal edge location.

2. Non-cached content is retrieved from the origin.

3. Origin content is transferred to CloudFront edge location for caching.

4. Data is transferred to end user.


* Caching with ElastiCache



* Memcached vs. Redis

- Memcached

-- Multithreading

-- Low maintenance

-- Easy horizontal scalability with Auto Discovery

- Redis

-- Support for data structures

-- Persistence

-- Atomic operations

-- Pub/sub messaging

-- Read replicas/failover

-- Cluster mode/sharded clusters


* Amazon CloudFront

- Use case and benefits

- Content - static and dynamic

- Origins - S3, EC2, ELB, HTTP server

- Protect private content

- Improve security

-- AWS Shield Standard and Advanced

-- AWS WAF


* Vertical Scaling vs. Horizontal Scaling

- Vertical scaling (Scale up and down)

-- Change in the specifications of instances (more CPU, memory)

- Horizontal scaling ( Scale in and out)

-- Change in the number of instances (add and remove instances as needed)


* Auto Scaling

- Launches or terminates instances

- Automatically registers new instances with load balancers

- Can launch across Availability Zones


* Implement Elasticity



* Auto Scaling

- Launches or terminates instances

- Automatically registers new instances with load balancers

- Can launch across Availa


* Auto Scaling Components

- Auto Scaling launch configuration

-- Specifies EC2 instance size and AMI name

- Auto Scaling group

-- References the launch configuration

-- Specifies min, max, and desired size of the Auto Scaling group

-- May reference an ELB

-- Health Check Type

- Auto Scaling policy

-- Specifies how much to scale in or scale out

-- One or more may be attached to Auto Scaling group


* CloudWatch Metrics

- Know what CloudWatch can monitor

-- CPU / Network / Queue Size

- Understand CloudWatch Logs

- Understand the difference between default and custom metrics


* Test Axioms

- If data is unstructured, Amazon S3 is generally the storage solution.

- Use caching strategically to improve performance.

- Know when and why to use Auto Scaling.

- Choose the instance and database type that makes the most sense for your workload and performance need.

















3. Specify Secure Applications and Architectures


* Infrastructure

- Infrastructure

-- Shared responsibility model

- Protecting your AWS resources

-- Principle of least privilege

-- Identities


* Shared Responsibility Model



* Principle of Least Privilege

- Persons (or processes) can perform all activities they need to perform, and no more.


* AWS IAM

- Centrally manage users and user permissions in AWS.

- Using AWS IAM, you can:

-- Create users, groups, roles and policies.

-- Define permissions to control which AWS resources users can access

- IAM integrates with Microsoft Active Directory and AWS Directory Service using SAML identity federation.


* Identities

- IAM users: Users created within the account.

- Roles: Temporary identities used by EC2 instances, Lambdas, and external users.

- Federation: Users with Active Directory identities or other corporate credentials have role assigned in IAM.

- Web Identity Federation: Users with web identities from Amazon.com or other Open ID provider have role assigned using Security Token Service (STS).


* Compute/Network Architecture

- Virtual Private Cloud (VPC)

- Design your network architecture in the cloud

-- Security

-- Routing

-- Network isolation

-- Management

-- Bastion hosts


* Virtual Private Cloud

- Organization: Subnets

- Security: Security groups/access control lists

- Network isolation: Internet gateways/virtual private gateways/NAT gateways

- Traffic direction: Routes


* How to Use Subnets

- Recommendation: Use subnets to define internet accessibility.

- Public subnets

-- To support inbound/outbound access to the public internet, include a routing table entry to an internet gateway

- Private subnets

-- Do not have a routing table entry to an internet gateway

-- Not directly accessible from the public internet

-- To support restricted, outbound-only public internet access, typically use a "jump box" (NAT/proxy/bastion host)


* Security groups vs. Network ACL



* Security Groups



* VPC Connections

- Know the services to get traffic in or out of your VPC

-- Internet gateway: Connect to the internet

-- Virtual private gateway: Connect to the internet

-- AWS Direct Connect: Dedicated pipe

-- VPC peering: Connect to other VPCs

-- NAT gateways: Allow internet traffic from private subnets


* Outbound Traffic From Pirvate Instances



* Data Tier

- Data in transit

-- In and out of AWS

-- Within AWS

- Data at rest

-- Amazon S3

-- Amazon EBS


* Data in Transit

- Transferring data in and out of your AWS infrastructure

-- SSL over web

-- VPN for IPsec

-- IPsec over AWS Direct Connect

-- Import/Export/Snowball

- Data sent to the AWS API

-- AWS API calls use HTTPS/SSL by default


* Data at Rest

- Data stored in Amazon S3 is private by default, requires AWS credentials for access

-- Access over HTTP or HTTPS

-- Audit of access to all objects

-- Supports ACL and policies

--- Buckets

--- Prefixes (directory/folder)

--- Objects

- Server-side encryption options

-- Amazon S3-Managed Keys (SSE-S3)

-- KMS-Managed Keys (SSE-KMS)

-- Customer-Provided Keys (SSE-C)

- Client-side encryption options

-- KMS managed master encryption keys (CSE-KMS)

-- Customer managed master encryption keys (CSE-C)


* Managing Your Keys

- Key Management Service

-- Customer software-based key management

-- Integrated with many AWS services

-- Use directly from application

- AWS CloudHSM

-- Hardware-based key management

-- Use directly from application

-- FIPS 140-2 compliance


* Integrating AWS KMS

- Amazon EBS/S3/RDS/Redshift/Elastic Transcoder/WorkMail/EMR


* Test Axioms

- Lock down the root user

- Security groups only allow. Network ACLs allow explicit deny

- Prefer IAM Roles to access keys









4. Design Cost-optimized Architectures


* Amazon EC2 Pricing

- Clock hours of server time

- Machine configuration

- Machine purchase type

- Number of instatnces

- Load balancing

- Detailed monitoring

- Auto Scaling

- Elastic IP adresses

- Operating systems and software packages


* Amazon EC2: Ways to Save Money

- Reserved Instances

-- EC2 Reserved Instances (RI) provide a significant discount (up to 75%) compared to on-demand pricing.

-- RI Types: Standard IRs / Convertible RIs / Scheduled RIs

- Spot Instances

-- Spot Instances are spare compute capacity in the AWS Cloud available to you at steep discounts compared to on-demand prices (30 t0 45%)


* Amazon S3 Pricing

- Storage class

- Storage

- Requests

- Data transfer


* Amazon S3 Storage Classes



* Amazon EBS Pricing

- Considerations for estimating the cost of using Amazon EBS

-- Volumes

-- Input/output operations per second (IOPS)

-- Snapshots

-- Data transfer


* Serverless Architecture

- Recognize the opportunity to reduce compute spend through serverless architectures

-- AWS Lambda / S3 / DynamoDB / API Gateway


* Storage: Amazon CloudFront

- Use cases

-- Content - Static and dynamic

-- Origins - Amazon S3, EC2, Elastic Load Balancing, HTTP servers

- Cost Benefits

-- No cost for data transfer between S3 and CloudFront

-- Can be used to reduce the compute workload for EC2 instances


* Caching with CloudFront

Considerations for estimating the cost of using Amazon CloudFront:

- Traffic distribution
- Requests
- Data transfer out
Caching with CloudFront can have positive impacts on both performance and cost-optimization!

* Test Axioms

- If you know it's going to be on, reserve it.

- Any unused CPU time is a waste of money.

- Use the most cost-effective data storage service and class.

- Determine the most cost-effective EC2 pricing model and instance type for each workload.







5. Define Operationally-excellent Architectures


* Operational Excellence

The ability to run and monitor systems to deliver business value and continually improve supporting processes and procedures.

- Prepare / Operate / Evolve


* Operational Excellence: Design Principles

- Perform operations with code

- Annotate documentation

- Make frequent, small, reversible changes

- Refine operations procedures frequently

- Anticipate failure

- Learn from all operational failures


* AWS Services Supporting Operational Excellence

- AWS Config

- AWS CloudFormation

- AWS Trusted Advisor

- AWS Inspector

- VPC Flow Logs

- AWS Cloud Trail


* CloudWatch



* Test Axioms

- IAM roles and easier and safer than keys and passwords

- Monitor metrics across the system

- Automate responses to metrics where appropriate

- Provide alerts for anomalous conditions








6. 자료


시험볼 때 참고한 덤프와 온라인 강의 정리 공유합니다.


* PDF dump

AWS-Solutions-Associate_V17.35.pdf

AWS-Solutions-Associate-KR_V17.35.pdf

AWS-Solutions-Architect-Associate_V16.75.pdf

AWS_Solutions_Architect_Associate_2016_pdf.zip


* ETE dump of 2018 / 2019

AWS_Solutions_Architect_Associate_2019_ete.zip.001

AWS_Solutions_Architect_Associate_2019_ete.zip.002


* On-line summary

AWS_SAA-C01_20190903_chocoball.pdf


* On-line practice (SAA-P01)

AWS_SAA-P01_20190922_chocoball.pdf


* Website dump

https://www.freecram.com/exam/AWS-Solutions-Associate-aws-certified-solutions-architect-associate-e7428.html


- https://www.freecram.com/question/Amazon.AWS-Solutions-Associate.v2019-07-29.q257/you-are-designing-a-data-leak-prevention-solution-for-your-vpc-environment-you-want-your-vpc-instances


- https://www.freecram.com/question/Amazon.AWS-Solutions-Associate.v2018-01-08.q430/which-technique-can-be-used-to-integrate-aws-iam-identity-and-access-management-with-an-on-premise


https://www.freecram.com/question/BluePrism.Architect-Associate.v2018-11-27.q75/a-company-requires-that-the-source-destination-and-protocol-of-all-ip-packets-be-recorded-when-traversin





7. 등록


언제 시험볼까 고민만 하다가는 시간만 갈 것 같아, 첫시험 본 다음날 바로 다음 시험을 등록했습니다.



미리 가서 공부할 수 있는 환경이 조성된 KG ITBANK 로 결정. 시간은 아침 제일 빠른게 좋죠.



Cloud Practitioner 합격 후, 받은 50% discount 쿠폰을 사용해 봅니다.



오오오! 17만원이던게 반으로 깎이는 마술이!



이제 되돌아 가지 못합니다. 앞으로 나아가는 수 밖에.



주사위는 던져졌습니다.

보유하고 있는 덤프 및 공부 자료를 본 결과, 하루에 100문제 정도 풀 수 있는 시간을 확보해야 하네요.

만만치 않습니다만, 직접 AWS Management Console 에서 테스트 하면서 공부하니, 이제 좀 시스템이 실감이 나고 재미 있습니다.





8. SAA-P01


Architect - Associate 의 시험 코드는 SAA-C01 입니다.

네 맞아요, SAA-P01 은 Practice 시험 입니다. 인가된 시험장이 아닌 인터넷이 되는 어느곳에서든 시험삼아 보는 시험이지요.

본 시험은 비싸니, 감 잡으라고 만든 30분짜리 시험 입니다. 특별히 예약하지 않고, 등록 후 바로 시험볼 수 있습니다.


가격은 세금 포함 2만 5천원 정도 하는데,

Practitioner 를 따면, 이 Practice 시험을 공짜로 한번 볼 수 있는 바우처를 줍니다.



시험을 하나 pass 할 때 마다, Practice Voucher 와 50% discount 는 매번 나오니 아껴쓰지 않습니다.



Practice 시험을 선택하고 "Pay For Exam" 하면, 보통 시험 지불하는 화면이 아래처럼 나옵니다.



Payment 란에, 받은 Voucher 번호를 넣고 적용하면, 공짜가 되는 마술을 볼 수 있습니다.



저는 시험보기 이틀 전에 봤습니다.

지금까지 한 공부가 맞는 방법인지 확인하고, 틀렸으면 새로운 공부 전략을 짜기 위해서죠.

떨리는 마음으로 Start 를 눌러서 30분간 지옥을 맛봅니다. 아무리 연습이라도 모니터에 본 시험과 같이 나오니 긴장 엄청 됩니다.



제길슨... 52%. 이대로는 떨어진다는 소리 입니다.


이 Practice 시험 이후, 보고 있던 예전 dump 는 바로 버리고, 남은 하루 반을 오로지 최신 덤프 + 인터넷 최신 시험 예상 문제 사이트를 중심으로 빡쎄게 공부하게 됩니다.


예전 dump 를 바로 버린 이유는, 이 연습 시험을 통해, 예전 덤프에서의 간단한 시나리오 설명과 문제는 지금 출제 성향과 너무 다르다는걸 알았기 때문입니다. 정말 도움이 많이 되었습니다.





9. 시험 당일


새벽 5시에 일어나서 한시간 공부한 다음, 언제나처럼 목욕 재개 후, 길을 떠납니다.



버스타고 가면서 낮게 깔린 안개와 해뜨는 장면이 멋있어서 찍어 봤습니다.



이번이 세번째 방문인 KG ITBANK.

8시에 도착했으니, 한시간 가량 더 공부하고 시험 쳤습니다.


130분 동안, 65문제.

34초 남겨두고 End Test 버튼을 누를 만큼 저에게는 어려웠습니다.

시나리오에 맞는 답을 고르는려면 문제 본문을 읽어야 하는데, 이게 생각 외로 많이 걸립니다.


추가로, 어떤 놈이 주차장 출구 센서쪽에 주차를 한 바람에 새벽 내내 울려 퍼지는 알람소리로 잠을 설쳤더니만, 헤롱헤롱 했습니다.

머리와 몸을 쥐어 짜며 130분 꽉꽉 채웠습니다.



휴우~... 하얕게 불태웠어. 시험 끝나고 밖에 나오니 가을 햇빛에 눈이 부십니다.



그래도 여기까지 왔으니, 종로 보석상가 전경도 찍어 봅니다.



바로 옆에 공원으로 잘 조성이 되어 있더군요. 왠지 바로 회사 가기는 아쉬워서 잠시 들러보기로 합니다.



조선시대 왕의 행사 때, 행진에 사용된 종묘전교도 건너가 보구요.



공원 한쪽에 있는 "월남 이상재 선생" 동상도 봤습니다.

독립운동가시고, 1927년 독립운동중에 서거하셨다고 합니다.

전혀 모르던 우리의 자랑스런 독립 운동가셨군요. 꼭 기억하겠습니다.



동상 뒤쪽에 쓰인 글귀가 좋아서 찍어 봤습니다.



오늘 우리를 있게 해준, 너무나도 감사한 우리 조상님들 입니다.

감사합니다. 잊지 않겠습니다. 열씸히 살겠습니다.



공원을 지나 버스타러 가던 길에 있는 큰 학원 건물 입니다. 희한하게 이런 모양의 건물이 몇 개 더 있습니다.

경사면을 없애고, 그냥 똑바로 위에까지 올렸으면 공간이 더 많이 나왔을 터인데... 왜 이렇게 디자인 했을까요?



노인들 분만 서명하고 있었습니다. 이런 천막이 두 개 더 있더군요. 오로지 노인 분들만...



시간이 점심시간이 거의 다 되어 버려서, 버전에 갔던 버거킹에는 자리가 없을 것 같았습니다.

정류장 근처까지 오니 못보던 버거가게가 있네요.



세트메뉴로 하니 9,800원이 나왔습니다. 오늘만큼은 수고한 나에게 선물이라고 생각하고 맛있게, 그리고 여유 있게 먹었습니다.



음? 건너편에 SUBWAY 가! 다음 시험때는 저기에서 먹어야겠습니다.



한화 빌딩 앞에서 버스를 타는데, 태양전지 발전 정류소라 합니다. 제가 좋아하는 태양 전지라니!



그러고 보니 정류소 지붕 위에 태양 전지판이 설치되어 있었습니다. ECO 는 좋은 것입니다.



강남으로 가는 한남대교에서... 가을 하늘이 더할 나위 없이 좋습니다.





10. 결과


운이 좋았는지 다행히 PASS 하였습니다!!!



점수는 720 커트라인에 755점. 역시 이 맛에 시험 칩니다. (라고 하기엔 매번...)



분야별로 본다면, 전반적으로 고루 나왔네요.



Benefit 도 새로이 갱신 되었습니다. 정말 매번 패스할 때 마다 공짜 Practice 와 50% discount 가 나오는군요.






FIN


시험은 dump 로 하는게 아닌 것이라고 이번에 배우게 되었습니다.

Dump 처럼 나왔더라도 dump 와 동일하게 나온 것은 5문제 될까 말까...


Solution Architect 시험인지라, 상황을 제시하고 해결 위한 답을 찾아야 합니다.

답들도 서로 비슷비슷하게 해 놔서, 해당 지식을 확실히 알고 있지 못하면, 문제를 풀 수 없습니다.


온라인 강의에서 했던 말이 계속 귀에 맴돕니다.


"get hands dirty"


쉽게 공부하지 말고, 직접 손으로 해보면서 불편하게 공부하라는 이야기 입니다.

이 문구가 이 시험의 근본을 설명한다고 생각합니다.


쥐어 짜면서 공부했지만, 결과가 좋아서 기분이 너무 좋습니다.

이제 Architect - Professional 을 위해 다시 시작합니다.


And

Software | AWS Certified 자격증 취득기 - 1

|

1. 이번엔 AWS 다~!


저번 Microsoft 공인 인증 시험 시리즈에 이어, 이번달 부터는 Amazon Web Service (AWS) 공인 인증서 취득 도전을 시작했습니다.

최근 IT vendor 중에서 1위 업체이기도 하고, 취업시 도움이 많이 되어 인기 있는 인증서니까요.


AWS 인증서 체계는 아래 스샷에 잘 설명되어 있습니다.



AWS 에 대한 기초적인 개념은 "Cloud Practitioner" 이고, 이걸 바탕으로 각 IT 부문별 4가지로 분류됩니다.


- Architect

- Developer

- Operations

- Specialty (Advanced Networking / Big Data / Security)


Specialty 를 제외하고, 각 분야별로 레벨이 Associate (기본) 과 Professional (전문가) 로 또 나뉘어 있습니다.

저는 아래 순서대로 자격증 취득을 목표로 하고 있습니다.


Cloud Practitioner > Solutions Architect - Associate > Solutions Architect - Professional

> Advanced Networking > Big Data > Security


총 6개 과목에 대해 도전할 예정입니다.

Solutions Architect - Professional 까지만으로도 충분할 것 같지만, 이왕 하는 김에 Specialty 도 도전해 보려구요.

AWS 의 특화 분야 활용이 최종적으로 어떻게 되는지도 너무 궁금하기도 하고.


각 과목당 해당 시험 코드가 있습니다. 시험 공부와 신청 시, 이 코드로 서로 엮여 있으므로 알고 있는게 좋습니다.


AWS Certified Cloud Practitioner                   CLF-C01

AWS Certified Developer - Associate                DVA-C01
AWS Certified Solutions Architect - Associate      SAA-C01
AWS Certified SysOps Administrator - Associate     SOA-C01

AWS Certified DevOps Engineer - Professional       DOP-C01
AWS Certified Solutions Architect - Professional   SAP-C01

AWS Certified Advanced Networking - Specialty      ANS-C00
AWS Certified Alexa Skill Builder - Specialty      AXS-C01
AWS Certified Big Data - Specialty                 BDS-C00
AWS Certified Machine Learning - Specialty         MLS-C01
AWS Certified Security - Specialty                 SCS-C01


정리하면서 알게된 것인데, Machine Learning 도 생겼나 보네요.

욕심은 나지만, 일단 6개 도전입니다.





2. On-line training


AWS 인증서 준비에 필요한 온라인 강의가 Amazon 으로부터 무료로 제공됩니다.

아래 사이트에서 본인 등록 하고, 강의를 찾아 봅니다.


* AWS training and certification

https://www.aws.training/


처음 시험으로 Cloud Practitioner 를 준비할 것이기에, 아래 강좌를 신청합니다.



이 강좌를 시작하면, 아래와 같이 각 세션별로 강의가 분리되어 있습니다.

전부 다 합쳐봐야 몇 시간 안되므로 집중해서 열씸히 수업합니다.



여기서 다시금 인식한 사실.

AWS 서비스는 고객이 Cloud 에 직접 시버스를 구축할 수 있도록 하기위해 이 많은 서비스들이 생겨났다. 입니다.

이런 인증서 시스템을 통해, 꾸려놓은 서비스들을 효과적으로 보급하고, 시험으로 돈도 벌고... 장사꾼이지만 좋은 방법입니다.



Amazon 에 근무하는 사람들도 이 많은 시스템을 알아야 하니,

미리 인증서로 공부시켜 놓고, 인증서를 딴 사람을 채용 대상으로 하는 이유도 여기에 있을 것 같네요.


마침 시험 당일 하루 전 (9월 2일)에 온라인 워크샵이 있어서 webinar 에 참석했습니다.


* 무료 'AWS 자격증 시험 준비 워크샵'

https://pages.awscloud.com/get_certified_kr_2019.html



Cloud Practitioner 와 Architect - Associate 과정이 있습니다.

기본 내용은 AWS on-line 교육과 동일한 내용입니다만, 여기서는 한글로 강의를 해 줍니다.






3. 정리


AWS 의 각 서비스들에 대해 공부하면서 간단히 정리해 봤습니다.

제가 영어 시험을 신청한 터라, 자료 정리를 영어로 했습니다. 한글 정리본은 제일 밑에 따로 올려 놨습니다.


AWS 자격 인증은, 우선 어떤 서비스들이 있고, 어떤 기능을 가지는지를 물어봅니다.

그래서 아래와 같이 각 서비스의 명칭과 그에 대한 간단한 설명을 남겨 봅니다.


Amazon EC2


https://aws.amazon.com/ec2/

A web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.


* On-Demand

- Users that prefer the low cost and flexibility of Amazon EC2 without any up-front payment or long-term commitment

- Applications with short-term, spiky, or unpredictable workloads that cannot be interrupted

- Applications being developed or tested on Amazon EC2 for the first time

* Reserved Instances (up to 75% save compared to On-Demand)

- Applications with steady state usage

- Applications that may require reserved capacity

- Customers that can commit to using EC2 over a 1 or 3 year term to reduce their total computing costs

* Spot Instances (up to 90% save compared to On-Demand)

- Applications that have flexible start and end times

- Applications that are only feasible at very low compute prices

- Users with urgent computing needs for large amounts of additional capacity

* Dedicated hosts

- Can be purchased On-Demand (hourly).

- Can be purchased as a Reservation for up to 70% off the On-Demand price.

* Per Second Billing

- On-Demand, Reserved and Spot forms

- All regions and Availability Zones

- Amazon Linux and Ubuntu


Amazon Virtual Private Cloud (VPC)



https://aws.amazon.com/vpc/

lets you provision a logically isolated section of the AWS Cloud where you can launch AWS resources in a virtual network that you define.


Amazon EBS (Elastic Block Storage)


https://aws.amazon.com/ebs/

An easy to use, high performance block storage service designed for use with Amazon Elastic Compute Cloud (EC2) for both throughput and transaction intensive workloads at any scale. A broad range of workloads, such as relational and non-relational databases, enterprise applications, containerized applications, big data analytics engines, file systems, and media workflows are widely deployed on Amazon EBS.


Amazon EFS (Elastic File System)


https://aws.amazon.com/efs/

provides a simple, scalable, elastic file system for Linux-based workloads for use with AWS Cloud services and on-premises resources. It is designed to provide massively parallel shared access to thousands of Amazon EC2 instances, enabling your applications to achieve high levels of aggregate throughput and IOPS with consistent low latencies.


Amazon S3 (Simple Storage Service)


https://aws.amazon.com/s3/

An object storage service that offers industry-leading scalability, data availability, security, and performance. This means customers of all sizes and industries can use it to store and protect any amount of data for a range of use cases, such as websites, mobile applications, backup and restore, archive, enterprise applications, IoT devices, and big data analytics.

S3 에 있는 object 는 HTTP 프로토콜 + bucket prefix 를 이용하여 마음대로 꺼내 쓸 수 있다.



Amazon Route 53


https://aws.amazon.com/route53/

A highly available and scalable cloud Domain Name System (DNS) web service. It is designed to give developers and businesses an extremely reliable and cost effective way to route end users to Internet applications by translating names like www.example.com into the numeric IP addresses like 192.0.2.1 that computers use to connect to each other. Amazon Route 53 is fully compliant with IPv6 as well.


Elastic Load-Balancing


https://aws.amazon.com/elasticloadbalancing/

Automatically distributes incoming application traffic across multiple targets, such as Amazon EC2 instances, containers, IP addresses, and Lambda functions.


Amazon CloudFront


https://aws.amazon.com/cloudfront/

A fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds, all within a developer-friendly environment.

- keywords : CDN / edge location


AWS Direct Connect


https://aws.amazon.com/directconnect/

A cloud service solution that makes it easy to establish a dedicated network connection from your premises to AWS. Using AWS Direct Connect, you can establish private connectivity between AWS and your datacenter, office, or colocation environment, which in many cases can reduce your network costs, increase bandwidth throughput, and provide a more consistent network experience than Internet-based connections.


AWS Data Pipeline


https://aws.amazon.com/datapipeline/

A web service that helps you reliably process and move data between different AWS compute and storage services, as well as on-premises data sources, at specified intervals.


Amazon RDS (Relational Database Service)


https://aws.amazon.com/rds/

makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while automating time-consuming administration tasks such as hardware provisioning, database setup, patching and backups.


Amazon DynamoDB (NoSQL)


https://aws.amazon.com/dynamodb/

A key-value and document database that delivers single-digit millisecond performance at any scale. It's a fully managed, multiregion, multimaster, durable database with built-in security, backup and restore, and in-memory caching for internet-scale applications.


Amazon ElastiCache



https://aws.amazon.com/elasticache/

Fully managed Redis and Memcached. Seamlessly deploy, run, and scale popular open source compatible in-memory data stores. Build data-intensive apps or improve the performance of your existing apps by retrieving data from high throughput and low latency in-memory data stores.


Amazon Aurora


https://aws.amazon.com/rds/aurora/

A MySQL and PostgreSQL-compatible relational database built for the cloud, that combines the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open source databases.


AWS Snowball


https://aws.amazon.com/snowball/

A petabyte-scale data transport solution that uses devices designed to be secure to transfer large amounts of data into and out of the AWS Cloud. Using Snowball addresses common challenges with large-scale data transfers including high network costs, long transfer times, and security concerns.


Amazon Redshift


https://aws.amazon.com/redshift/

The world's fastest cloud data warehouse today and gets dramatically faster every year.  Highly concurrent workloads? Not a problem.  Redshift can handle virtually unlimited concurrency.  


AWS Database Migration Service

helps you migrate databases to AWS quickly and securely. The source database remains fully operational during the migration, minimizing downtime to applications that rely on the database. The AWS Database Migration Service can migrate your data to and from most widely used commercial and open-source databases.

AWS Migration Hub
provides a single location to track the progress of application migrations across multiple AWS and partner solutions. Using Migration Hub allows you to choose the AWS and partner migration tools that best fit your needs, while providing visibility into the status of migrations across your portfolio of applications.


Amazon EMR (Elastic MapReduce)


https://aws.amazon.com/emr/

The industry leading cloud-native big data platform, allowing teams to process vast amounts of data quickly, and cost-effectively at scale. Using open source tools such as Apache Spark, Apache Hive, Apache HBase, Apache Flink, and Presto, coupled with the dynamic scalability of Amazon EC2 and scalable storage of Amazon S3, EMR gives analytical teams the engines and elasticity to run Petabyte-scale analysis for a fraction of the cost of traditional on-premise clusters.


AWS Lambda


https://aws.amazon.com/lambda/

With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability.


AWS OpsWorks



https://aws.amazon.com/opsworks/

A configuration management service that provides managed instances of Chef and Puppet. Chef and Puppet are automation platforms that allow you to use code to automate the configurations of your servers.


AWS Elastic Beanstalk


https://aws.amazon.com/elasticbeanstalk/

An easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.


Amazon CloudFormation


https://aws.amazon.com/cloudformation/

provides a common language for you to describe and provision all the infrastructure resources in your cloud environment. CloudFormation allows you to use a simple text file to model and provision, in an automated and secure manner, all the resources needed for your applications across all regions and accounts.


Amazon Inspector

https://aws.amazon.com/inspector/

An automated security assessment service that helps improve the security and compliance of applications deployed on AWS. Amazon Inspector automatically assesses applications for exposure, vulnerabilities, and deviations from best practices.


AWS Trusted Advisor


https://aws.amazon.com/premiumsupport/technology/trusted-advisor/

An online tool that provides you real time guidance to help you provision your resources following AWS best practices.

Whether establishing new workflows, developing applications, or as part of ongoing improvement, take advantage of the recommendations provided by Trusted Advisor on a regular basis to help keep your solutions provisioned optimally.


Amazon CloudWatch


https://aws.amazon.com/cloudwatch/

A monitoring and observability service built for DevOps engineers, developers, site reliability engineers (SREs), and IT managers. CloudWatch provides you with data and actionable insights to monitor your applications, respond to system-wide performance changes, optimize resource utilization, and get a unified view of operational health.


AWS CloudTrail


https://aws.amazon.com/cloudtrail/

A service that enables governance, compliance, operational auditing, and risk auditing of your AWS account. With CloudTrail, you can log, continuously monitor, and retain account activity related to actions across your AWS infrastructure.


AWS X-Ray


https://aws.amazon.com/xray/

helps developers analyze and debug production, distributed applications, such as those built using a microservices architecture. With X-Ray, you can understand how your application and its underlying services are performing to identify and troubleshoot the root cause of performance issues and errors.


Amazon WorkSpaces

https://aws.amazon.com/workspaces/

A managed, secure cloud desktop service. You can use Amazon WorkSpaces to provision either Windows or Linux desktops in just a few minutes and quickly scale to provide thousands of desktops to workers across the globe.


AWS Organizations

https://aws.amazon.com/organizations/

helps you centrally govern your environment as you grow and scale your workloads on AWS. Whether you are a growing startup or a large enterprise, Organizations helps you to centrally manage billing; control access, compliance, and security; and share resources across your AWS accounts.


AWS Identity and Access Management (IAM)

https://aws.amazon.com/iam/

enables you to manage access to AWS services and resources securely. Using IAM, you can create and manage AWS users and groups, and use permissions to allow and deny their access to AWS resources. 


Amazon Lightsail

https://aws.amazon.com/lightsail/

An easy-to-use cloud platform that offers you everything needed to build an application or website, plus a cost-effective, monthly plan. Whether you’re new to the cloud or looking to get on the cloud quickly with AWS infrastructure you trust, we’ve got you covered.


About AWS

https://aws.amazon.com/about-aws/


AWS Whitepapers & Guides

https://aws.amazon.com/whitepapers/


AWS Cost Management

https://aws.amazon.com/aws-cost-management/

Access your monthly bill

View the overall status of your AWS costs and usage


* AWS Cost Explore

https://aws.amazon.com/aws-cost-management/aws-cost-explorer/

Explore your costs and usage


* AWS Budgets

https://aws.amazon.com/aws-cost-management/aws-budgets/

Set custom cost and usage budgets


* AWS Cost & Usage Report

https://aws.amazon.com/aws-cost-management/aws-cost-and-usage-reporting

Access comprehensive cost and usage data


AWS Total Cost of Ownership (TCO) Calculators

https://aws.amazon.com/tco-calculator/


AWS Total Cost of Ownership (TCO) Calculator

https://awstcocalculator.com/



Compare AWS Support Plans

https://aws.amazon.com/premiumsupport/plans/



보다 자세한 내용은 각 서비스의 링크를 통해 확인해 보시면 되겠습니다.

또한 whitepaper 도 꼭 읽으면 시험에 도움이 많이 됩니다. 즉, 시간이 많이 필요합니다.


모든 내용을 여기서 다룰 수가 없어서 여기에 소개되지 않은 서비스들도 있습니다.

기본 서비스 및 시험에서 나온 문제들 위주로 위에 소개했으며, 그렇지 않은 것도 많이 있다는 것을 염두에 두시기 바랍니다.





4. 정리한 자료


개념 잡기에 도움이 되는 자료

------------------------------------------------------

aws-overview.pdf

Architecting on AWS - Key Concepts.pdf


지금까지 AWS 가 제공하는 온라인 강의의 스크린 샷을 정리한 자료

------------------------------------------------------

AWS_CLF-C01_20190808_chocoball.pdf

AWS_CLF-C01_20190902_chocoball.pdf


회사 동료가 제공해준 자료를 공유합니다. 실제 시험에서 동일한 문제가 많이 나왔습니다.

------------------------------------------------------

CLF-CO1_AWS_Certified_Cloud_Practitioner_2019.zip


온라인 워크샵을 통해 강사분이 공유해 주신, 비공식 Architect - Associate 시험 자료도 참고가 많이 되었습니다. (어차피 볼 시험이라)


* serithemage/AWSCertifiedSolutionsArchitectUnofficialStudyGuide

https://github.com/serithemage/AWSCertifiedSolutionsArchitectUnofficialStudyGuide


또한, 이미 이 시험을 보신 분이, 자세히 정리해 주신 글이 있어 정독 3번 했습니다.


* AWS 자격증 시험 - 클라우드 종사자(Cloud Practitioner) 후기

https://yongho1037.tistory.com/783





5. 시험 등록


aws.training 사이트에서 Certification 메뉴에 들어가면, 시험 등록 사이트로 점프 합니다.



등록이 되지 않았으면 등록해 주시구요.



이번에는 PSI 시험장에서 시험을 봤습니다. 이상하게도 Pearson VUE 시험장은 찾을 수 없었습니다.



시험장과 시간을 지정하고, 신용카드로 결제 합니다. 세금 포함 12만 5천 4백원이 PSI 및 Amazon 수익으로 갔습니다.






6. 시험 당일


아침 5시반에 일어나 정갈한 마음으로 목욕한 다음, 편안한 마음으로 집을 나섰습니다.



거의 두 달만이네요. 반갑다 KG 에듀원 아이티뱅크.



저번에 본 Pearson VUE 시험장이 이번에는 PSI 시험장이 됩니다. 이 두 시험평가 기관의 기준을 모르겠습니다.



65문제 80분 시험이었습니다만, 13분정도 남기고 끝냈습니다.

문제 은행식이 아니다 보니, 문제를 잘 읽어야 해서 시간이 넉넉하지 않았네요.


시험을 끝내고 건물 밖으로 나오니, 낡으면서 특이한 건물이 보였습니다.

혹시... 피카다리?



회사로 출근하기 위해 종로 3가에서 2가로 걸어갑니다. 거리엔 90% 어르신들과 5%의 젊은이, 5% 의 외국인이 있었습니다.

노인 비율이 갈수록 커져가는 동네가 되었네요.



흠! 이거슨! 바로 들어갑니다.



좀 이른 점심을 먹습니다. 2층에서 보니 종로 2가의 교차로가 잘 보이네요.



저의 기억에 남아있는 종로는 대학생 때라, 20년도 더된 옛날입니다. 정말 많이 바뀌었네요.

한화빌딩을 처음 봤습니다만, 호감가게 잘 지어진것 같습니다.





7. 시험 결과


시험결과는 PASS 였습니다. 시험 끝나자 마자 모니터에 뜹니다. 그렇지만 Microsoft 때 처럼 print 물로는 제공해 주지 않습니다.



나중에 인증 사이트에서 확인하니, 다음과 같이 업데이트 정보가 올라와 있었습니다.



역시 합격은 턱걸이가 제맛이죠! 1000전 만점에 727점으로 턱걸이 하였습니다.



Security 랑 Billing 부분을 더 공부하라 합니다.

다음 Architect - Associate 를 공부할 때, 이 부분을 좀더 중점적으로 봐야겠습니다.



이만하면 첫발은 성공적이었습니다.

이제 다음 시험을 위한 준비를 다시 시작합니다.


And
prev | 1 | 2 | next